提问:
“本人是一名二线城市的普通程员,工作五六年了,换过四五次工作,因为各种原因,现在只能算公司的一名主力程序员,没有步入管理层收入,5k多的样子,穷diao丝一个,现在的收入,已经严重不足以应付花钱越来越多的生活。晋升?感觉阻力重重,跳槽?收入差不了多少,做兼职?这个没有做过。不过现在想来,做点私活是增加收入最实际的出路。近尔立之年,我有点迷茫!”
回答1:
程序员做"私活"是最要不得的,因为这对提升自己的价值毫无帮助。仅从技术角度来说,程序的小模块的私活没什么价值,大项目里面结构复杂,没什么私活可接。
我在高中干过私活,给*局做,无它,赚点零花钱。大学里有人找我做银行卡的私活,坚决拒绝(这不是找死么)。工作没几年的时候,也有人找过我做些小东西,坚决拒绝,有那精力我不如泡在公司的实验室里面,做做优化,查查bug,为了一点钱去干私活,对自己的将来有没有任何帮助,绝不可取。
其实公司里面真的有不知道多少可以做的事情(当然你别指望有奖金)。
记得一个事情,当年给设备灌一次版本(就是把软件包下载到单板上)要15分钟。
等待很无聊,我很纳闷,问我们同事:背板带宽多少?2Mbps;那写Flash的速度多少?不知道,不过肯定超过2Mbps;背板通讯平时都干什么?基本是发呆,传传信号,下个版本。
那我们一个版本也才1.5MB,为啥要15分钟?这明显不对嘛。
于是我花了点时间查查(这些都是前辈的前辈写的代码了),原因很简单,因为每次下去的block都要等到应答才发送下一个block,所以大部分时间都是在等待。
当年做的软件很简单,64K,所以这样做没啥问题,现在面对上M的软件的确力不从心。于是自己改写了相关功能,改成异步的(还是有点麻烦的,因为只能看那些古老代码,没有手册,没有注释),15秒钟就可以完成版本下载。
要知道我们调试的时候没事就要下载一次,每次执行发现问题,修改代码就得重传,速度提高了60倍当然极大的节省了调试时间。我的头知道了以后点了个赞,当然我不是靠这一件事情,平时不停地做类似的事情,他老人家总会看到的。于是工资和职位一直飞涨,保持部门(80人)第一。
我举这个例子是想说,与其花时间干私活赚点一次性的收入,不如花精力在提高自己做的产品上。这样你既可以积累在公司的声誉,还能提高自己的技术水平,这些都将加成到你的未来上。
想当初我在公司,就是雷锋。给我的任务当然要做好,没任务时我也要琢磨怎么把产品弄得更好,绝对不会无事可做。会有报酬吗?当然不会有直接的报酬,但是会迅速得到技能的提升,同事的喜爱,头的赏识。后来,有一个美国公司招人,我一个同事就推荐了我,然后就去了硅谷…
回答2:
就现在经济大环境而言,很不乐观,程序员的日子也很不好过,无论是还在找工作的、还是已经入职多年、哪怕做到技术经理的,压力都异常巨大,似乎处处充满危机。我们不禁会问:程序员的出路在哪里?
但是,仔细分析一下,出路还是有的,甚至解决温饱、过上有房有车没贷款的生活也是很可能的。
首先,在如今这个浮躁的社会,大多数人的心态也是浮躁的,只要你能潜下心来,深入研究某个技术,有了一技之长,温饱问题肯定就可以先解决了。
程序员的出路之一:一技之长
新技术层出不穷,而内核的精髓的东西却变化不大,所以,作为程序员,我们要多掌握内核的东西,精髓的东西。
我们的学习积累毛病在于:贪多、贪全、而不够深入。
对于很多技术,我们都很有兴趣,对于刚兴起的技术,也紧紧跟随。但是,几乎都是蜻蜓点水、一知半解。
回头想想,我们似乎什么都会一点,什么类型的项目都可以做,B/S的、C/S的、数据库的、分布式的,等等。但是,却不敢说,在某某方面,我的水平已经超越了圈中同类型的80%的人。只是我能做的,大家都会做,而且,我也没有把握比别人做得更好。
必须要让自己有价值,而自己的价值在于不可替代性或是难以替代性。
如果,随便找个程序员就能把你replace掉,你的价值就很低廉了。如果在你负责的某个方面,只有20%的人超越你,那你的价值、你的重要性就凸显出来了,你与雇主的关系就从被动转向了主动,你就有了谈判的筹码。
在专业化高度分工的今天,一技之长并不是说需要你掌握某个很大的方面,而只需要你能掌握其中的某一个小的领域,并不断地深入下去。就这个小的领域来说,你花个3、5年的时间挤进前20%是非常可能的。
比如,有人专门研究SqlServer数据库优化、有人专攻TCP通信、有人深入研究IIS、有人深入钻研WCF,等等。
程序员的出路之二:打造自己的精品
当你在某个小领域钻研了3、5年后,你一定会有很多心得,积累了很多经验,其中有些经验是异常宝贵的,为什么了?
因为在钻研这个领域一段时间后,会陆续碰到很多问题,而那些80%的人,在碰到某个问题时就停止向前了,在这个小领域的水平就到此为止了,而你却不断地解决这些问题,不断地超越那80%的人。
而且,很可能的一个情况是,作为几年钻研的一个副产品,你积累了一套类库或框架,而基于该类库或框架来开发该领域的项目,不仅开发速度更快,效率更高,而且项目的质量更有保证。
然后,你可以把积累的这套类库/框架打造成一个精品,不断的打磨,直到某一天,可以让更多的人来用它。
当你在某一领域有了丰富的经验,或者有了自己的精品类库/框架之后,你便可以面向更广阔的市场。
程序员的出路之三:更广阔的市场
在公司做个小白领,你的生死荣禄几乎就完全掌握在你的上司手中,你不得不关注他,被他的情绪所左右,很可能因为他的一句批评,你就整夜难眠。你觉得自己做得很好,可是他不认可。但是现在,你不需要再过分的关注他,你可以将眼光转向更广阔的市场。
互联网时代的一个好处就是,任何人都可以以非常低廉的成本来向大众市场展示自己或自己的产品,评判你价值的不再(仅仅)是你上司,而是整个市场,相比于你的上司,市场的评判会更客观、更公正。
你可以把自己的经验能力说明放到自己的博客上、写专业的技术文章来分享知识、顺便推广自己,或者把积累的框架放到网上去销售,或者去项目交易平台接那些与你精通的领域对口的项目,由于在这个领域你超越了80%的人,所以,成功接到项目的可能性是非常之大的。有了这些基础,以后就算是靠技术创业也是有可能的。
如果做到了这三点,那一个程序员就不愁出路了。