程序员职业生涯规划 之最终篇

  (转自:http://www.boode.com.cn/share/programmer_career.html)

程序员职业生涯规划 之最终篇

  之前我们分析了程序员职业生涯中可以选择的几个发展方向:项目经理、系统分析员、产品经理、软件测试工程师和系统架构师,当我们发现未来充满了这么多种可能后,又重新对程序员产生了梦想,但我相信好多人心里还是在打鼓,那就是“怎么才能走到我们梦想的职位?” 本文会对以往的分析进行总结并提供一些重要的职业信息,值得思考一下,以便有所准备。

我们都知道程序员可以向经理或团队领导发展。但很多程序员不明白经理这个职位的期望和工作要求。当然,我们都有经理,但怎样才能成为经理呢?要具备什么素质?中层管理者和一个高级程序员之间有什么区别?让我们来看看一个初级程序员成长到顶级CTO的潜在职业之路。

很多程序员都会直观的从收入上来观察他们的职业之路,薪资代表着成就和社会对于个人的满足,下面一张图表示的是程序员的各个职位的平均工资。注意在垂直水平上,一些人可能拿着两倍或者三倍于别人的工资(像是银行,贸易等行业)。所以这些数字仅代表了一个平均水平,并不全面。

一、初级程序员

(1)0-3年工作经验(一般是刚从大学毕业),会写简单的脚本

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

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

(4)不需了解复杂的应用中的每一个部分

当你刚刚踏入程序员的行列中来的时候,可能会感到畏缩和烦恼。会时常感觉到自己资历尚浅,惊讶为什么别人可以写出这么大而复杂的程序。看看其他的高级程序员,你觉得自己做着跟他们相同的工作。但是区别就在于初级程序员缺乏经验。即使是学习最快、最聪明的初级程序员,也没有接触到足够多的代码和边界情况,以胜任高级程序员的工作。在软件开发方面, 软件设计模式也是一种智慧。虽然在这方面可以阅读相关的书籍,但还是需要写足够多的代码,将错误尽可能地暴漏出来,真正理解软件设计模式的价值。

二、高级程序员

  • 至少四年工作经验
  • 能写较复杂的程序
  • 深入理解整个应用程序的生命周期
  • 掌握数据库和应用服务(队列,缓存等)
  • 要了解应用程序的每一个方面

称职的高级程序员非常擅长构建大型程序。担任高级程序员占了程序员生涯的大部分。事实上,如果你不喜欢管理的工作而仅仅喜欢写代码,可以一直做一个高级程序员。高级程序员可以作为一个过渡,一旦掌握了足够的技术,那么很可能就有能力担任一家技术创业公司的创始人或者CTO了。作为一个创始人或者CTO,写代码的就会就少了,更多的是需要处理事务的技巧。但是深入理解技术非常有必要,是做好这份工作必不可少的部分。

三、团队领导或架构师

(1)七年以上开发经验

(2)掌握高级程序员必备的技术

(3)团队领导:向架构师过渡

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

七年程序员职业生涯已经能够使一个程序员的技术能力足够精进,如果你想从事更具挑战性的职位,那么可以考虑一下做架构师,这是技术方面最顶峰的职位。架构师有时候也写代码,但大多数时间他们在设计复杂的系统,然后交给由初级和高级程序员们组成团队来实现。架构师的工作就是,利用他技术方面的智慧以及多年的经验(学习程序的模式和反模式),来为软件项目创建合适的架构。有新的需求的时候,软件架构师需要对项目选择正确的方向,并估算应用程序的规模。

四、中层领导

  • 通常包含经理和负责人等职位(开发经理,项目经理,产品经理)
  • 做发人员的老板(例如人事工作)
  • 向高级主管汇报工作

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

然而大多数人的选择是开发经理。这是个非常经典的职位,要求平衡项目经理和产品经理的需求和开发团队的性格之间的矛盾。这个职位对人事处理和化解矛盾的技能要求较高,要经常做出退让。

五、高层领导

(1)VP,CTO 或CEO

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

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

高层领导负责管理中层领导。然而经理通常是不需要管理的,他们需要的是指导。中层领导需要知道高层领导的方向并跟进,不会得到非常具体的指示。高层领导的工作是,做重要的决定,并激励工作人员紧跟决策,增加对工作目标的信心。

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

结论

今天,程序员的选择是丰富多彩的。而且对于程序员的职业要求比历史上任何时候都要高。对程序猿来说这是一个好的时代。但是任何时候规划你的职业都不算晚。希望本文能排得上用场,给你一些指导和精神食粮。

时间: 2024-10-18 14:05:05

程序员职业生涯规划 之最终篇的相关文章

程序员职业生涯规划

内生涯与外生涯是个人职业规划中一组重要的概念.内生涯包括(但不限于)知识.技能.工作经验.心理素质.内心情感.行为习惯.视野.观念.职业心态(爱与感恩.责任.忠诚.诚信.勇气.担当).职业成熟度.心灵成长等.外生涯包括(但不限于)职务目标.经济收入.工作内容.工作环境.工作时间.工作地点.企业文化.薪酬福利.通勤状况等.两者间最直接的区分就是否个人能控制以及不被外在剥夺不因环境改变而改变. 当内生涯略高于外生涯时,工作会驾轻就熟,容易出成绩,感到轻松舒适.当内生涯高过外生涯一大截时,个人就会觉得

程序员职业规划:让自己变得重要

昨天在Better Software Magazine上看到一篇文章Make Yourself Essential(杂志不在手边,文章名和杂志期号都记不清了),谈到了IT市场变幻,程序员风光不再,身为程序员应该怎么应对.作者开篇明义:工作外包,公司裁员,是公司的错么?当然不是!一切都是程序员的错.当我们技术沦为大宗商品(所谓大宗商品,就是说商品和商品间的区别主要就是价格了)的时候,我们被收费更低的竞争对手代替的日子也就不远了.而随着技术的进步,很多编程技术也就不可避免地成为大宗商品.而要想增加自

非计算机类专业毕业生五年程序员职业生涯的回顾和思考

0.前言看到过几篇程序员的职业生涯过程,我也来当一回写手吧,希望对和我一样曾经磕磕碰碰过的人有帮助.谨以此文纪念大学毕业五周年,传播一些正能量. 1.从校园启程我的大学专业全称是无机非金属材料工程,这专业多与玻璃.水泥.陶瓷打交道,高大上一点的是各种珠宝,前沿一点的是纳米材料.想先声明的是,我不是在黑自己的专业,只是每个人都会有自己喜欢和适合自己的工作和生活状态.我尝试过为了完成一个程序而废寝忘食后就爱上了这个职业,即使知道这是个加班如家常便饭的工作也义无反顾.而且后来我发现材料工程的学习经历并

最危害程序员职业生涯的三大观念

该文章来自用户转载 点击阅读原文 蓦然回首自己做软件开发这个行业已经十年了,这十年中我获得了很多,技术能力.培训.出国.大公司的经历,还有很多很好的朋友.但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可惜我错过了,我用这五年时间和很多程序员一样在困惑和迷茫中找不到出路! 路其实一直都在那里,只是我们看不到而已! 以前我一直被公司和技术牵着走,并不是自己在选择技术,而是不自觉地被推到了这个位置上.想想有多少人对于自己将来要从事的职业和技术类型进行过深入思考

程序员的自我修养——操作系统篇(转)

也许,只需这一篇文章,便能让你全面的认识操作系统! 在阅读本文之前,推荐阅读“自己动手制作4位计算机”. 目录: 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式. 5. 线程的实现方式. (用户线程与内核线程的区别) 6. 用户态和核心态的区别. 7. 用户栈和内核栈的区别. 8. 内存池.进程池.线程池. 9. 死锁的概念,导致死锁的原因,导致死锁的四个必要条件,处理死锁的四个方式,预防死锁的方法.避免死锁

每个程序员都必读的12篇文章

英文原文:10 Articles Every Programmer Must Read 作为一名 Java 程序员和软件开发人员,那些每个程序员都应该知道的 XXX 的文章教会了我不少东西,它们提供了某个特定领域的一些实用的并且有深度的信息,这些东西通常很难找到.在我学习的过程中我读到过许多非常有用的文章,我把它们添加到了书签里,方便以后阅读或者引用.我个人认为所有开发人员都能从这些文章中受益,因此我也写了篇"每个程序员都应该了解的"文章,准备分享给你们.这是我的个人收藏.在这篇文章中

每个程序员都必读的10篇文章

作为一名Java程序员和软件开发人员,那些每个程序员都应该知道的XXX的文章教会了我不少东西,它们提供了某个特定领域的一些实用的并且有深度的信息,这些东西通常很难找到.在我学习的过程中我读到过许多非常有用的文章,我把它们添加到了书签里,方便以后阅读或者引用.我个人认为所有开发人员都能从这些文章中受益,因此我也写了篇“每个程序员都应该了解的”文章,准备分享给你们.这是我的个人收藏.在这篇文章中,你会看到每个程序员都应该了解的一些经典文章,涵盖了内存,unicode,浮点数,网络,面向对象设计,时间

读我编程,我快乐:程序员职业规划之道 第一章 选择市场

职业规划,从大学开始,很少考虑这个事情,大四那会儿还学过相关的一门课,当时也只是抱着学分修修到的心态.最近一年里开始思考这个问题,近期阅读了这本<我编程,我快乐:程序员职业规划之道>,开始学习着规划自己的职业.这本书不仅适合程序员,也适合其他职业. 准备按照章节摘抄出一些觉得有用的.引人思考的片段和一些有趣的练习题,再附加自己的感想. 在<程序员修炼之道>一书中,Dave Thomas和Andy Hunt谈到了编程中的偶然性:当你开始做一个程序的时候,或许手头上有一个从网上复制的示

(转).net程序员转战android第三篇---登录模块之静态登录

这一篇我将分2个部分记录登录界面,第一部分是静态登录, 这部分将如何从界面布局.控件使用.文件关系.数据验证.登陆实现等5小块记录. 第二部分是动态登录,这块会基于上面的4小块,在数据验证不是静态数据, 而是通过WebService获取网络数据,然后解析网络数据,验证成功在进行文件关联,然后页面跳转,最后实现自动登陆; 需求分析 如图所见,对于一个程序员来说,不管你是做android\.NET\IOS,如果让你来做上图效果, 大家都会明白从哪里入手. 1:界面布局(分为3块,顶部标题栏.表单提交