程序员的职业生涯是一段充满起伏的有趣经历。考虑到其陡峭的学习曲线,完全可以预见你将经历挫折、启蒙、骄傲自大这几个时期,以及穿插其间的各种心路历程。在这篇文章中让我们轻松一下,通过一系列搞笑Gif图来回顾其中的每一个阶段 。

阶段1-菜鸟

初入职场的日子,我们都充满激情。在此期间,你毫无头绪,根本不知道该做什么。就像鱼儿离开了水,每一行代码对你来说都是个迷。Doctype?哈?见鬼,这个

到底是干什么用的?第一个阶段令人生畏、让人提心吊胆,却又激动人心。到底有多少种该死的语言要学啊?

阶段2-起步

虽然花了些功夫,你最终还是学到了足够的知识,迈出了你进入编程世界的第一步。尽管第一阶段完全是“我该怎样/该从哪里开始?”的懵懂状态,到了第二阶段你已开始慢慢地建立自己的技能体系。当然,CSS定义样式的语法对你来说依然陌生,但至少你能够在刚买的代码编辑器中改动一下代码,并在浏览器中看看改动的效果。那真是一种美妙的感觉!

阶段3-极度沮丧

想象一下你在洞穴里迷路,打着手电照亮每一个隧道以寻找出路。每走一步,你都希望看到一丝光亮。不幸的是,我们这一行的学习曲线非常陡峭。我只能很抱歉地说,那一丝光亮不会持续很长时间。你必须做好在这个阶段花费数百小时的准备。当你绝望地试图搞清楚那些让你抓狂的东西是什么意思的时候,你需要不断,不断,不断地阅读技术书籍。

如果你觉得太过沮丧而难以承受,请平复一下心情,想想我们每一个人都曾在职业生涯的这个阶段或那个阶段有过和你一样的感受。你不是一个人在战斗。坚持下去,不久之后你就将到达“顿悟”阶段。

阶段4-顿悟时刻

“顿悟”那一刻是世界上最棒的感觉之一:一瞬间,突然,你“搞定了”“哦哦哦,现在我终于明白了”。拿我自己来说,我发现编程中的重大突破通常出现在夜里,此时其他人正在睡梦之中。当我读了八遍代码之后,原本捉摸不透的地方,现在至少有点儿清楚了。

这个阶段,你学的所有技术和语言都开始派上用场了。

阶段5-脆弱的代码

如同之前的阶段,“脆弱”阶段也相当漫长。在这一阶段,你成功地构建了应用程序并实现了预想的结果,但是底层代码无法应对客户需求的突然改变。此时,你编写的方法长达几十行,而测试的观念尚未在你脑海中形成。

但至少你在做一些实际的东西了。就目前来说,请将你在GitHub上的pull请求局限于书写文档和改正拼写错误。不要低估了这些工作能给他人带来的帮助。

阶段6-模仿

模仿阶段很重要。模仿你心目中的大神编写的代码——甚至是一行行地复制他们的代码,除此之外没有什么更好的办法来学习恰当的编程技巧了。别灰心,每种带有艺术性的职业生涯都少不了模仿阶段。幸运的是,GitHub让这种无声的崇拜比以往更容易了。当然,复制代码只能帮到你这么多,但它开了个好头。模仿那些能够启发你的人,最终,你将开始形成自己的风格。

阶段7-自以为是

此时,你终于开始陷入这样一种境地:你当然还有巨大的改进空间,但自信心也在快速膨胀-或许太快了!人们常说,在头几年里,你还不足以认清自己有多无知!

在这个阶段,避免冲动让自己变得太骄傲自大。骄傲自大对任何人都没好处,只会让未来更出色的你在回顾过去时连连摇头。当你想要在GitHub、Reddit或者StackOverflow中留下嘲讽性的评论“哥们,学学怎么编程吧”的时候,千万别这么做。不久以前你自己也曾是个十足的菜鸟。请传递正能量,而不是打击别人。我们在同一条战线上,只是处于不同的阶段。

阶段8-学习Vim

如果你曾观察过与你共事的开发者,惊讶于他在代码编辑器中操作的速度,那么他有可能是在用Vim。尽管Vim的学习曲线十分陡峭,但一旦你精通了它,你的工作流程在旁观者看来也将如魔术一般神奇。

这是你开始掌控你的编程技术和工作流程的阶段,合适的工具跟技术一样重要。

阶段9-当代码成为艺术

尽管要花上数千小时,但终有一天,你看着自己的代码,阅读起来就像操作命令行那样轻松,你会意识到它简直就跟艺术品一样。你的代码有版本控制、良好的抽象、完美的可测试性、可伸缩性,而且易于阅读。在你职业生涯的某个阶段,你可能曾陶醉于自己能够写出神秘、令人困惑但能正常运行的代码。但是,利用编程语言中每一个可能的技巧和隐藏特性,或者只是为了炫耀自己的聪明才智而把复杂的逻辑简化为一行代码,这些都不是成熟开发者的标志。相反,它展现的是一个自以为是的开发者,完全不为将来的代码维护者着想。

当代码的可读性和它实现的功能对你来说同样重要时,代码就变成了艺术。到了这个阶段,你就是在为人类而不是为机器编写代码。

阶段10—经验丰富

当编程成为一种本能,你就到达了职业生涯的下一个阶段。此时你不再思考语言和框架层面的东西,而仅仅是发现问题并从你的开发工具箱中选择正确的工具来提供解决方案。一个经验丰富的开发者懂得西部牛仔式的单枪匹马蛮干为何很少是正确的道路。与项目组所有成员讨论每一个新特性、准备白板、编写故事、生成测试,这些都是在开始写第一行实际代码前完成的工作。

至此,你已成为一个成熟、思虑周全、其他人都愿意与你共事的开发者。恭喜!

阶段11——摇滚巨星

很少有人能达到这个阶段。摇滚巨星阶段是职业生涯的巅峰。除了日常工作,你经常在研讨会上发言,成为无数开源项目背后的领军人物;你要抽时间通过邮件列表参与到web的未来发展并为之贡献力量,同时还要在IRC上帮助新人。你是那种以编写编译器和解析器为乐的人。

别人称呼你为摇滚巨星或是忍者,但你厌恶这类标签。你比其他任何人都清楚——学无止境!

程序员职业生涯11个阶段相关推荐

  1. 非计算机类专业毕业生五年程序员职业生涯的回顾和思考

    0.前言 看到过几篇程序员的职业生涯过程,我也来当一回写手吧,希望对和我一样曾经磕磕碰碰过的人有帮助.谨以此文纪念大学毕业五周年. (< 如何优化程序员的内部培训>,这篇东西for六周年) ...

  2. Erlang User Conference 2010见闻(兼谈程序员职业生涯)

    Parallel LabsThoughts on computer systems and my life.You are here: Home / 2010 / 十一月 / 29 / Erlang ...

  3. java程序员技术规划_Java程序员职业生涯规划

    Java程序员职业生涯规划 发布时间:2018-09-28 14:10, 浏览次数:429 , 标签: Java <>一.规划 工作3年了,感觉自己的技术现在到了一个瓶颈,在做一些重复性的 ...

  4. 为你揭示最危害程序员职业生涯的三大观念

    蓦然回首自己做软件开发这个行业已经十年了,这十年中我获得了很多,技术能力.培训.出国.大公司的经历,还有很多很好的朋友.但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的 ...

  5. 程序员职业生涯全攻略,附神级跳槽攻略图

    一.帮别人挣钱(打工) 不管你是刚入职的小兵,还是管人的经理,甚至是唬人的总监,都属于这一阶段. 通常程序员在这一阶段的职业发展分两条线,专家(技术)线和管理线.专家线主要跟机器打交道,搞搞性能调优, ...

  6. 面试归来——梳理社招面试以及浅述对程序员职业生涯的看法

    原谅我是一个后知后觉的人,已经在新的岗位工作了两个月,才写这篇文章. 本文会先讲述博主一个月的面试经历,梳理一下技术面试,浅述关于程序员职业生涯的一些看法. 从创业到再就业 大概4个月以前,终止创业已 ...

  7. 黑马程序员golang_成为Go程序员的7个阶段

    黑马程序员golang 在工作的一天,我们在工作聊天室中讨论Go编程语言. 有一次,我在同事的幻灯片上发表了评论,说了一些类似的话: "我认为这就像成为Go程序员的七个阶段中的第三阶段.&q ...

  8. 程序员职业生涯真的很短吗?

    点击蓝字 关注我们 程序员职业生涯真的很短吗?是吃青春饭吗?35+ 岁真的会被优化吗?--在某乎上一搜"程序员",全是这类回答. 对于程序员,年龄真的是最大的威胁吗?其实并不是! ...

  9. 程序员职业生涯中的〇一三五七

    赖勇浩(http://laiyonghao.com ) 今天早上起来,在 twitter 上扯淡了两句(我的账号:@laiyonghao)程序员职业生涯中工作一年.三年.五年之后的一些常见的想法和做法 ...

最新文章

  1. JavaScript 定义类时如何将方法提取出来
  2. magento 多语言 ,后台手工更改方法
  3. 罗杰·科恩伯格:基础科学——人类进步的希望
  4. 解决 C/C++ 程序执行后控制台一闪而过的方法
  5. 儿童节,今天我们不做大人
  6. c语言编程TLC2543AD采集,AD转换器TLC2543编程
  7. linux命令行ps1变量_Ubuntu如何修改命令提示符PS1
  8. HDU4532(组合DP)
  9. elastic 修改map_Amazon Elastic Map Reduce使用Apache Mahout计算建议
  10. 软考信息安全工程师学习笔记三(1.3 信息安全管理基础)
  11. MATLAB中如何删除坐标上已画出的内容
  12. 14.初步解析document的核心元数据以及图解剖析index创建反例
  13. HALCON:lines_gauss用法解析
  14. 深度学习中所需的线性代数知识
  15. 头条限流是什么原因_教训:千万不要用百家号去绑定头条号,后果你想象不到...
  16. VB6.0《第二行代码》4-游戏安全,逆向工程-用CE找多级指针HP的基址和偏移量并且用VB超级模块读取
  17. 自己电脑配置Oracle WebLogic Server
  18. 解决Win7安装C++ Redistributable2015失败
  19. linux kvm usb设备,KVM使用USB设备的方法
  20. 果园节水灌溉能否实现远程智能控制

热门文章

  1. gpu服务器性能测试用例,WebGPU性能测试分析
  2. Smmu硬件寄存器—V2
  3. 开源 | 携程机票BDD UI Testing框架 - Flybirds
  4. ajax 提交间隔,jQuery+Ajax实现限制查询间隔的方法
  5. php notice 影响,PHP notice/warning 对性能的影响
  6. 查找技术:有序表的对分查找(折半查找)类
  7. Linux永久删除文件恢复
  8. c语言全部题目及答案,C语言全部题目及答案
  9. oracle比较两个时间
  10. 【T+】畅捷通T+往来单位档案中默认票据类型设置为“必录”