做架构设计已经好多年了,前两天和一位年轻的同事聊天,这位同事从毕业到现在已经工作3年了,是我当前新公司里面最年轻的Teamleader(在我现在新的公司,Teamleader职位上的人工作7,8年的占80%),他现在感到很迷茫,说天天忙于沟通,基本上没有时间写代码,但是自己以后又想往架构师的路上走下去,很纠结。于是一个加班的晚上,过来和我聊了一下自己的想法。其实这是一个典型的心态,到底以后是往技术走,还是往管理走?其实,说实在话,我1年前还有这个疑惑和顾虑,更何况年轻的他们呢?大概半年前,我所在的公司,我虽然挂的是高级项目经理的职位,但是其实又管人,有做架构设计当然也写代码,但是公司形式不太好,美国客户想把业务往印度转移,所以就准备换份工作(虽然不太想换,毕竟在以前的公司也呆了5年多了),所以当时也有过犹豫不决。但是最终还是决定在架构师的道路上继续前行,因为我感觉,管理其实和技术并不矛盾,谁说架构师就只需要懂技术,而不需要懂得管理呢?其实一旦上升到架构师的层面,不但需要与开发人员沟通,同时还需要与管理人员,客户,运维,测试等其他不同角色的人员交互,同时还需要进行风险的预防和把控,项目成本的估算等等,如果没有一定的沟通管理应变已经项目管理能力,是绝对成不了一名出色的架构师的。
那如何快速的成为一名合格的架构师呢?其实,就是从两方面:
#1专业技能
首先当然基础知识要扎实,一些经典的专业书籍一定要看。比如,设计模式,算法,数据结构,所在领域的编程语言的专业书籍等作为架构师,review别人的代码并给出合理的建议是基本功,比如变量或者方法命名的规则;所以代码大全,重构,改善既有代码的设计,Cleancode等等肯定需要看。对于某一个技术领域或者业务领域,一定要有一门技术是精通的,因为这样你才能体会到以后遇到自己不懂的技术的时候,如何能够快速成为这一方面的行家。平常有时间一定要多多进行代码的训练,也就是MartinFlower常说的Kata练习,这个比喻来自于跆拳道,跆拳道选手一般每天都会找一些基本的招式,进行反复的练习,从而训练肌肉的条件发射,那么对于我们程序员来说,一定也要进行持续的编程训练,比如上面提到的那位同事,给的建议是,虽然把大部分时间花在了沟通和协调上面,没有机会写代码,但是自己一定要利用业余时间,自己找一些例子来联系,比如,参与开源项目,或者到网上去搜索一些大师的经典Kata联系的例子;或者看工作里面是否有一些小工具,是否能够提升自己的沟通效率,当然已经天天写代码的童鞋们除外。请参考我转发的另外一篇文章:白癜风要注意什么白癜风治疗要花多少钱