作为一个技术不是大牛事业也不是很成功的老程序员,我觉着还是要写一些什么,来给未来的程序员们讲述一个过来人的感悟吧。成功人士的文章有的是,而在这个世界上成功人士毕竟是极少数,大多数人都是普通人,可能你也一样一辈子也成不了什么大牛或者公司高管,每个人的追求不同,有的人追求更有钱更有地位,而有的人就追求安稳过日子,赚钱够花小康即可。其实人不是必须很有钱才能快乐,能有一个和谐的家庭,一份喜欢的工作,一个健康的身体,才是最幸福的。
编程这个工作对智商有要求,但是对基础知识和学历背景要求不那么高。如果你智商够用,无所谓你之前的文化程度,完全可以经过半年的培训加入程序员的队伍,不像某些工作岗位对从业资质或基础知识有要求,想改行过去比较难,比如想改行当个医生吧,那需要回炉高中重新考个医学大学才行,没有别的办法。
既然任何智商够用的人都可以当程序员,那么您适合当程序员么?首先得问自己几个问题。第一,你觉着自己智商是否够用,第二是否能坐住板凳耐心学习,第三你喜欢编程这个工作么?第四你是否有其他更好更喜欢的职业。我些个问题是在问那些不是软件工程相关专业想转行做程序员的,如果是学软件工程的你就是本专业,我相信这部分人通过大学四年的刻苦学习应该已经知道自己适合不适合做程序员了。
前两条是个辩证的关系,智商不够用可以努力学习弥补,智商够用是一个程序员的基本条件,毕竟这工作是脑力劳动,有一些比较难的数据逻辑处理不比上学时解应用题容易多少;第二条能不能做住板凳耐心学习,有的人就坐不住板凳,而且也不爱学习,这类人是最不适合做程序员,即使做了程序员也会工作的很痛苦;第三喜欢编程么?如果不喜欢仅仅是为混饭吃,技术水平不会混的很高;第四条如果有别的更好的职业,还是做别的吧,很多工作远期看比程序员发展前景大。这个社会搞技术能飞黄腾达的也都是搞了几年技术转型了的人,一直长期搞技术的爬到高层太难了,举个例子BAT里面马化腾李彦宏都是技术出身,但他俩写代码也都没写几年,最有钱的马云还是个学外语出身,你业务牛、市场牛找一个技术大牛来跟你合作还是比较容易。在企业里搞技术的有些类似于做财务的吧,属于辅助工作,在某些公司给你安排工作的的不一定是领导可能是业务部门的同事。
一个优秀的程序员的基本素质就是脑瓜好使,能坐住板凳,喜钻研,热爱学习,有这些基本素质可以成为一个技术大牛吧!从实际的工作中来看确实还是学习好的好学校的同学成为大牛的概率更高,因为脑瓜好使的人一般考大学也考的不错,有一些文化层次比较低的程序员敲代码也敲的不错工作效率也不低,但是深入的遇到复杂逻辑问题就容易遇到困难,不过每个单位都不是需要那么多大牛的,也需要搬砖的工人,社会上也可以有你的位置,人一定要找准自己的定位和自己的追求,自己不努力抱怨赚的少没意义,等你努力了赚的还少你在抱怨吧,呵呵。
一个程序员想有好的发展技术不是最重要的,很多程序员都干几年转型成功了,成为了项目管理者、企业管理者从而脱离了纯开发岗位,这种程序员不一定是代码写的最好的,但肯定是综合能力比较强。每个人都要有评估自己各项能力指标的能力,如果你就是上面我说的能坐住板凳喜欢钻研脑瓜好使的,你可以奔技术大牛使劲,如果你人际交往、文档能力、情商都很高,就要往别的方向发展或者往技术管理者方向发展了,写代码会耽误你人生,如果长期写代码,接触的是计算机语言,人类的语言能力会退化,交际能力、文档能力、应酬能力、应变能力统统都会退化,年龄也大了,也没有你大学刚毕业的时候可塑性强了,那就只能一直干写代码的工作了。
程序员很适合社交能力不是特别强的人来做,毕竟是跟机器打交道,只要你技术到位,机器永远会很听你的话,人就不一样了,人心还会变呢,对吧。
程序员是技术工种里少数几个可以经过短期培训把其他专业的人改造成这个行业的人,社会上越来越多的大学都开设了软件工程专业,加上原本的计算机相关专业,还有社会上大量的培训班,本质上都是在培养程序员,造成的后果就是程序员越来越多,程序员的薪资尤其是初级的薪资压的越来越低,很多从培训学校出来的学员高不成低不就的,最后没找着写程序的工作,钱白花了,有的人学习能力比较一般的,就是凑巧找到工作了在公司也干不了什么活,安排的工作完成不了,最后自己就选择放弃当程序员了,钱依然白花了。钱是小事花了还能再赚,主要是耽误你选择正确职业的时间和精力,等到多年以后你在一个和程序毫无关系的工作岗位上工作时,很可能会感慨自己当年花大量时间和经历在写程序上真的是浪费生命。所以不能盲目选择这个行业,一定要认清自己的能力和特长,认真斟酌,这是自己的人生,不是儿戏。
如果是想通过培训学校来加入程序员队伍的同学,我的个人建议是你最好在你的目标城市找培训学校学习,比如你想去上海工作,那最好在上海当地找个培训学校,比你在外地的培训学校就业会有优势。
关于进大公司小公司的问题,前几天有一篇文章分析完大公司小公司利弊之后的结果是没有区别,各有好处,笔者不敢苟同。首先一个毕业生在找工作的时候,肯定是大公司更难进,小公司更容易一些,咱们从逻辑上来分析一下,如果进大公司小公司都是一样的为什么大公司门槛更高?首先就大公司尤其是上市公司起码薪酬福利待遇就要好,公司正规,该有的都有,而某些小公司可都能没保险、没年假、没公积金各种没有,大公司出差坐飞机住三星以上宾馆出门打车,小公司出差坐卧铺住小旅店出门大公交,大公司单位经常组织各种娱乐拓展活动和培训,小公司你就自己自娱自乐自学吧。对于学东西来说,虽然在大公司就是一螺丝钉,但大公司你能接触到更大的项目,单位的牛人更多,单位的培训多,你的眼界更高,也能学习到更多。而且大公司转职机会很多!很多人综合能力比较强,在大公司写了几年代码就有机会转职到别的部门了,发展更好,小公司转职的可能性就比较低了,你自己不想当码农公司也没有别的工作岗位能给你干。大公司升职空间小而小公司升职空间大的这个事,个人觉着也没有可比性,大公司的头衔都比较低,一个开发小组长可能都比小公司的一个项目经理管的人多,在小公司升职了待遇可能也比不上大公司的小码农。而且小公司未必稳定,没准哪天就黄了,想找那种真的是成长型的小公司,努力干几年公司变成大公司你成了高管的这种梦可以做做,概率真不高。如果真的在小公司想长期发展,需要研究领导的能力和为人,只会想尽办法剥削劳动人民剩余价值的那种还是算了吧,刷点工作经验就应该马上走。总之还是能进大公司就进大公司,不能进大公司拿小公司当跳板继续琢磨进大公司。
技术路线方面,要学比较热的主流技术好找工作的技术,在招聘网站上大概就能看出来社会上招聘量比较大的技术,在没工作阶段不要去赌冷门技术,赌输了还得是转型回来学习更热门的技术来找工作挺悲摧的。运气也很重要,前些年塞班挺火的,你如果当时学塞班学的很刻苦搞的很深入,搞了三年,别人花同样的精力搞安卓三年,你搞三年塞班可是塞班黄了,在转型搞安卓,虽然技术是有相通的地方你学的也挺快但是你肯定不如搞三年安卓的值钱啊!你跟别人花了同样的精力吃了一样的苦去学技术,只因为选择了没有前景的技术,人家干了5年值20K,你干了5年值10K,这个看个人眼光和运气了。这段是写给我们普通人的,如果是大神级别的码农从0开始学新语言也比你干了2年水平高,找准自我定位吧。
程序员也算一个吃青春饭的工作吧。你年轻的时候你有精力学习可以肆无忌惮的加班,脑瓜也好使,身体也好,等到你三十多四十多岁,长期久坐熬夜养了一身病,上有老下有小的时候,不可能有和年轻时一样的多精力去投入工作和学习了,下班了回家想学习学习技术可孩子那边哇哇哭你不大可能袖手旁观吧,所有岁数大的人的梦想应该都是自己可以能靠经验吃饭了不用在辛苦学习了吧。程序这个东西也确实有更新换代的问题,举例子,二十年前的会计和现在的会计比,也就是由有个财务电算化的变化和政策的变化,做账还是那些东西,二十年前设计大楼的技术和想现在设计大楼的技术也差不太多,只是工作方式变化大一些而不是技术变化大,大概就类似与你用editplus写程序升级用eclipse写程序,可二十年前的程序员的工作内容跟现在区别可就大了!二十年前java才刚出生!到现在已经死了一大堆编程语言了!底层的码农每次在换语言学新技术的时候还是比较痛苦的。
在此祝愿所有想成为码农的小伙伴们,希望大家都能做出正确的选择,在自己的人生路上越走越远越走越高!
署名:远道来的程序员