Part1 误区:软件开发职业是青春饭

Part2 程序员如何规避吃青春饭?

现今,科技领域技术更新迅速,作为该领域幕后勤恳劳作的程序员,要想在其中永远保持领先,跟得上时代,规避吃青春饭的尴尬,就需要时刻面向未来做好准备。但面对各种技术,各种开发语言,程序员该如何做?我们先来看看程序员的出路在哪里?

程序员的出路在哪里?

一位有着10年软件行业从业经验,专注于微软.Net技术领域及项目管理的人员根据自己的现状总结出了三条出路,希望对你们有用。

出路一:向IT培训师转型


分析:IT企业在招聘新人后,一般都须经过培训才能上岗,这个培训有时是在岗位上进行的,由富有实践经验的“老人”负责。年轻人想要进入IT行业,必须接受这样的专业培训。如今IT培训市场蛋糕相当大,利润空间可观,行业发展前景看好。无论是在IT公司内部转型担任培训工作,还是到IT培训机构担任教师,都有很大的发展空间。这样的工作不会有太大压力,且比较稳定,对年龄也没什么要求,而且也没有脱离本行。

优势:在这个行业工作多年,拥有丰富编程、项目经验,曾参与过许多成功案例。而多年积攒的行业人脉关系,还可以帮助我们发展企业客户,顺便担任市场拓展工作。

挑战:缺少培训工作经验。如果要向培训师转型,可能需要接受一些专业训练,提高担任培训师的能力。

出路二:向IT营销转型

IT与其它行业不同,由于技术性较强,营销人员一般须有较强的技术背景,且最好有着丰富经验。互联网公司、电子商务公司、软件公司目前都需要有技术背景的营销人员;另外,电子商务的再度火爆,使得传统企业开始重视电子商务营销,也需要有技术背景的营销人员。这类工作薪水不低,加上提成应该可以拿到高于程序员的薪水,同时也比较稳定。

深厚的技术背景,广泛涉猎了各种编程软件和工具,对IT行业也有相对深入的了解,这些都是比较大的优势。

挑战:程序员一般都很少与人打交道,口才也不太好,而营销工作恰恰需要跟人打交道,这可能是最大的挑战,要求彻底改变工作方式,加强沟通能力与人际交往能力;此外,营销工作会面临销售指标的压力,这些问题都是转型前必须深入考虑的。

出路三:向项目管理努力

分析:如果说前面两条出路转型的成分多,那么项目管理可以说是更为便捷的发展之路。目前,软件项目经理是人才市场上受热捧的人才,有丰富经验、外语好的软件项目经理是抢手的香饽饽,供不应求,薪水自然也是水涨船高。最重要的是,一个优秀的项目经理可以在这个岗位上长久工作下去,并且有向高层进一步提升的可能。

优势:对有经验、有技术、有人脉、有能力、参与过多个软件开发、有一定经验的人,项目管理无疑是发展的一个很好的方向。

挑战:可能有些程序员在项目团队里一直是参与工作,很少担任过项目带头人。而很多公司在招聘项目经理时,都需要有带领团队进行项目开发的经验,这是一个劣势。最好参加一些项目管理方面的培训课程,自学相关的知识,增长自己在流程管理、沟通协调等方面的能力,以便积累资本,逐步向项目管理岗位迈进。

程序员如何为未来做准备?

面对日新月异的软件开发技术,程序员们如何将这碗饭吃好,吃长久,为未来做好准备呢?

01.挑选一个广阔而稳固的基础方向

确保软件开发者前途光明的最可靠办法是避免彻底偏向,应该打下一个广阔而稳固的职业基础。许多技术是时尚的,但总有一些技术更能经受时间磨砺,像C或者C++语言已经出现很久,仍在大量使用。JavaScript是另一个具备稳固基础的伟大技术,它可以用于任何平台的编程,包括移动端、网页端,甚至嵌入式系统。你尤其需要提升通用技术而不是特殊技术。拥有通用技巧是软件开发过程中编写良好代码的核心灵魂。

02.留意最新趋势

做不到准确预测未来,但可以通过一些指标看出潮流趋势,关注趋势和热议内容一直是个好主意。在Hacker News和Pro Git等网站经常可以发现新技术的苗头。开发者大会和技术沙龙也是发现新趋势不错的渠道。

03.持续学习

保证不落伍最稳固的方法是学习新技术并不断扩展知识面、提升已有技术。作为软件开发者应该习惯于终身学习,制定一个计划让每天或每周有一个固定的学习时间。学会如何学习,以提高学习效率并使学习变成更有趣的经历。自学是在永远变化的技术世界中存活的重要武器。

记住,世界上没有东西是凭空诞生的。新技术和新编程语言会出现,但它们都是现有某种技术或编程语言的改作或组合。你知道得越多,就越能关联新事物并使新学习部分大量减少。

04.愿意改变和调整

固守已知而忽略发展确实容易,但谁都不能阻止未来,我们最好放弃抗拒趋势发展,学会改变和调整。

如果始终迷信一种技术,最后伤害将多于帮助,我逐渐认识到在大风中应弯下腰。

如何做一名优秀的程序员

作为程序员,价值的实现不是通过你知道些什么来衡量,而是通过你做出的设计来衡量。虽然两者之间存在联系,但并不相同。那么,如何才能成为优秀的程序员?

01.发现问题要及时解决

程序员在编写代码时,遇到真正的难题很少,也很少有专门做技术的公司。要想成为优秀的程序员,第一步就是要及时解决遇到的难题。遇到有问题的代码而不去解决的程序员不是好程序员。无论你是Ruby、Node.js、Angular还是其他开发人员,遇到问题一定要解决。

02.从代码中学习

我发现很多程序员的编码水平都达到了一个稳定值,因为他们还没有找到可以提高他们编码水平的方法,这是一件很糟糕的事。怎样才能提高自己的编码水平?最简单的方法就是从好的、不好的代码中学习。通过长期积累,你应该可以分辨出哪些代码值得你学习。

03.态度端正

一个好的程序要确保自己写出的代码能够正常运行,在写代码过程中,态度一定要端正。如果不端正的话,会影响到你写代码的速度和质量,同时也会造成Bug,说不定还会惹怒你的领导。

04.适量测试

测试是一种有力的工具,就像战士穿铠甲一样,穿得越多,越不容易失败;越不害怕失败,你做得就会越多,进步的空间也比较大。但到底什么才是适量的测试?对此没有明确的回答,依情况来定。测试是你需要学习的另一个新的专业知识,要多花时间思考哪些东西需要做测试,怎样才能做好测试。

05.每天至少花四个小时来认真做本分工作

大多数程序员喜欢讨论优化自己、关注黑客等,其实你根本不需要做这些来提高工作效率,最根本的是要每天坚持做自己的本分工作。每天至少花4个小时的时间认真做好自己的本职工作,这并不是一件容易的事情,如果长期坚持下去的话,势必会成为团队最优秀的成员之一。

记录有价值的代码并与团队分享:培养记录有价值代码的习惯,记录下来之后,还应该花时间与你的团队成员分享,互相学习。在编程过程中,遇到的最糟糕的事就是修复Bug。分享可以有效降低出现这种事情的概率。

06.使团队更优秀

你的出现使团队变得更优秀还是更糟糕?你编写代码、编制文档和你的技术能力帮助到队友了吗?你是否经常鼓励队友,使他们为成为优秀的程序员努力?你应该想尽办法使团队变得更优秀,比如在工作上帮助他们。要记住,只有你一个人“聪明”并不聪明。

其实,作为一个优秀的程序员,不在于你有多聪明或者有多少理论知识,也和你从哪所大学毕业无关。你是一个怎样的程序员最终只由你所做出来的工作以及身边人对你的评价决定。所以,要想成为一名优秀的程序员,继续加油吧!