对程序员职业的一些建议
自从四年前被CSDN采访后(“职业规化就像软件工程”),经常会有网友(尤其是刚毕业的)写邮件来问我一些程序员职业生涯的一些问题,至到今天。比如,国企还是外企的选择,一直编程有没有前途等等问题。面对这样的邮件,我感到有很大的压力,因为如果我的回复很有可能会误人一生,但我另一方面又很想帮助这些人。所以,我基本上还是会尝试回一下这样的邮件。昨天,我又回了一封。但是我心里还是有点忐忑不安。害怕说错了什么。
今天,我想把我的一些思路和建议写在这里,一方面供大家参考,另一方面也想听听大家对我的评判,这样不但对更多的人有帮助,同时对我自己也是一个帮助。
下面是某网友前天给我发来的邮件:
我是一个刚刚毕业的大学生,我觉得自己对于程序员这个行业感到很迷惘,所以发邮件打扰您一下,麻烦了。
我今年正在找工作,我现在有几家国企的offer,百度的offer还在等待,我觉得第一份工作对我来说很重要,因为第一份基本决定了近几年或者一辈子你在哪个行业发展。家里人都是希望我签国企,但是我自己对技术很感兴趣,一直希望能在技术上面走下去,签国企虽然很轻松但是我总觉得在技术上学不到什么有用的东西,所以我个人倾向是去百度。
我现在很迷惘的是,如果我一直在程序员这个行业上走下去,以后的出路应该是什么呢?还是一直到高级工程师,还是项目管理这种程度吗?
我现在听很多人在说程序员必需要转行,因为一辈子在编写代码,没有什么好的出路,对于这点,您有什么看法吗?我现在才刚刚从学校毕业,对IT这个行业也不是非常了解,但是我觉得自己自学能力很强,而且确实很想学些东西,你对于一个刚刚毕业的计算机学生有什么建议吗?
信件的内容我没有改变,我相信很多人都有相似的问题。我昨天给这们朋友回复了邮件,下面是我回复内容的一个整理。欢迎大家讨论。
首先,我想说的是,这些东西只是我根据我的经历给出的建议,仅仅供大家去参考,你的路你的人生要你自己决定,不要轻易的让人帮你决定,那怕是你的家人。
如果我们把所的问题一起谈,那怎么说也说不清楚,所以,请允许我“关键点分离原则”来分开说说。
目录
一、对技术的热情
如果我们喜爱编程,喜爱技术的话,那么,我们就会投入热情,自己会去专研很多东西。就像你以前对某个东西痴迷一样,你可以在工作之余还在学习和专研这些东西,你会经常和人讨论这些东西。不知道你是否会和我一样有一种感觉,如果你不学习技术,你不去专研,你就怕被淘汰,你就会感到不舒服。
所以,我们一定要问我们自己一下,我们自己喜欢技术吗?喜欢技术到什么程度。只是感兴趣还是喜欢?这两个不一样。兴趣能让你开始让你执着,但只有喜爱才会投入热情,只有投入热情才可能会出成绩。这个问题你要问问自己。
- 你有多大的热情在这个事业上?
- 你对你自己的自我价值的实现的诉求有多大?
如果你很有热情,可能到了有些痴迷的程度的话,比如,你会因为专研某个问题,学习某个东西,尝试某个东西,达到废寝忘食的程度,而且以些为乐,那么我非常建议你走技术的路线。
二、对技术的能力
有兴趣,有热情,并不代表你就一定行。你需要很清楚地认识到,你还需要有能力(我在《再谈“我是怎么招聘程序员”》一文中说了程序员的四个事,操作技能,知识,经验,和能力,大家可以去看看我对“能力”的定义)。你需要反思和重审一下自己是否有能力,你的学习能力怎么样,是经常需要问人,还是可以自己专研?你的思路怎么样,是否能被有经验的人认可,还是能够影响别人?
兴趣和热情只能让你很执着,但并不一定能让你走好这条路,只有你的能力和你的强项才能让你走好这条路。希望大家能够清楚地认识到这其中的差别。
所以,你一定要对自己做出一个判断,要学会反思,如果你是有能力的适合走技术路线的人,那以我非常建议你走技术路线。
我也尝试创过业,但我觉得我这种人是“谋士”,不是能攻城拔寨的“将军”,创业更需要的是“将军”,我目前只能是一个辅佐他们的“谋士”,所以,我也只能尽力能成为一个级别高点的“谋士”。
三、再说说工作的事
我比较同意的”第一份基本决定了近几年或者一辈子你在哪个行业发展”,但又有一点点不是很同意。因为我毕业的时候,在银行混了两年,然后又去一个国企业呆了2年。所以,第一份工作并没有影响我的职业。但是,我必需承认——当我从银行出来的时候,我落后了,落后了还很多,我花了近5-6年的时候才把这个差距追了回来。
所以,我有几个观点想告诉大家:
- 第一份工作并不决定你的人生。因为你可以在2年内换工作。但是你头四年的做的事会对你的职业有影响。这里,我有两个案例分享一下。(我不用说太多了,相信大家自己能体会)
- 一个是我的同学70后,他以前是程序员,干了5/6年后不想干了,想转行,结果转不了,因为他的工作经历让他很难转行了,他问了一下自己是否愿意和那些刚毕业的80后拿一样的工作一起竞争,最后他自己都不愿意。后来,他去读了MBA,现在还做IT,现在做一些业务咨询方面的工作。不能算失败,但是时间浪费了。
- 还有一个是我的同事,她CS专业毕业想做程序员,但最后为了进一个好的公司只能做QA,现在4年多了,她很想很想做dev,但是却抱怨工作没有给她这样的机会,4年多的QA经验让她很难成为Dev了。我从她做QA一年的时候就在和她说,如果你想做Dev,你就要有技术储备,多和dev在一起工作,QA又怎么样,如果我能读Dev的代码,我总有一天会成为Dev的。事实证明,她对技术并没有太多热情。现在也只能得过且过了。
- 如果你觉得自己在技术有自信有热情,而且已经有一些成绩了,我强烈建议你去IT公司中锻炼,越尊重技术的的IT公司越好。就像打球一样,只有和比你厉害的人一起玩,你才会得提高。
- 如果你对技术的热情一般,也没有太多的自我价值的追求,也不想拼搏,而且对吃大锅饭不反感,对没有激情的工作不反感的话,那么,你应该去事业单位,当个公务员,走走常规则的人生,养养老也不错。这里,我多说一句,根据中国的现在国情来看,如果你有自我价值的诉求,你要去大城市,去好的公司,走体制外的路线,如果你又不想来大城市 ,只想呆在地方的话,那么,我个人非常建议你走体制内的路线,在地方,只有体制内的路线是最好的。
- 千万别去一些没有前途的小公司(要去小公司你得看看这个公司的人和业务),很多不起眼的小公司现在都变大了,能和一个公司一起成长是相当难得的(我现在就特别想要这方面的经历),现在这个社会,与其去那些很难成长为大公司的小的很不规范的公司,还不如自己创业。(更新2011/4/26:@islet8 回复中的观点可能比我的更好——“我觉得第一份工作能尽量进大公司的确是有好处的,能够帮你建立起一套规范的、成熟的工作习惯了思维方式,经过一两年(在激情还没被磨灭之前)再挑一个靠谱的、能赌上自己前途的小公司(比如同事朋友等推荐过去的或是他们联合创立的)一起成长一遍,无论公司的成败,对个人来说,那都是成功了”)
四,技术可以做多长
在这里,我用我自己经历做个例子,我在软件编程上有14年了(加上大学里的项目就有16年了),虽然我今天是经理了,但是我还是喜欢编程。我以前也听到过别人说的——做技术太辛苦,没前途。我并不这样觉得,因为我觉得技术是实实在在的东西,很实在,这让我很踏实,踏实的感觉得好。因为,
- 我个人觉得真正的稳定是,今天我离开 这个公司,我明天就能找到相应的工作。
- 如果我的工作不成问题了,那么我就可以从谋生上升到事业的层次来。
- 只有到了事业这个层次,我才能有所建树。
另外,我觉得说出来的那些话的人要么就是“小猫钓鱼”的那些人,要么就是短视的人,你可以问问他们,哪个非技术的行业有前途,然后你去问问从事那个行业的人怎么样看?我15年来都在编程,虽然走了一些弯路,但是我很感谢那些中途退缩者,是他们让我这15年变得更有价值。15年从事同一个件事,这让我很有竞争力。有了竞争力,我的工作才不会是一个问题,我才能上升上事业的层次上来。
当然,如果你发现你不适合,你无法坚持,那么我建议你还是想清楚,别的行业你能坚持吗?我们不害怕转行,害怕的是自己对自己缺乏认识,害怕的是小猫钓鱼,害怕的是一山望比一山高。
五,待遇和职位
比如你的职位,薪水,福利,等,我从来都不是很关心这些东西,这些都是次要的(其次重要的),最重要的是你的能力和经历,是那些可以写在你简历上的,让你引以自豪的经历和能力。(一定要自己引以自豪)。而你的职位,薪水,只不过是你能力和经历的附属品。
把自己对待遇和职位的那个目标放在心里,踏踏实实做好今天的事,炼好自己的内功,注重经验的积累和总结,等待一个能让你量变引发质变的机会,用你的能力抓住它不要放手,你会发现你的路就在前方,通往这条路的门不知不觉已经开了。功到自然成,水到渠成。
以上是我的一些建议,不一定对,其可能因为我的个人经历有局限,还希望听道大家的讨论和指点。
(请勿用于商业用途,转载时请注明作者和出处)
(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)
《对程序员职业的一些建议》的相关评论
其实要说职业生涯的终极出路的话,目前只有出国和体制内,算是两条比较不错的终极的出路。
至于国内+体制外,要想好好生存,是需要有很好很好的心理素质的。这并不是说体制外就完全没法生存,只是,能在体制外很好生存并且觉得很幸福的人,都绝对不是一般人。如果自认为没有超越常人的能力。。。
有些人觉得十几年技术经验到哪都吃香,不错,但十几年技术经验也就30-40岁左右吧,人只活到40岁么?中国男人退休年龄是60岁。
现在在哪个公司看到 50-60 岁的程序员呢?30-40年的技术经验是不是真的到哪都吃香?
技术可以做一辈子,这话没错,但是它成立的前提是你呆在一个需要技术的企业。如果你呆在一个以延长劳动时间为习惯,以加班为文化的企业(很不幸绝大多数体制外软件企业都是这样的),很难相信50-60岁的软件人员能很吃香。
谢谢了,读完很受启发。我也是一个即将毕业去工作的学生。
毕业 干了2年,依然感到不安,喜欢技术,真怕以后老了,没人要
我看了这么久酷壳,也看了皓哥之前的自由文档之跟我一起makefile 皓哥确实是个有良心的程序员,给人中肯建议,又不像李开复一样满嘴跑火车,喜欢哗众的样子
好,读了~~是时候思考啦~
受益了,兴趣是第一位的,要想成为什么样的人就和什么样的人在一起。
“我觉得第一份工作能尽量进大公司的确是有好处的,能够帮你建立起一套规范的、成熟的工作习惯了思维方式”
这句话不敢赞同.我毕业后在一个大型事业单位呆了2年,发现有些”大公司”的体制僵化,如果呆得时间长的话,连人的思维方式也都会变得僵化的
华为准备发力新的行业,而且为了4G做储备。@CodeUp
看在哪儿了,国内需要高技术人才的公司极少,极少。外面不一样。@poet
比较同意,比较欣赏。
谢谢博主!
不错,学习了,看了深有体会……
更多年轻人不是不知道如何选择,而是没有机会选择。
进大公司没学历,进体制内没背景,要出国没英语,选潜力小公司没眼力。
但这些年轻人也显然不都是废物。
博主你看这种菜该怎么下饭呢?
我本来也想着去找一个工资高的工作,呵呵,看到了您的说法.我有点觉悟了,我好像一直没有在我现在的这个公司好好努力工作.我爱这个职业吗?我再努力去爱她.我已经习惯了这个行业的一些事情了.我想,我要在这个公司好好呆着,努力,做的更好,这样,在某天,再说跳这种事吧!不能浮躁,要心平气和!
哦,我只是一个新手呀!毕业快三年了,祝大家快乐!
是的,你说的没错,这个层次的人是大多数人,进不了体制内,出不了国,进不了大公司,选有潜力的小公司没有眼力,于是生活似乎变成了恶性循环——越没有经历,越找不到好的工作,越没有好的工作,可能就越没有经历。
怎么办呢?还是回到我文章里说的那几件事:热情, 能力,选择,你总要找到你有热情,有能力的一些事吧。选择可能会错,但是方向不应该错。如果你热情不够,能力也不足,同时也不善进,也不想去学,也不努力,如果自己都不着急,哎,我还能给你什么有用的建议呢?—— 让你父母养你一辈子吗?
这个时代已经不像我们父辈那时计划经济,上山下乡的年代了,这是一个多少你可以把握自己命运的时代,更要学会好好把握啊。
晕,又看了一遍,记住了这句话: ” 把自己对待遇和职位的那个目标放在心里,踏踏实实做好今天的事,炼好自己的内功,注重经验的积累和总结,等待一个能让你量变引发质变的机会,用你的能力抓住它不要放手,你会发现你的路就在前方,通往这条路的门不知不觉已经开了。功到自然成,水到渠成。”
选择技术路线 努力钻研 尽管人也是懒啊。。。惰性
豁然开朗!
看完了,写的很实在,有一种心里特踏实的感觉/
很好!拜读了!
学习一下。
觉得写得很实在,我刚参加工作,也有点迷茫。我想在C++,多线程和Socket编程方面有所建树,希望自己没有选错方向,希望自己能够坚持,加油!
说的很好啊~~~很有引导性 谢谢~
最近有点摇摆,看了,总想说些什么。毕业快三年了,也进了一家国外的银行,但是待遇很不给力,努力的工作了两年,做到项目的架构组,依然无法满足我的要求,后离职。在架构组,老大是微软的MVP,跟着他学到了不少设计模式的知识,后来出去找工作,发现.NET的市场太小了,折腾的转Java,花了很大的努力,也被拒了n多次,终于找到了Java相关的工作,还是一家国外的银行,待遇还行,但是发现职位由原来的高级软件工程师下降成软件工程师了。最近在想好像银行确实是不怎么注重技术的,更重要的是业务,外企的话,还要加英语。我也有想学点业务的想法,但是从内心上我还是更加对技术有热情一些,很喜欢之前和同事、同学讨论技术问题的感觉,在新的公司发现一点都没有这样的氛围,最近有点迷茫,不知道是选对来还是选择错了。不过对我来说,第一份工作确实对我影响很大,包括我的编程习惯和对以后发展的选择。也不知道在说写什么,就当发泄一下吧~~~呵呵
学习了!
是时候思考了
恩,拜读了。。。
真的很受教,确实如您所说,现在好多从事IT行业的新人一进来都很迷茫,包括我
@Levin
我面试的时候就是因为非.net遭到了很不公正的语言歧视……
非计算机专业的 热爱程序 正在努力 一个人战斗鸭梨很大!!
lz文章很不错 谢谢lz
说的不错 很有感触 期望自己的事业来临
大部分人工作的目的和方向都不明确。楼主能够知道自己想要的,并一直坚持做了这么久,非常值得学习和借鉴。
@xanatos
同感~~ 顶你.
很牛的一段话,赞!
你好,第一次回你的贴。毕业一年,在帝都体制内,待遇很低。我是名牌的大学毕业的,同学工资都很高,感觉很自卑,不敢找女朋友。你提的建议正是我想的,现在准备e文。
@nobody
我也在帝都,现在读研,马上就要找工作了。我现在和同学谈论找工作的事情都是问哪个公司待遇好,有户口,看来,我真的应该改变下思路了。反正我是不打算进体制内的。
拜读了!!!!发人深省!
我现在是一个前端工程师,说工程师都有点过了,就是一个网页游戏开发者,但是我想从事C/C++开发,能来的及吗?PS:最近经常看酷壳的文章,尤其是程序员练级那篇,看着也能激励自己,学到哪一步了,呵呵。
我很喜欢这篇文章,让我想起了我写的一个小工具遇到的问题,以及那篇”21天教你学会C++”。抛开良好的编码规约不谈。除了钻研算法、专业知识、业务知识等等,程序员更应该认真的去好好学习你用到的编程语言,“工欲善其事,必先利其器”,语言作为工具,全面的了解你用到的语言是非常重要的,尤其是C和C++这种有很多历史遗留问题的语言。这些基本的东西了解之后,今后这些代码摆在你面前,你可以轻松看出来。
自己喜欢关注细节,C++的二联符和三联符早在初学时就在C++之父的TC++PL一书的附录上看到了。C/C++支持的续行符更是研究的比较多,许多这样的问题依赖于编辑器的语法高亮显然是不靠谱的,就我所知,VS2008的编辑器(VS2005没用过)开始才开始支持“单行注释接续行符”的语法高亮,而许多其他的编辑器或者集成开发工具更是从来就不支持。并且”//”或者”/*”的两个字符中间都是可以用”\”续行的,并且我没有发现任何一个编辑器可以对这种情况语法高亮,三联符和二联符更是如此。
上一条回复发错地方了,皓哥有空的话帮我删了吧,呵呵~
很好的文章
很受启发
花了5年得时间在.net 上,最后毅然放弃改做java,可恶莫过于微软,天天内斗,把一门好好的语言搞砸了@Levin @陈皓
很有道理,还需要再品味一下。
感谢博主,您的文章对于我这种刚毕业的新人很有指导意义!过去身边总有人说“做技术、写代码没前途”“35岁之前必须转管理”之类的话,我自己也有些迷茫。现在渐渐明白这些人本来就对技术不感冒,所以做技术对他们来说当然没前途。我觉得一个人可以不喜欢技术,不喜欢写代码,但不能武断地说写代码就一定没前途。看来我之前想的太多了,走自己的路让别人说去吧,人的精力本就有限,哪有多余时间在乎别人怎么看。
其实这篇文章已经概括的很好了… http://coolshell.cn/articles/343.html 总能引起一些思考、不过大多数人的梦想都是为少数人的创造梦想.