程序员职业生涯的11个阶段程序人生

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


阶段1-菜鸟

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

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

不过,你最大的优势或许就是你不知道水有多深(译者注:原文”you have no idea how deep the rabbit hole goes”,典故出自《爱丽丝梦游仙境》,爱丽丝曾掉进了一个深不见底的兔子洞里)。学习HTML只是向前迈出的一小步。


阶段2-起步

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


阶段3-极度沮丧

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

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

云贴吧 http://tieba.yunxunmi.com/ 


阶段4-顿悟时刻

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

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


阶段5-脆弱的代码

如同之前的阶段,“脆弱”阶段也相当漫长。在这一阶段,你成功地构建了应用程序并实现了预想的结果,但是底层代码无法应对客户需求的突然改变(原文:At this point, you are successfully building applications and achieving your desired end result, but the underlying code is one client feature-request away from popping。)。此时,你编写的方法长达几十行,而测试的观念尚未在你脑海中形成。

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


阶段6-模仿

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


阶段7-自以为是

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

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

云贴吧 http://tieba.yunxunmi.com/ 

阶段8-学习Vim

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

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


阶段9-当代码成为艺术

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

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


阶段10—经验丰富

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

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

云贴吧 http://tieba.yunxunmi.com/ 

阶段11——摇滚巨星

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

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


来自:http://tieba.yunxunmi.com/tieba-%25E7%25A8%258B%25E5%25BA%258F%25E4%25BA%25BA%25E7%2594%259F-kz-b96e14782cf92c523b0677adb6d0957d.html


云贴吧 http://tieba.yunxunmi.com/ 
云搜 http://so.yunxunmi.com/ 让搜索更简单 采用html5完全支持手机和PC

转载于:https://www.cnblogs.com/bdccloudy/p/7665280.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472041.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity python_Unity引擎内嵌python

Unity脚本using System.Collections;using System;using System.Collections.Generic;using UnityEngine;using System.Diagnostics; //需要添加这个名词空间,调用DataReceivedEventArgpublic class LoadPython : MonoBehaviour{string sArguments "UnityLoad…

LeetCode 1922. 统计好数字的数目(快速幂)

文章目录1. 题目2. 解题1. 题目 我们称一个数字字符串是 好数字 当它满足(下标从 0 开始)偶数 下标处的数字为 偶数 且 奇数 下标处的数字为 质数 (2,3,5 或 7)。 比方说,“2582” 是好数字&a…

《人性的弱点》

卡耐基-《人性的弱点》,讲做人要平和、真诚,沟通的成功在于尽量避免争辩,最常见的情况是在争辩中取得了胜利却失去了成功的机会。这本书适合长时间的品味,以至自觉地养成良好的习惯以及卓越的品格。没有什么励志书是可以让你一下子…

crc java_java实现CRC16 MODBUS校验算法

/*** 查表法计算CRC16校验**paramdata 需要计算的字节数组*/public static String getCRC3(byte[] data) {byte[] crc16_h {(byte) 0x00, (byte) 0xC1, (byte) 0x81, (byte) 0x40, (byte) 0x01, (byte) 0xC0, (byte) 0x80, (byte) 0x41, (byte) 0x01, (byte) 0xC0, (byte) 0x80…

python图片隐写_CTF 图像隐写Python脚本处理

CTF中经常会遇到很多图片的隐写题目需要使用脚本来解题,最常用到的就是使用python中的PIL库,所以如果要更好的解出图片隐写相关处理的题目,掌握好这个库的使用是必要的。本期就来给大家介绍下这个库的基本使用和几道图片题目的解题思路。0x00…

LeetCode 1933. 判断字符串是否可分解为值均等的子串

文章目录1. 题目2. 解题1. 题目 一个字符串的所有字符都是一样的,被称作等值字符串。 举例,"1111" 和 "33" 就是等值字符串。 相比之下,"123"就不是等值字符串。 规则:给出一个数字字符串s&…

java 资源锁定_如何在Java中创建时正确锁定资源

也许ConcurrentHashMap可以帮到你.顾名思义,它支持并发修改.要只创建一个新元素,您可以执行以下操作&#xff1a;private Map map new ConcurrentHashMap<>();private final Object lock new Object();public Thing getById(String id) {Thing t map.get(id);if (t n…

pythonb超分辨成像_深度原理与框架-图像超分辨重构-tensorlayer

图像超分辨重构的原理&#xff0c;输入一张像素点少&#xff0c;像素较低的图像&#xff0c; 输出一张像素点多&#xff0c;像素较高的图像而在作者的文章中&#xff0c;作者使用downsample_up, 使用imresize(img, []) 将图像的像素从原理的384&#xff0c;384降低到96&#xf…

LeetCode 1921. 消灭怪物的最大数量(排序)

文章目录1. 题目2. 解题1. 题目 你正在玩一款电子游戏&#xff0c;在游戏中你需要保护城市免受怪物侵袭。 给你一个 下标从 0 开始 且长度为 n 的整数数组 dist &#xff0c;其中 dist[i] 是第 i 个怪物与城市的 初始距离&#xff08;单位&#xff1a;米&#xff09;。 怪物以…

软件测试课程学习总结

一、知识结构 介绍&#xff1a; 1.Definition of Software testing: Software testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results Software Testing is an empirical&#…

java listutils_Java的list自定义工具类ListUtils

/*** 将list中map的key为ID的值作为KEY在套一层*/public static Map> keyToID(List> datalist) {Map> res new HashMap>();for (Map map : datalist) {String id map.get("ID");res.put(id, map);}return res;}/*** 移除List中所有Map的某个元素** par…

vue 高德地图 不同区域显示不同颜色_高德百度哪家强?苹果Carplay第三方分屏功能评测...

几天前&#xff0c;苹果公司正式更新了iOS13.4版本。一个小版本系统更新&#xff0c;却让车主群热闹了起来。在这个版本中&#xff0c;苹果正式开放了Carplay分屏显示模式下对第三方地图的支持。车主们的热情&#xff0c;化为高德地图和百度地图微博下网友的催更。不过&#xf…

python 全局变量、局部变量

from 《流畅的python》 def f1(a):print(a)print(b) f1(3)# NameError: name b is not defineddef f1(a):print(a)print(b)b 5 # 全局变量 f1(3) # 输出正常python编译时&#xff0c;判断 b 是局部变量&#xff0c;因为在函数中给他赋值了 当打印 b 时&#xff0c;发现 b 没…

BZOJ 1452 [JSOI2009] Count

这道题好像有点简单的样子... absi找题目好厉害啊...确实是一道比较裸的2dBIT啊. 水掉吧. 附:2dBIT怎么做: 2dBIT就是BIT套BIT啦. 所以修改loop(xlowbit(x)){loop(ylowbit(y)){}} 查询loop(x-lowbit(x)){loop(y-lowbit(y)){}} 然后查询区间当然是用容斥... 假设查询(x11,y11)(x…

同花顺如何切换k线_30分钟线可分析出庄家的意图:教你如何用30分钟K线选股做超短线...

30分钟做超短线的好处1、兼具超短线和短线的优点&#xff0c;是联系超短周期和短周期的有利武器。2、30分钟线把一天分成8个部分&#xff0c;正好是一个神奇数字&#xff0c;自然界中很多神奇的规律不可不信&#xff01;3、对于庄家控盘的股票&#xff0c;30分钟线可分析出庄家…

LeetCode 1925. 统计平方和三元组的数目

文章目录1. 题目2. 解题1. 题目 一个 平方和三元组 (a,b,c) 指的是满足 a2b2c2a^2 b^2 c^2a2b2c2 的 整数 三元组 a&#xff0c;b 和 c 。 给你一个整数 n &#xff0c;请你返回满足 1 < a, b, c < n 的 平方和三元组 的数目。 示例 1&#xff1a; 输入&#xff1a;…

JAVA软件工程师应该具备的技能有哪些?

前言&#xff1a;有朋友问我&#xff1a;学历和能力哪个重要&#xff1f;我个人觉得能力大于学历&#xff0c;没有能力哪来的学历&#xff0c;学历只是证明能力的一方面。为此在能力方面畅谈java软件工程师必备的能力。作为一名合格的java工程师&#xff0c;不仅需要学历&#…

石头剪刀布程序流程图_机器学习终章:剪刀石头布猜拳机器人

8.1. 简介TensorFlow对于我们普通人来说一直是高冷的存在&#xff0c;都是大神们的狂欢。喵家最近将TensorFlow移植到喵家编程软件Kittenblock中&#xff0c;希望能让人工智能&#xff0c;机器学习尽快落地。能让普通用户也能用上这个好用的机器学习框架&#xff0c;解决生活中…

java 工厂模式的写法_java工厂模式三种详解

工厂方法模式(Factory Method)工厂方法模式分为三种&#xff1a;1、普通工厂模式&#xff0c;就是建立一个工厂类&#xff0c;对实现了同一接口的一些类进行实例的创建。首先看下关系图&#xff1a;举例如下&#xff1a;(我们举一个发送邮件和短信的例子)首先&#xff0c;创建二…

LeetCode 1926. 迷宫中离入口最近的出口(BFS)

文章目录1. 题目2. 解题1. 题目 给你一个 m x n 的迷宫矩阵 maze &#xff08;下标从 0 开始&#xff09;&#xff0c;矩阵中有空格子&#xff08;用 . 表示&#xff09;和墙&#xff08;用 表示&#xff09;。 同时给你迷宫的入口 entrance &#xff0c;用 entrance [entra…