程序员职业之路的选择_第1页
程序员职业之路的选择_第2页
程序员职业之路的选择_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序员职业之路的选择

很多编程的职位都会到达最高峰,并开头衰落——这是许多程序员不想面对的,但却是一个不争的事实。这之后再找一份程序员的工作会变得越来越难,许多人发觉这个事实时束手无策。本文会供应一些重要的职业信息,值得思索一下,以便有所预备。

TechCrunch发布了一篇文章「硅谷黑幕:技术人员年龄卑视(译文链接)」,文中引用的讨论发觉:对一个程序员来说,能从事高效的开发的年龄段是有限的。这个问题的确存在,而且特别严峻。

程序员的将来是什么样的?

程序员的职业之路是什么样的?

对于这些路应有什么样的选择和期望?

人人都知道程序员可以向经理或团队领导进展。但许多程序员不明白经理这个职位的期望和工作要求。当然,我们都有经理,但怎样才能成为经理呢?要具备什么素养?中层管理者和一个高级程序员之间有什么区分?

在这篇文章中,我会拉开帷幕,介绍从一个从初级程序员到顶级CTO的潜在职业之路。

留意:许多宏大的职业生涯停留在了不同的职位上,直到退休。一些职业生涯却连连升级。但是管理和领导角色并不适合每一个人,几年以后你可能会发觉你在管理上的爱好转变了。二十几岁的时候你可能不喜爱做经理,但是四十岁时你可能不再喜爱写代码了。将来什么样,谁都很难说。然而,多了解一下你的选择和状况总是好的。

下面一张图表示的是程序员的各个职位的平均工资。留意在垂直水平上,一些人可能拿着两倍或者三倍于别人的工资(像是银行,贸易等行业)。所以这些数字仅代表了一个平均水平,并不全面。

初级程序员

0-3年工作阅历(一般是刚从高校毕业)

会写简洁的脚本

初步了解整个应用程序的生命周期

初步了解数据库和应用程序的服务(队列,缓存等)

不需了解简单的应用中的每一个部分

当你刚刚踏入程序员的行列中来的时候,可能会感到畏缩和苦恼。会时常感觉到自己资格尚浅,惊异为什么会有人写出这么大而简单的程序。不久之后,你就会想为什么自己还没有升级到高级程序员。看看其他的高级程序员,你觉得自己做着跟他们相同的工作。

但是区分就在于初级程序员缺乏阅历。即使是学习最快、最聪慧的初级程序员,也没有接触到足够多的代码和边界状况,以胜任高级程序员的工作。在软件开发方面,软件设计模式也是一种才智。虽然在这方面可以阅读相关的书籍,但还是需要写足够多的代码,将错误尽可能地暴漏出来,真正理解软件设计模式的价值。

高级程序员

至少四年工作阅历

能写较简单的程序

深化理解整个应用程序的生命周期

把握数据库和应用服务(队列,缓存等)

要了解应用程序的每一个方面

称职的高级程序员特别擅长构建大型程序。担当高级程序员占了程序员生涯的大部分。事实上,假如你不喜爱管理的工作而仅仅喜爱写代码,可以始终做一个高级程序员,我就雇佣了一些终生做程序员的人,但是,当老了以后,这项工作也会变得困难。

这个职位也可以作为一个过渡。一旦你把握了足够的技术,那么很可能就有力量担当一家技术创业公司的创始人或者CTO了。作为一个创始人或者CTO,写代码的就会就少了,更多的是需要处理事务的技巧。但是深化理解技术特别有必要,是做好这份工作必不行少的部分。

团队领导或架构师

七年以上开发阅历

把握高级程序员必备的技术

团队领导:向架构师过渡

架构师:没有更高的技术方面的职位

做了七年程序员之后,假如你觉得不喜爱管理方面的工作,那么可以考虑一下做架构师,这是技术方面最顶峰的职位。架构师有时候也写代码,但大多数时间他们在设计简单的系统,然后交给由初级和高级程序员们组成团队来实现。架构师的工作就是,利用他技术方面的才智以及多年的阅历(学习程序的模式和反模式),来为软件项目创建合适的架构。有新的需求的时候,软件架构师需要对项目选择正确的方向,并估算应用程序的规模。

首席开发人员的工作是给其他初级的和高级的程序员指导和方向。虽然首席开发者通常不会做雇佣、解雇程序员的事情,但是他们的很多工作和经理无异。他们需做开发方面的协调,并在写代码的时候做出实现方面的打算。

中层领导

通常包含经理和负责人等职位(开发经理,项目经理,产品经理)

做发人员的老板(例如人事工作)

向高级主管汇报工作

管理人员通常向工程师进展。他们的方向许多:假如你喜爱接触开发团队,并对细节感爱好,那么可以选择产品经理,做你的伙伴们的盟友;假如你对产品特性和增加其性能着迷,那么做一个产品经理是最好的选择。

然而大多数人的选择是开发经理。这是个经理中经典的职位,要求平衡项目经理和产品经理的需求和开发团队的性格之间的冲突。这个职位对人事处理和化解冲突的技能要求较高,要常常做出退让。开发经理的工作不仅仅是雇佣新人,在必要时也要解聘一些人。这就意味着很难和他们成为伴侣。由于一旦和他们成了伴侣,就处在了一个尴尬的位置。假如你熟悉的一个人从开发人员的职位升到了开发经理,你会发觉这个人几乎在一夜之间变了。这就是为什么,这通常是一份费劲不讨好的工作。

但假如领导一个团队成功了,也是特别有收获的。假如你想提高领导才能,预备做一个管理角色,可以读读PhilJackson的书?《ElevenRings:TheSoulofSuccess》?。

高层领导

VP,CTO或CEO

是中层领导的老板(例如负责人事)

向另一个高层领导或者董事会报告

和中层领导显而易见的不同是,高层领导负责管理中层领导。然而经理通常是不需要管理的,他们需要的是指导。中层领导需要知道高层领导的方向并跟进,不会得到特别详细的指示。

高层领导的工作是,做重要的打算,并激励工作人员紧跟决策,增加对工作目标的信念。

你在这条路上走得越远,写代码的机会就越少。到达顶峰的时候,做的都是人事方面的工作了。中层领导依旧能在核心技术方方面体验到乐趣,但是对于高层领导,就必需把全部的时间花在人事上:激励员工,领导,指定策略。假如你写代码,也只能是不重要的项目(除非你是比尔盖茨,但大多数人不是比尔,他是个极端的特例)。PhilJackson的书要求,在这个职位上必需常常阅读,不能安于现状。

高层领导的工作要求确保公司的每一个人都朝着相同的方向努力,确保方向的正确,确保每一个人知道他们朝这个方向努力的缘由。这个工作难度特别大,而且布满着危急,心酸和陷阱。假如你想要一个高层领导,读一读BenHorowitz的《TheHardThingAboutHardThings》.

高层领导从来都不是天生的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论