程序员职业生涯发展到必定程度都会面临一个选择,是走“管理 + 技术”方向,仍是选择纯钻研技术走“技术 + CTO”路线。程序员职业生涯发展的问题,这是全部程序员都在关心的问题,将来究竟要怎么走,30岁以后还能不能再作程序员.......html
绝大多数程序员最终的职业目标可能都是CTO,但能作到CEO的人估计会比较少,也有一少部分人本身去创业去当老板,也有部分人转行了,当老板的人毕竟是少数,转行的人都不在这行作了,天然没什么好说的了。程序员
通常来讲,程序员的发展基本上都会经历这么几条路径:架构
固然这只是一个大体的路径,不是全部程序员都必须要这么经历的,有些人可能跳过其中的一些步骤,也可能有些人会把中间的不少职位都作了。而最终作到CTO的程序员,也是很是少的一部分,缘由很简单,这个世界上不准要那么多的CTO和CXO。网站
也就是说,许多的程序员最终多是作技术经理、项目经理、或项目总监之类的,那么到底咱们职业生涯要选择哪种呢?spa
这个问题没有统一的答案,由于每一个人的性格不同,际遇也不同,就像你从小但愿当贪官,但是命运却恰恰让你作了一个程序员。因此应该根据你的兴趣、性格与际遇选择一条道路,好比说你正好有机会带一个项目,而你又不是很讨厌项目经理这个位置,那么你就能够选择向项目经理方向发展。设计
实际上不少时候,有些公司并无明确的技术经理、项目经理、产品经理之分,在许多的公司里,他们常常是由一我的承担。在外包公司里,一般会有项目经理和系统分析员(也多是技术经理)。在一些非IT公司里,可能会是部门经理,而作本身产品的公司可能会分得比较详细一些。htm
我大体说一下这三个职位的区别,让正在徘徊的程序员有一个大体的了解:接口
1) 项目经理开发
项目的直接负责人,这个角色至关于一个中间接口,不论是团队成员仍是需求方(客户),或者是上级领导,有事都直接找他,因此这个职位着重于管理与沟通。通常来讲,项目经理的工做重点在同客户沟通需求、项目进度的把控、团队的沟通方面,有些公司也会须要项目经理承担团队建设的工做,不过貌似不少国内公司都忽略了团队建设这个工做了。对于项目经理来讲,重点会要求沟通能力、协调能力、危机把控能力、执行力、团队管理能力,着重于沟通、管理与计划。固然也有些公司还要求项目经历要参与招标谈判,这就要求项目经理有必定的商务谈判能力。get
2) 技术经理
有时候也可能叫系统分析员,一些小公司可能会整个部门有一个技术经理。技术经理承担的角色主要是系统分析、架构搭建、系统构建、代码走查等工做,若是说项目经理是总统,那么技术经理就是总理。固然不是全部公司都是这样的,有些公司项目经理是无论技术团队的,只作需求、进度和同客户沟通,那么这个时候的项目经理就好像工厂里的跟单人员了,这种状况在外包公司比较多。对于技术经理来讲,着重于技术方面,你须要知道某种功能用哪些技术合适,须要知道某项功能须要多长的开发时间等。同时,技术经理也应该承担提升团队总体技术水平的工做。
3) 产品经理
这个职位通常在有本身产品(不论是软件仍是网站产品)的公司比较常见,产品经理主要会负责产品的设计、产品的改良等工做。须要注意的是,产品设计与设计师是两个不同的工做,产品设计主要会从用户体验、业务须要等层面去设计产品,而设计师更可能是从用户的视觉上去作。产品经理应该是最懂业务的人,好比说你在设计一个微博的产品,就要求你对微博这个东西很是熟悉,从用户习惯、用户体验、公司的发展战略上去设计这个产品,还要对比同类产品会有什么优点等等。
不论是项目经理仍是技术经理与产品经理,都要求要熟悉业务,业务是需求的来源,没有不谈业务的技术,因此无论你从哪一个方向发展,都要求对业务熟悉。产品经理要求对业务最熟悉,项目经理次之,技术经理排最后。对于程序员来讲,刚开始工做的前几年能够埋头扎到技术里面,通常这个时间在2-3年的时间,而后就应该多关注业务了。这个业务不必定是指某个具体的业务,由于具体的业务的范围太少,并且也须要机遇。
我见过许多的程序员,他们是作Web开发的,但对互联网很不熟悉,对于互联网流行的趋势基本上漠不关心。不知道如今你们都在使用微博,也不知道SNS,也可能从不使用网银。
我以为这样很很差,程序员应该多多去关注互联网的发展,多多去玩一些新的网站,接触新的创意,才会擦出最亮丽的火花。
只有站在技术浪潮之巅,你才会有一览众山小的视野和深入,人生感悟得以升华。
参考推荐: