避免迷茫跳槽,程序员有哪些发展路径?

本文为 100offer说推出的程序员发展指南系列第一篇,约 4000字,全部读完需要 6分钟。
我们在平台上经常会接触到一些候选人,他们对于跳槽的目标通常都比较迷茫,会问一些诸如:「不知道下一份工作该去哪类公司做些什么」,「我的职场人际一团糟老板不重视我」,「我现在成长的非常慢所以又想跳槽了」,「我看不到公司的发展前景好迷茫」……等一系列问题。
其实这一切的困惑都来源于没有做好职业规划或者你根本就没有职业规划过。
因此我们认为,对于程序员而言,做好职业规划是有目标、有计划跳槽的第一步。今天我们就来聊聊,程序员为何要提前做好职业规划,怎么做职业规划。
为什么要做职业规划?
首先,我们要知道职业规划是什么,也就是如何持续选择适合自己发展的工作的过程。
职业规划其实就是对职业生涯乃至人生进行持续的,系统的,计划的过程。职业规划也叫「职业生涯规划」。职业生涯规划的好坏有时会影响我们的一生。
其次,我们要知道职业规划原则是什么。
是偏爱的:只有这个事情是自己喜欢的,才有可能在碰到强大对手的时候仍然坚持;在遇到极其困难情况时不会放弃;在有巨大诱惑的时候也不会动摇。
是擅长的:做你擅长的事,才有能力做好;有能力做好,才能解决具体的问题。只有做自己最擅长的事情,才能做得比别人好,才能在竞争中脱颖而出。
实现价值:你得认为这件事够重要,完成它之后带来的价值足够吸引你,值得你做,否则你再有能耐也不会善始善终。
长远发展:首先你得有机会去做,有机会做了还得有足够大的市场与成长空间,这样的职业才有奔头。
所以经常我们会听到一个人说自己非常幸运,大学毕业去了一家公司,然后跳到了另一家公司,公司发展的非常好,不到 35岁就实现了财务自由,这背后的职业规划本质一定是基于偏爱,擅长,实现价值与长远发展的原则,而不仅仅是表面的幸运。
所以建议候选人们不要仅仅为了薪资或者地点或者公司知名度就选择一份新的工作,要根据以上四个原则,满足的越多,越匹配,到了中期以后才不会迷茫未来要何去何从。
最后我们想说,其实在每一个时间节点看过去的自己,都会发现对整个行业认知甚至对自己的认知都是有限的,所以做规划不是真的千篇一律的照本宣科,而是朝着心中自己本该有的样子去自驱,去变得更优秀。
我们再说说下一个话题,程序员职业发展路径有哪些选择?
程序员一般的发展方向主要是几类:技术专家,架构师,技术管理,管理,产品。
接下来通过例子和大家分享以下四种不同的发展路径及适合走这四类路径的人群的三个关键词。
第一类,程序员-高级开发-技术专家路线
我们之前的一位候选人 z先生,他12年从某理工科院校毕业,而后去了某搜索公司担任工程师,做了两年后,跳到了一家创业公司,担任b端高级开发,后来去到了因果树担任b端的技术资深开发,在今年2月份入职bat,同样是负责 b端商家后台部门,担任技术专家,他职业规划最大的亮点是找到自己想要专注的领域并且一直坚持至今。
第二类,程序员-高级开发-架构师
也是之前 100offer的一个用户,h先生,他 11年大学毕业,而后选择创业做saas平台当时担任前端负责人,两年后选择加入搜狗成为一名高级前端工程师,后来去到了某互联网媒体公司担任架构师,目前在一家创业公司担任前端架构师,他职业规划的最大亮点是在前端领域各个方向都深入见解,而后负责多条产品线的架构设计。
那以上两种技术路线有什么不同呢,应该如何选择呢?
技术专家,是偏理论研究的,对某个或某些相关的专业领域深入了解,能直接或通过提供思路间接解决这些领域的各种问题;
架构师,是偏工程实践的,与技术专家的区别在于它需要一专多能,提供方案解决问题已经不是它最重要的价值,它的价值体现在选择性价比最高的方案。
举个例子,其实你可以把技术专家和架构师的区别类比成科学院院士和工程院院士,你要搞一个语言识别,那是理论;你要做一个siri,那是工程。而你,更擅长和向往做语言识别技术还是siri呢?
有些同学可能会说,我的最终目标仅仅是成为一个优秀的程序员,那我们想知道你能做到以下3点吗?
写的程序不需要格式化,也是非常标准的,我见过很多程序员写的代码,连空格的使用都没有标准,从上到下给人的感觉就是一片混乱的字符的组合,好的程序应该像诗词,在格式的约束下追求飘逸。
写的程序没有无用的代码,其他人来评审时找不到无用的代码,也无法在保持同样阅读性的情况下进一步精练;
在可读性与效率中保持平衡,通常情况下我们优先考虑可读性,但是对于频繁执行的部分,可以牺牲可读性保证效率,但需要书写足够多的注释,注释不要说代码的用途,而要说自己写代码时思考的内容,我就曾经见过有人把一段代码使用oo的思想来改写提高可读性,结果这个代码的目的是越精简越好,这就是好心办坏事。
如果还不能做到以上几点,那就好好做好明天的事儿就好了,暂时什么都先别想,因为成为一名优秀的程序员是技术路线的基础。
接下来说说第三类,也就是管理路线
程序员—资深工程师—技术经理(技术管理)—技术总监(管理)—cto(管理)
100offer的一位用户 q先生,他在 30岁就成为了某知名共享单车公司的 cto,回溯他的成长路径,09年大学毕业加入一家创业公司担任开发移动端工程师,两年后加入某知名互联网安全公司担任资深研发工程师,而后加入某知名社交媒体公司担任移动端部门的技术负责人,而后加入了一家大型互联网公司担任技术总监,在去年 7月加入共享单车公司担任cto。
他职业规划的最大亮点是一直在核心业务上往技术管理进阶,最终成为一名优秀的管理者。
谈到这类管理路径,必须要说明下技术管理和管理的区别,技术管理是事情为中心,管理是以人为中心,技术管理主要工作是保证事情能按时按质完成,管理需要考虑团队的士气和稳定性、阶梯性。
最后说一说第四类,也就是技术转产品
发展路径为:程序员—高级开发-产品技术—产品经理—产品管理
x先生是 100offer的一位深度用户,也带来一个海龟码农成功转行产品经理的故事,09年毕业于美国工程类名校,而后回国在一家外企担任开发工程师,一做就是5年。14年一个幸运的机会加入 bat,当时面试了7轮,拿到了p5(参考阿里评级),月薪 1w2的工程师 offer,基本是刚毕业一年左右应届生的水平。在这家公司他主要从事红点系统的开发工作,做了两年,他从未抱怨。他也给我们展示了所谓红点,其实就是软件商上不同接口旁的红点引流。一个软件的日活可能上亿,但是会点击那些游戏、商城、音乐等接口的用户大概只有1%,红点主要就是吸引那些有强迫症的用户点进去引流。
从最开始的红点数量的改进,到后面根据不同属性用户设置不同红点,再到后来和其他产品合作,搞红点的竞价排名...就这么一个小功能,bat专门养了一个团队去做,对于 bat这种大公司来说,一个小的模块和功能的改进能带来很大的利润,很多人常年都在做很小一个模块的重复工作,很难独立完整去做项目,里面闲人很多。
所以工作两年后,许宁也想做点商业化的东西了,给部门老大反馈了想法没得到支持,在内部其他部门也争取了问了一圈没能成功转岗,于是就想出来,不想继续在 bat里面慢慢熬晋升了,从bat出来是那年是2016年3月,p6。而后在 100offer上入职了一家投资公司,以产品经理的身份加入,两年过去了,目前已经成为了一名高级产品经理。他职业规划的最大亮点是深思熟虑后立刻决定和行动,没有犹豫,而机会往往更容易留给有准备和有勇气的人。
谈到技术转产品这类职业规划路线,和大家说说开发转产品经理需要锻炼哪些能力。
1、商业思维
开发人员以前是和机器打交道,产品经理给出一个需求就按照那个需求做了,从来不想着为什么这样做,做这个需求想达到什么目的,从来没想过你开发的app,你做过的程序老板是怎么用它来赚钱的,这就是你转行产品经理要锻炼自己的第一个能力,培养自己的商业思维,培养自己发掘用户需求的能力。产品经理是站在用户的角度考虑产品,以用户为中心。所以技术人员转产品经理要摆脱技术思维,多想想用户的使用习惯,多想想产品的商业目标。
2、沟通表达能力
程序员给别人的印象一般都是木讷,沉默寡言的,也难怪,程序员都是在和机器打交道,不是销售那种和人打交道的工作,不需要说太多话,不需要撕太多逼。而产品经理的工作要和很多部门打交道,要和运营、技术、设计、市场推广等各个部门打交道,在产品宣讲的时候要清楚的向他们传达你的需求,当产品上线你需要给客服培训,这些都需要你有较强的语言组织和表达能力。
3、文档能力
程序员的工作就是码代码,代码是用英文编写的,只有在给代码注释和写产品说明书的时候才写中文,而且写的也是一些琐碎的内容。如果让一个程序员就某一个主题写一篇文章出来,我想大多数程序员可能无从下手。而产品经理工作中要写很多文档,商业需求文档,市场需求文档,产品需求文档,产品说明书,文档表达能力在工作中很重要。
4、项目管理能力
好的产品经理需要一定的项目管理能力。需要推动产品按照正常的步骤,规定的时间,按质按量的发布上线。这里就涉及到,整体管理、时间管理、团队管理、需求管理。整体管理:包含产品从分析规划到产品开发到产品上线运营到迭代优化的全过程进行管理。时间管理是指主要是计划监控跟踪项目进度,把握关键时间节点,确保产品按照规定的时间上线。团队管理:产品经理需要协调很多部门,有技术,设计,市场推广,运营,产品经理是一个无授权的领导者,你多数需要通过自己的影响力,自己的沟通技巧来协调项目的各个成员,所以需要一个相应的团队管理能力。需求管理:包含各个部门反馈的需求,以及自己收集的需求,需求的变更,需求的跟进等。
所以,如果你觉得在以上四个能力上你有天赋,并且愿意为之放弃技术的发展路径,那么我们建议你,转岗要趁早。
了解了职业规划的必要性、原则和程序员的发展路径后,不如趁新年,开启你的职业规划之路吧。
此为100offer说推出的程序员成长指南第一篇。
本文约
100offer是谁 ?
100offer严格筛选来自世界各地的优质公司,打造了一个优秀人才和公司的平台,致力于帮最好的人才发现更好的工作机会。使用 100offer ,互联网人可在一周内收到来自中国、美国、新加坡等数千家优质企业的工作机会。