其实对于程序员这个行业到底是不是吃“青春饭”的争论,从未停歇过,大家往往各执一词。其实,在我看来,这个问题是因人而异的,每个人成为程序员,走进互联网行业的原因以及目标都不同,很多的人简单的就是因为热爱,所以走进这个行业,所以乔布斯在车库里创办了苹果公司,比尔盖茨连大学都没来得及完成就创办了微软,直到今天,在美国的硅谷还有数不胜数的“大龄”程序员依然战斗在软件开发的第一线,并非他们技术成长太慢,直到今天还只是程序员,而可能恰恰相反,他们却是程序界的大牛,或许亲自写出了某种流行语世界的语言或者框架,代码是他们一生所爱,相比于与人打交道,他们更喜欢使用机器的语言。当然也有很多的程序员,当自己在技术上走向成熟之后,选择了转向管理层或者技术高层,不在会去写一行代码了,这样的路或许也会非常精彩。
古人说“三十而立”,对于类似于“奔三”的程序员而言,也应该静下心来思考自己未来的发展方向了,是继续深耕于技术,还是转向管理和其他。其实无论是怎样的选择,都没有绝对的好与坏之分,自然也没有对和错,其实只有夜深人静时,叩问自己的内心,问问自己到底想要什么,想成为什么,才会找到一切问题的答案。本文就为大家整理了网友们在知乎上关于程序员职业发展和转型的一些观点,希望大家能够从中有所借鉴,当然最终还是要Follow Your Heart!
愤怒的泡面:
游戏人生:
本人也是30+程序猿一枚,有过5年大公司经验,4年自主创业经验,现在创业失败,又回到行业数一数二的大公司蛰伏,个人感觉本人经历比较符合你说的情况,我按照我的经历来谈谈想法吧。分3个阶段来看这个问题吧:1.年轻幻想期:本人大学毕业后就进入一个身处二线城市大公司工作,因为一点狗屎运吧,从实习半年到转正就升任主程(别惊讶,只是因为新开了一个海外业务部门,外加人缘也还不差,部门老大点名要我过去),1年升任程序经理(本人游戏行业,程序经理最多团队人数达到15人)4年项目经理(团队规模80+)。虽然没有什么大成项目,但是一步一步的过快提升还是让人有点冲昏头脑,我最开始是作引擎的,后来一步一步升任管理后,技术也就一点一点的放下,到了最后一个项目的时候,因为感觉到了瓶颈期,而且公司老总那边做了一些那个时候觉得为人不齿的事情(其实就是卸磨杀驴,现在回头看也比较释然),毅然决然的离开选择创业,加入互联网大潮。
总结:1阶段的时候是,选择2,无怨无悔。2.老成磨砺期:从公司出来后和以前的同事一起四处拉投资,算是团队实力不错吧,拉到一份500w+的投资,开始了现在回想都是噩梦的梦想之旅。在长达4年的创业里面,看到了太多人性的丑陋,细节我不想多说了,也许未来我会写个总结发到知乎上来,让以后更多的朋友看看不要再走我犯过的错,走我的老路,一句话带过吧,在那个创业公司,我做过程序开发,程序经理,数值策。
朱虹:
我虽然不是一个程序员。但也有过类似这种问题的困扰。 是继续加强学习?还是要转到相邻的领域?还是要自己创业?
其实我觉得这些问题都是相关联的,你要有一个目标,然后分成小阶段的去实现,不是说你想创业就创业你想转行就会一定成功。
首先,从做程序员的角度思考,如果要转行做销售 ,那么我认为,IT行业 程序员对于客户的交流能力,是薄弱点。还是要考虑一下自己是否真的合适。可能你觉得自己的沟通能力还不错,但是等你见了真正的业务员 公关 或者和服务行业的人打个交道 吃个饭什么的 你就知道自己弱到什么样了。不过凡事没有绝对,如果要是和一个老的销售配合,你又懂技术 和客户沟通起来就游刃有余了。
做运营,我接触互联网行业也有4,5年了。我真的不觉得,程序员运营很牛,懂的都是皮毛。首先他们的思维就是不同的。 做运营的人,他会去思考,做什么东西有发展,市场现在最好做的是什么,哪里有推广的突破口,然后在决定,要做一个什么东西。 而程序员则是,我想做一个款什么样的产品,感觉是用户缺少的,但实际的推广策略,是根据产品出来之后,在慢慢制定的,但推广结果好坏,“未知”。
所以说,在思维上,两者就出现差异。如果你决定要做运营,还是要 早早的提前接触这个圈,慢慢的了解深入之后,在转吧。 自己创业,牵涉的问题就更多了,以上所有的东西不管是运营,技术,销售,你最好通通都要了解,有自己的思路方向。 经验丰富又善于思考,有一定领导能力的程序员 , 我觉得做PM还是蛮不错的。 所以说,如果你想转行,就趁早针对某一方面赶紧下工夫研究,不要只是在想啦。要去行动。祝愿各位奔三的同志,有一个美好的未来。
程序猎人:
首先,更正一个概念,做IT这行,并不是除了程序员就是项目经理(PM)。这行业发展了这么久,分工已经很多了。30岁以上的程序员有没有?答案肯定是 有!我还见过将近30岁才开始改行做程序员的呢。以前是炼钢的还是卖服装的记不清了。
但如果是狭义的程序员定义,你做好几十年,估计你不会愿意做的。
我这里的狭义的程序员,指的是不做设计,按照详细设计写代码的人。
如果不是狭义的程序员,走技术路线,据我所知至少有以下非PM的发展路线:
- 架构师:对业务咨询师为客户制定的技术解决方案进行分析并选择最适合的软件硬件实现架构及方案
- 计算机技术领域专家:某一计算机技术领域的专家。比如Java专家。一旦架构师决定使用Java技术来实现产品,此人可以进行设计、并指导团队完成技术实现。
- 技术研究员:对最新的技术进行了解、研究,甚至是创造最新的技术。
当然,我的见识有限,可能还有其他更多的选择等待着你。另外,随着时代的发展,也可能有更多的分工出现。
总之,前途一片光明。
但,切记一点,一定要让自己保持提高,不然一切都是浮云。
牛辉:
最近看了一些关于程序员的职业发展思考的文章,然后听了场公司一个写了10年代码的程序员的培训,工作后也和蛮多的程序员合作过,程序员的自我修养如何修炼,才能有比较好的职业发展路径,站在PM的角度谈下自己的想法仅供参考:
1.事情做得专业的前提是能关注到细节
我觉得细心谨慎是程序员最基本的修养和素质,逻辑能力啥的倒是更为上一层的事情。整天想好的算法和架构是没有用的,你知道当你跟产品经理说解了半天的bug是因为少了个分号的时候,产品经理心中鄙视的是多么的波涛汹涌么。 如果连这些代码基本的细节都不能注意的话,谈何其他呢?
2.尊敬每一个人就像尊敬代码一样
很多程序员是傲娇的,觉得产品就是自己做出来的,其他的人都是辅助的。所以很多程序员心里是看不上产品,测试的,也就造成很多沟通障碍。首先上面这种人一定一辈子只能写代码,哪怕技术再牛.我不太认同写代码只能写到30岁,但是程序员30岁之后,要想有更大的发展,那么做团队管理,要么做技术咨询,才能让自己的能力和积累的经验扩大化,那么这个时候,卓越的沟通能力往往成为关键。
3.用经验堆砌出你的产品技术全局观
这个就涉及到架构方面,产品经理提出需求,不仅仅想听到的是这个需求可以做还是不可以做这么简单,而是如果可以做,那么开发成本是怎样的,会对目前的系统产品模块造成哪些影响,有哪些的risk,如果不可以做,有没有好的替代方案或者简化方案。
如果在需求评估的时候,PM可以得到这些答案,一定会跪舔你的。当然,另一方面,如果在前期评估中,这些都没有想到的话,后期造成的种种后果也是需要程序员自己承担的。
4.做好情绪管理
理论上,程序员都是冷静的。但是现实中,情绪冲动的也是蛮多的,我不知道这样的性格会对写代码有何影响,但是因为情绪影响了判断就不好了,例如因为需求反复修改就索性说这个代码实现不了这种事情,终究会对自己的信誉造成很大影响的。这种事情我经常遇到。。。
5.技术要做到精益求精
编程语言那么多,多语言的程序员虽然抢手,但是如果是半瓶水的水平,估计也是没人愿意要的。现在程序员非常多,是因为这个行业入门的门槛非常低,也就造成行业的水平参差不齐。做一个网站很难么,找个现成的框架,懂点数据库,建个数据表,前端再找个现成的模板,修修改改一个网站就出来了。但是满足这样就完了?那么水平可能永远就是这样了,其实这其中每一个点都是可以研究的很深的,比如网站的大数据存储,如何提供程序并行运行的效率,未来计算机行业的技术分工会越来越细,任何一个方面的专家都是相当有用的。
6.职业规划,其实你没的选
听一个前辈讲,自己也对职业也很迷茫过,后来索性去创业了,但是失败的一塌糊涂,最后才明白,自己最会的还是写代码,最懂的还是Java,有时候其实你没的选。
7.Stay hungry ,Stay Foolish
技术是永无止境的,好的程序员必须保持对于新的技术敏感度,保持学习的热情 同时看书学习可以更多的得到思维模式,可以在最快的时间发现问题的所在 如果没有好的思维模式,很多程序员遇到需求了,先百度,看看有没有相似的代码,遇到bug再去百度下,看看别人是怎么解的,这种永远只是码农而已 听说一本好的程序书籍至少要读12遍才能理解。。。