你是否还一直保持着对编程的热爱?每一段通过测试的代码都能给你愉悦的成就感;每当接触到一个崭新的前沿框架你都感到兴奋并跃跃欲试……如果你仍一如既往的保持着这份激情,那么软件开发这项工作真的对你再适合不过了。
但是,你是否考虑过在5年、10年、15年以后的职业规划呢?你还要继续写代码么?如果你之前没有考虑过这个问题,那么这篇文章可以给你很好的建议,它将指导你发现软件开发人员可能经历的职业发展之路。
关于职业发展之路
众所周知,程序员可以发展为架构师、团队管理者或者企业领导等。但是大多数人对于这些职位的经验技术要求和需要的时间等还知之甚少。比如,许多人都知道一些关于manager的日常工作,但是除了发送邮件和召开一个又一个会议之外的工作你又知道多少呢?中级管理层的manager与高级管理层的leader又有什么区别呢?
初级程序员
●0-3年的开发经验(毕业生居多)
●对应用程序的生命周期基本了解
●能够编写简单的代码和脚本
●需要得到密切关注和帮助
●对于复杂应用程序的各个层面都不熟悉
作为一个年轻的充满激情和热情的初级软件开发者,他们努力把自己的工作做到最好。对于所有一切他们都感到好奇,他们尝试着学习所有全新的东西——包括方法、范例、程序语言、设计模式以及技术等。在学习期间,他们还使用不同的语言实现一些应用程序,当然,这些程序都是最初级的。
虽然在获取新知识方面进展神速,但是他们没有足够多的代码编写经验,而且缺少高级资深程序员的智慧和技巧。在编程方面,初级软件开发者阅读大量的文章和书籍,并进行模仿训练。每个初级软件开发者都有这样的经历:开始写一些很差的代码,然后调试出许多愚蠢的错误,当问题很久都无法解决的时候又重新开始。但即使是这样,也无法深刻的理解模仿的价值和最佳实践的方式,毕竟这是处于开发者的初学阶段。
高级程序员
●4-10年的开发经验
●能够编写复杂的代码以及整个应用程序
●对整个应用程序的生命周期有较深刻的理解
●不需要别人提供帮助,通过使用搜索引擎解决大部分问题
在经历了数以万计次的代码编译、警告、错误的洗礼后,他们能够完全通过自己获取的知识来开展自己的工作了。他们不需要指导和监督,只需使用Stackoverflow、google、baidu等网络资源他们就能解决几乎所有问题。除了专注于解决问题,他们对于代码的质量和算法的合理性也非常关注。在多次面对类似问题的时候,他们使用自己收集和编写的可重用代码库来节省时间,提高效率。当他们能够在项目或者公司独当一面的时候,他们希望能有更好的发展前途。
架构师/团队管理/程序管理
●7-10年的开发经验
●至少与高级程序员的编程技术相当
●架构师:具有对不同编程技术的广泛知识和见地,这个职位并不是只对一门语言和技术精通就能胜任的。
●开发管理:除了深厚的专业知识,还需要掌握管理学、“软”技能(含口才、文笔等)以及了解业务领域。
有一些软件开发人员在经过几年的编程后对这项工作渐渐厌倦了,这一步就是程序员职业过渡的开始。但是最终向什么方向发展,这取决于程序员自己。那些性格外向,有良好表达能力和软技能的人会考虑管理的角色。作为一个团队的领导者,他们将专注于项目管理,确保目标的达成情况,安排成员的工作任务以及调动团队的工作热情。他们会花大部分的时间在会议上来规划接下来的工作计划和未来的目标,以确保一切都能走上正轨。
如果在经过6年以上的编程工作后,你确定管理工作并不是你喜欢的职业,那么成为架构师将是你使用专业技术迈向下一步的成功阶梯。拥有对不同领域的标准、性能、语法等广博知识的高级程序员能够胜任架构师这个职位。
作为架构师,打字编写代码已经不是他们的主要工作了,他们的主要工作是设计整个系统/应用程序,与其他架构师讨论整个拓扑和高级体系结构,定义标准和策略。架构师关注整体结构更甚于技术细节,通常高级程序员会向他们提一些准则和需求,一旦确定了新的需求,架构师会很快知道如何使用正确的方法来设计和测量所有不同类型的应用程序。
中层管理者
●通常有一些头衔如总监/经理(产品经理、项目经理、开发经理)
●负责雇佣/解雇人员
●向高级管理层作报告
经理有多种不同类型。对于细节和工作流的跟踪着迷的软件开发人员适合于做项目经理;重视产品版本新特性的视觉感受和应用程序用户体验的软件开发人员适合于做产品经理;另外还有最常见的职位开发经理,它的工作是负责协调管理整个团队及团队成员的需求。它还有另外一个职责就是按照开发的需求来雇佣相关人员,当然如果某人无法胜任某个工作,他也会对其进行解雇。这就意味着开发经理通常很难和团队成员做朋友了,但是如果你能带领的你的团队获得成功,那么你会得到很大的回报和所有人的尊重。
高级领导
●VP, CTO或者CEO
●负责任命/招聘/解雇中层管理人员
●向董事会/股东作报告
虽然一个公司的决策者只能有一个,但是许多公司会每隔几年更换一些新鲜空气——招聘一些有丰富经验的人员进入高级管理层。他们中的一些人会传播一些其它企业先进的管理经验或市场经验,而另外一些人可能在同一家大公司服务超过了20年。