程序员可能是现在被黑得最多的一个职业。不信?你看他们都自嘲为“码农”。他们整天与代码作伴,永远有改不完的BUG和报障,最讨厌写注释和写文档,同时又最讨厌别人不写注释也不写文档……网上的玩笑也好,段子也罢,程序员真实的工作情况,是什么样子的?
程序员是蓝领还是白领?
程序员往往是一个IT公司工资最高的岗位,相比编辑、市场和运营,程序员的入门起薪的确较高。一边是某巨头互联网企业以20万年薪吸引技术新人,羡煞旁人;一边又是“码农”自嘲的声音。那么程序员到底是蓝领还是白领?
我们先来看一张图:
我们可以看到,使用不同编程语言的开发者,收入也不尽相同。
一览薪闻追根溯源,所谓“Software blue-collar”(软件蓝领)一词实际上是从印度传来,指那些至少掌握一门开发语言或开发工具,所从事任务与软件工程中的需求分析、系统分析、概要设计无关的程序员。在印度的软件产业中,这些大量的低成本程序员是由高中生毕业后进行简单培训就可以担当的。
而传到中国,这个词就被最有智慧的网民加载了新的含义,从文绉绉的“软件蓝领”,变成了更具屌丝文化气息的“IT民工”。这不是对开发者的不尊重,而是大家在高强度的工作之余,一种阿Q似的自嘲调节。从整个社会产业链和人力资源角度来看,无论是在国内还是在国外,从事编程开发的人员都是白领,而非蓝领。
其实,一览薪闻的小编是很崇拜程序员的,因为他们往往是善于思考的人群,接触并学习到这个世界上最先进的技术,他们是这个信息化浪潮的弄潮儿。
对程序员而言,学历很重要吗?
好吧,网上关于程序员的段子不是一般的多:只要能写出代码,运行成功,小学毕业都没关系。
玩笑话归玩笑话,但段子背后折射出国内目前程序员的市场缺口还是很大,并且优秀的程序员有着更强的稀缺性和不可替代性。有经验的开发者也能让行业薪资水涨船高。
曹波曾在一览薪闻讲述过他的故事:他现居北京,目前从事cocos2d-x游戏开发,目前工资5000元,有一年的工作经验。而他是去年6月才初中毕业,“我小时候上学比较晚,初二的时候觉得学校教的东西没什么意思,想学习一些有意思的东西,当时家里也买电脑了,然后就接触到了编程。”曹波当时学的是C语言,之后学习Java,初三下学期的在网上看到iOS手机游戏开发,就特别感兴趣,然后就转攻ios开发。“那时我开始天天折腾黑苹果,到最后也没有装好,毕业后让父母买了macbook air,天天在家学习cocos2d-iphone,年底开发出了一个小游戏,我个人觉得还挺好玩的,上传到App store 卖了20多个,过完年,也就是今年,我来北京找到了现在这份工作。”
曹波说他没有继续读书,因为他更看重实际的开发工作经验。的确,程序员更需要项目历练。那么对程序员而言,学历是否真的那么重要?是否会对未来的发展有所影响?
这幅数据图表明,学历在一定程度会限制开发者的入门薪资。
说学历不重要有点太理想化,学历不会因为你现在有个工作就不重要了。
这个社会很多时候是先考硬指标筛选的,这符合经济效益。例外的情况就是你得百倍千倍于别人去强化自己,做到真牛,而且不能只依赖公司给予你的环境和条件,要把自己看做完全超越于你的职位要求10倍的期待去推动自己前进。只有这样,你的光芒才能足够耀眼,以至于所有其他世俗的评价标准不适用于你。
至于教育质量和时间成本是另外的考量指标。如果把眼光投放到一生的职业道路上,而不是眼前的一点机会上,相信在任何环境下你都能找到适合自己的成长方式。
虽然现在大学授课广受诟病,很多人反映在学校学不到东西,希望早点接手项目,积累实际工作经验。其实这些都很重要,但是最重要的是自由的选择。而自由的选择的前提是对信息的充分认识,不见得说作为程序员什么都要会,但是至少知道学什么需要多久,学了对你有什么影响,没学对你有什么影响。或者说你要去做啥需要学啥之类的问题。
简而言之,作为一名程序员,学历不是全部,今后的路还很长,因为接触的是最新的科学技术,所以要比其他人在工作之外,付出更多努力。
程序员老矣,尚能编否?未来出路何在?
程序员这个职业究竟可以干多少年?在国内,很多人都说只能干到40岁,然后就需要转型。学习读书阶段也从x语言入门→x语言应用实践→x语言高阶编程→x语言的艺术→编程之禅→颈椎病康复指南。
这确实是一个很现实的问题,很多从业者也在疑问,程序员将来出路何在?
著名程序员陈皓曾说“对于大多数人来说,如果你没有编程到30岁,你还不能成为一个“合格”的程序员。所以,并不是编程编到30岁就玩完了,而是编程到30岁才刚刚入门。”
关于程序员的职业成长:年纪的正态分布高点在25岁左右,但中点在29岁左右。编程就像登山一样,越往上爬人越少,虽然在35岁以后还有想法,对编程还有热情的人不多了,基本上都是转管理经理了。但只有技术才是硬通货。而且,越是这个年纪还在玩编程玩技术的人,其实其经验和能力都是比较强的,都是中坚力量。
最后,我们用这段代码,送给正在工作的程序员们:
$life = new Life();
while ( $life->state == "alive" )
{
echo "I Have A New Plan!";
$plan = new Plan();
while ( !$plan->succeed )
{
$plan->struggle();
if ($plan->state == "fail")
{
echo "Come On!";
}
}
echo "What A Beautiful Day!";
}
echo "No Regrets.";
?>
2014-08-01 18:16:23 JAVAer
while ( !$plan->succeed )
{
$plan->struggle();
if ($plan->state == "fail")
{
echo "Come On!";
}
}
然后这个循环很有问题,如果一直不成功,那就是死循环,这对那些倒霉的人来说是一场噩梦!
华仔当初有首歌唱的好:“付出就有收获,那是自以为!”
当然这时候也许$life->state == "dead",问题是我们仍然无法退出循环!
程序员已死请放过他吧。
你需要在 while ( !$plan->succeed )循环里判断下$life->state,如果人已死,请break!退出循环。让他安息吧!
另,换成java代码写吧,php真心不时候写面向对象的语法!