大码农导读:程序员的职业发展是一个很值得我们深入探讨的问题,因为它关系到程序员的未来。程序员的发展路线其实有很多,你选择了合适自己的路了吗?在你选择要去哪里的时候,想好该怎么达到目的地吗?
你是否曾经想过程序员的职业生涯应该怎样发展?程序员到了45岁之后会怎样?你见过45岁以上的程序员吗?我倒是见过不少,他们很多都是大神级的人物,有一些甚至还见过穿卡机。
程序员的职业发展路线不外乎这么几种:
-
第一种最直接,就是在你所处的领域内不断成长,从初级程序员成长为中级程序员,再从中级程序员成长为高级程序员,然后是主力程序员。
-
进入新的技术领域。比如,在iOS和安卓崛起的那些年,有很多开发者转向了移动开发。
-
成为管理者。在程序员眼里,这个行业很缺乏有竞争力的管理者。真正聪明的管理者太少了,如果他们有技术背景,就能够跟程序员打成一片。
-
成为软件架构师,这是本文的重点。
-
转行,离开IT行业。有些人会选择这条路,其实只要你想清楚了,做什么都不晚。
在过去八年,我从Java EE开发转到iOS开发,然后成为项目组长。我管理过各种各样的开发团队,包括Android移动开发团队和Web开发团队。我为公司搭建过基于套接字和REST API的网络架构,公司的服务都运行在这个平台上。在做过两年多的项目组长之后,我对管理者的角色有了自己的理解。我的下一个目标是成为架构师。对于大多数开发者来说,架构师的角色并没有一个清晰的定义,所以我要尝试在这篇文章里回答这个问题。
架构师是什么?
架构师是这样的一个角色,他参与高层的技术决策,制定技术标准,包括编码标准、工具和平台。与其他大多数高级职位一样,架构师角色也不存在清晰的定义。不过架构师需要承担一定的职责,并拥有一些特定的品质。
-
善于沟通。很多软件架构师认为,沟通是架构师应该具备的一项非常重要的品质。在实际工作当中,他们需要与客户、各个层级的管理者、业务人员和开发人员沟通。如果你天生就擅长说服别人,那么在成为架构师时无疑会祝你一臂之力。架构师应该是能言善辩的,我所接触过的架构师都十分善于沟通和说服别人。这个品质之所以如此重要,是原因架构师参与了大部分的决策讨论,最终必须达成各方可接受的共识和共赢。
-
技术的广度和深度。这个是很显然的,一个只有医药背景的人很难成为软件架构师。另外,架构师还需要在多种技术栈上达到较高的水准。他们需要编写大量的技术文档,制作报告和图表。
-
承担责任。大部分架构决策都是很关键的,而且代价高昂,架构师必须担负起这些责任。在复杂的项目中,一个开发人员犯下的错误可能会耽误项目几天,而一个架构师犯下的错误可能会耽误项目一整年。
-
抗压。因为角色的关系,架构师必须做出很多决策。他们需要与来自不同领域的人一起工作,必须快速地做出变更。所以,架构师需要准备好承担沉重的压力,还要想办法调节负面情绪。因乐趣而工作,就会在工作中找到乐趣,如果只是为了金钱,那么请三思。
-
管理技能。管理技能包括组织技能和领导力,领导一个团队需要各种不同的技能。
-
分析技能。一个技术专家可能在某些方面博学多识,但并不代表他也具备架构思维。架构师需要具备将抽象问题具象化的表达能力,而这需要良好的沟通能力来协助,他们需要成为业务人员和开发人员之间的粘合剂。
说到架构师的责任问题,这里有一个很好的例子。在19世纪,建好一座桥梁之后,他们是这样做测试的:让主要的工程师、架构师和工作人员站在桥底下,然后一辆汽车从桥上开过。他们的命根子就别在桥梁的结构设计上。如果有人问架构师的职责是什么?答案就是:他们为一切负责。
去掉那些冠冕堂皇的辞藻,可以这么概括架构师的工作:
-
理清项目的利益相关者。
-
理清业务需求和利益相关者的需求。
-
基于收集到的需求设计整个系统。
-
技术选型。
-
架构评审。
-
代码评审。
-
编写项目文档。
-
制定公司统一的开发标准。
-
在开发迭代中把握架构方向。
这些也只不过是软件架构师职责的一部分。从项目启动到发布,再到后期的维护,架构师都需要提供技术支持。
如何成为架构师?
要成为软件架构师,需要定好里程碑式的目标。以我为例,接下来六个月我的目标是这样的:
-
学习几个新的技术栈。我目前主要集中在iOS开发上,所以我想尝试Android平台和其他服务器端编程语言,从Python开始,然后再去巩固Java EE知识。架构师其实就是全栈工程师,需要有很广的技术视野。
-
阅读。阅读大量有价值的书或文章有助于达成目标。找到这类材料最好的方式是找各个领域内的专家推荐。
-
寻找导师。如果有可能,在你工作的地方找到一个软件架构师成为你的导师。从一个训练有素的专家那里更容易学习到经验,你要想好问他们什么问题,因为只有好问题才会得到好答案。
-
参加培训课程。现在外面的培训课程有很多,但真正有价值的没有几个,而高级课程又非常贵。在选择课程时,最重要的是讲师必须是相关领域的专家,而且能够帮你答疑解惑。
写在后面
人们总是害怕接受新的事物——一个新的职位、一种新的压力,不愿意走出舒适区。有时候要做出选择并非易事,这取决于你改变现状的愿望有多强烈。有时候,这也不是你一个人的事情,因为你可能背负着家庭或财务上的压力。
当然,成为架构师不是一朝一夕的事情,它可能需要好几年时间。我也是在正式成为项目组长之后一年才学会如何应对压力。我认识的一个架构师说,他在成为架构师18个月以后才知道自己该承担什么样的职责。这些情况都是很正常的,你一定要先想清楚自己是否已经为此做好了准备。如果你还在犹豫不决,那么最好先一步一步来,不要操之过急。人们在工作中面临的抉择,其实也是人生的抉择。
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。