前一阵子,有一位前辈总结了程序员成长四个阶段,引发了众多网友的讨论:

程序员成长历程的四个阶段:

阶段一:不知道自己不知道(Unconscious incompetence)

阶段二:知道自己不知道(Conscious incompetence)

阶段三:知道自己知道(Conscious competence)

阶段四:不知道自己知道(Unconscious competence)

程序员成功的八个条件(如何看待网上很火的)(1)

接着,就有网友表示,真正的四阶段其实应该是:

阶段一:用200块的薄膜键盘

阶段二:用900块的机械键盘

阶段三:用2k块的电容键盘

阶段四:有女朋友

程序员成功的八个条件(如何看待网上很火的)(2)

程序员的女朋友

更有网友说,四个阶段明明是:

阶段一:《Head First Java》

阶段二:《Effective Java》

阶段三:《Thinking in Java》

阶段四:《如何治疗颈椎病》

那么,程序员的职业发展方向到底有那些呢?师姐分类给大家讲解一下~

架构师

听起来很高大上的一个职位,但是需要强悍的技术实力和深厚的技术积累。架构师的成长需要历练,需要技术的广度和适当的深度。设计优雅、灵活、可扩展的架构是架构师的主要工作。

不能只追求最新、最热的技术,还需要考虑现有团队的能力,技术的成熟度。

人员需求:★

难度指数:★★★★★

web后端程序员

后端程序员主要实现业务逻辑,提供接口给前端使用。

Java 当然是用的最多的,但是也有别的相对小众的像 Python、ruby on rails 等,还有就是PHP,简单粗暴,中小网站常用,无论哪一个,学习起来都不是很难。

这一块的人员需求是比较大的。

人员需求:★★★★★

难度指数:★★★

web前端程序员

主要是 Javascript、CSS、JQuery 等,最近几年大家重视浏览器端用户体验,浏览器端做得越来越炫,所以也很火。

人员需求:★★★★★

难度指数:★★★

手机端程序员

主要是 Android、iOS,由于移动互联网的发展,现在很火爆,需求量很大,相对而言 iOS的门槛高一些,程序员也少一点,不过工资高一点。

人员需求:★★★★

难度指数:★★★★

系统编程程序员

有些需求很简单,有些需求很复杂,需要支持海量的用户,海量的并发,像淘宝的“双十一”, 像微信的春节抢红包。

需要做云计算,虚拟化,分布式处理,支持系统水平扩展。对于海量的数据,还需要做大数据分析,从中提取有价值的信息,例如 Hadoop。由于需要对操作系统,数据库,服务器端系统做定制开发,甚至自己做一套,小公司一般没有这样的技术能力,主要是BAT这样的公司在做。人员需求不是很大,对程序员来讲,需要在一个领域钻研得非常深,技术稳定度比较好。

人员需求:★★

难度指数:★★★★★

安全

互联网时代,你的信息一不留神就有可能被偷走,安全变得越来越重要。所以单单实现了功能,满足了性能还不够,很多公司,尤其是BAT对安全非常重视。当然这个方向也需要对技术钻研得很深才可以。

人员需求:★★

难度指数:★★★★★

测试

这个对技术要求不太高,但也需要测试相关的知识,能够设计测试用例,准备测试数据,执行测试。

现在敏捷开发流行,对测试也要求懂开发知识,至少能够开发一些自动化的脚本。很多女生后来转到了测试岗位,我想主要是因为女生比较细心。我在IBM见过一个非常优秀的测试人员:她不仅仅能出色完成上面指派的工作,还可以参与设计开发的讨论,经常能从测试角度提出开发人员都没有想到的问题,极大地帮助提升了软件的质量。

数据库管理员

几乎所有项目都需要数据库的支持,对于大型、超大型项目,会有一个叫做DBA的职位。他对数据库知识极为精通,平时对数据库进行管理,开发时能帮助开发团队设计数据库,并且找出性能瓶颈,进行性能调优。

你怎么看待「程序员成长历程的四个阶段」?下方留言讨论一下吧

如果对编程感兴趣,想了解更多的编程知识,解决编程问题,我们有免费试听课程,欢迎和毛豆(maodoushangshu)一起讨论。

,