初级程序员:0-3年的开发经验(应届生居多)
-------------------------------------------------------------
对应用程序的生命周期基本了解
能够编写简单的代码和脚本
需要得到密切关注和帮助
对于复杂应用程序的各个层面都不熟悉
高级程序员:4-10年的开发经验
------------------------------------------
能够编写复杂的代码以及整个应用程序
对整个应用程序的生命周期有较深刻的理解
不需要别人帮助,能通过使用搜索引擎解决大部分问题
架构师/团队管理/程序管理:7-10年的开发经验
---------------------------------------------------------------
具备高级程序员的编程技术
架构师:具有对不同编程技术的广泛知识和见地,这个职位并不是只对一门语言和技术精通就能胜任的。
开发管理:除了深厚的专业知识,还需要掌握管理学、“软”技能(含口才、文笔等)以及了解业务领域。
有一些软件开发人员在经过几年的编程后对这项工作渐渐厌倦了,这一步就是程序员职业过渡的开始。
但是最终向什么方向发展,这取决于程序员自己。
那些性格外向,有良好表达能力和软技能的人会考虑管理的角色。
作为一个团队的领导者,他们将专注于项目管理,确保目标的达成情况,
安排成员的工作任务以及调动团队的工作热情。
他们会花大部分的时间在会议上来规划接下来的工作计划和未来的目标,以确保一切都能走上正轨。
如果在经过6年以上的编程工作后,你确定管理工作并不是你喜欢的职业,
那么成为架构师将是你使用专业技术迈向下一步的成功阶梯。
拥有对不同领域的标准、性能、语法等广博知识的高级程序员能够胜任架构师这个职位。
作为架构师,打字编写代码已经不是他们的主要工作了,他们的主要工作是设计整个系统/应用程序,
与其他架构师讨论整个拓扑和高级体系结构,定义标准和策略。
架构师关注整体结构更甚于技术细节,通常高级程序员会向他们提一些准则和需求,
一旦确定了新的需求,架构师会很快知道如何使用正确的方法来设计和测量所有不同类型的应用程序。
中层管理者:总监/经理(产品经理、项目经理、开发经理)
------------------------------------------------------------------------------
负责雇佣/解雇人员
向高级管理层作报告
经理有多种不同类型。
对于细节和工作流程的跟踪着迷的软件开发人员适合于做项目经理;
重视产品版本新特性的视觉感受和应用程序用户体验的软件开发人员适合于做产品经理;
另外还有最常见的职位开发经理,它的工作是负责协调管理整个团队及团队成员的需求。
它还有另外一个职责就是按照开发的需求来雇佣相关人员,当然如果某人无法胜任某个工作,他也会对其进行解雇。
这就意味着开发经理通常很难和团队成员做朋友了,但是如果你能带领的你的团队获得成功,
那么你会得到很大的回报和所有人的尊重。
高级领导
------------
VP, CTO或者CEO
负责任命/招聘/解雇中层管理人员
向董事会/股东作报告
虽然一个公司的决策者只能有一个,但是许多公司会每隔几年更换一些新鲜空气
——招聘一些有丰富经验的人员进入高级管理层。
他们中的一些人会传播一些其它企业先进的管理经验或市场经验,
而另外一些人可能在同一家大公司服务超过了20年。