一文读懂程序员如何从初级升级到高级

微信搜索【程序员小跃】,和你们一块儿奔跑
Slogan:当你的才华还没法撑起你的野心时,那应该静下心来好好学习程序员

还记得前几天跃哥的这篇推文吗?《知道吗,你和高级工程师差距巨大》这篇和你们简单的聊了聊程序员和高级程序员的差距,目的就是为了让你们有一个深入的认知,而后朝着这个目标去奋斗。面试

高级程序员确定是一部分同窗的梦想,跃哥最近常常被群友询问,说如何才能进大厂,如何才能和我同样优秀,如何才能面面俱到等等这些话题,也写了一部分本身的文。那么,这些都是在我眼里的所见所谓,对于远在大洋彼岸的国外程序员,他们又是如何理解,甚至是如何走从初级到高级之路的呢。算法

就这样,今天这篇文章应运而生。欧阳同窗经过本身的资源,找到了这篇名为《How to Go from Junior to Senior Programmer - Level Up Coding》 的文章,翻译成中文就是《如何从初级程序员到高级程序员》,这不就是程序员成长之路的海外版本的解读吗?习惯了咱们国内的 style,跃哥带你一同感觉下他们的文风。数据库

由于水平有限,有部分解释的不是很清楚,还请你们见谅,想要阅读原文, 能够联系我。文中有部分产生了共鸣,我有添加本身的语录,之后我都会尽可能有一个“跃哥语录”的模块,但愿你们喜欢,哈哈哈哈。编程

如何从初级程序员升级到高级

高级程序员是一个专家,他犯了全部在他领域可能犯的错误。(跃哥感慨:同理能够理解成,大公司也是一个专家,大公司遇到的问题小公司确定遇到过,因此不少资料,不少学习的内容大公司的经验都是宝贵的经验)微信

做者:Ravi Shankar Rajanapp

程序员能够按经验级别来分类,大体能够像以下这几类:框架

  • 初级:2-3 年的经验
  • 高级:10 年以上经验
  • 中级或“中级”:处在初级和高级之间

多年工做经验真的是一个难题。它并无提到软件开发的质量问题。这几年你积累了多少经验和技能呢?这就是为何针对开发人员的求职面试是如此复杂的缘由。这是一项很难衡量的技能,所以咱们最终在面试中对开发人员进行了很困难的测试。可是这些测试其实也就是一个近似值,没法衡量作这份工做所需的工做或专业知识。数据库设计

跃哥感慨:这确定引发了不少同窗的共鸣,为何面试造航母,入职螺丝钉。是由于作技术这项工做太难了,每一个公司所须要的技能、要求、模块、框架不必定都相同,可是底层知识,基础知识是相通的,这部分又比较难,这样就让不少同窗苦恼。可是这也是企业的无奈。工具

进而引出了下一个问题。

一旦你再也不是一个初级工程师,你何时能成为高级工程师呢?

多年的工做经验会自动让你成长为高级吗?不存在的。

跃哥感慨:这不就是跃哥以前强调的,不能一个工做经验用十年的意思么?

以个人状况为例。当我仍是一个年轻的初级软件工程师时,我觉得我什么都知道。 我很粗鲁,自大和自信。我认为本身是“编码的王者”。我不喜欢与他人合做,我认为编写出色的代码是惟一重要的事情。

我发现我错了。是的,编码很重要。归根结底,程序员必须编写代码。可是编写代码并非惟一重要的事情。

当我为第一个客户工做时,我很难学到这一点。我跟客户花了“15”分钟,收集了需求的“要点”,并假设我明确了解客户的需求。我开始像个疯子同样疯狂的写代码,享受编写代码的行为。我在3天的时间内提交了申请然而被客户立马拒绝。由于那不是他所想要的。

结果不用说,我很忧桑。个人自尊受到伤害,并且我还责怪客户没有提供足够的信息。我当时太年轻了,其实客户永远是对的。若是我花更多的时间分析客户的需求,状况可能会大不相同。我学这个很难,很难学会。

也就是说,程序员不只仅是程序员,由于他会编程。他是个程序员,由于他的工做是在开始任何事情以前分析全部的事情。必须在多个层次上进行分析。

  • 自我分析,以此来提升
  • 分析客户需求以提供更好的服务
  • 分析整个项目,以帮助每一个人表现更好

若是您想从初级到高级开发人员,则须要培养这些分析技能,使之蜕变成一个真正优秀的高级开发人员,他以专业知识而闻名,而不是多年的经验。

一个优秀的高级开发人员就像一个已经长大的成年人,能够照顾本身的人。他的生活再也不是不稳定的,自发的和实验性的。他从错误中吸收教训,在生活中创造了坚实的专业基础,他能够回过头来为之骄傲。他还能够“年轻”,但他所拥有的是丰富的实用主义和有效性,远比他多年的实际经验更有价值。

跃哥感慨:跃哥平时在社群里也和你们聊工做经验,写代码这方面的沟通。其实在程序员面前,写代码是最后一部分要作的事情,也是最简单的事情。当你作过需求分析,数据库设计,框架设计,选型等工做,写代码就是水到渠成的事情,只要给你时间,完成客户要求的产品不是问题。

下面是一些从初级程序员蜕变到高级程序员的方法

克服 Dunning-Kruger 效应

Dunning-Kruger 效应是一种认知偏见,人们认为本身比实际更聪明、更有能力。从本质上讲,低能力的人不具有识别自身能力不足所需的技能,这致使他们高估本身的能力。

跃哥感慨:知道本身不知道,才是正确的认识本身。就像不少人感慨那样,一开始编程的时候,觉得本身知道的不少,可是当他越深刻学习,愈加以为本身掌握的知识很眇小,怎么还有这么多的内容须要学习呢?

做为一个初级程序员,这无疑是一个灾难的处方。你可能认为你是一个摇滚明星程序员,什么都知道,但事实是你知道的不多,仍然远远没有达到卓越。这是一个陷阱,你须要避免陷入进入。(这里还推荐一本书,叫《能力陷阱》

初级程序员和高级程序员的区别在于,初级程序员认为本身什么都知道,高级程序员知道本身还有不少东西要学。初级程序员每每高估本身的知识和能力,没法认识到其余人的技能和能力水平,这就是为何他们老是认为本身比别人更有能力,更有知识。

正如 David Dunning 所说的那样:

“在许多状况下,没能力不会让人迷失方向、困惑或谨慎。相反,不称职的人每每被一种不适当的自信所鼓舞,这种自信在他们看来是知识。”

Dunning 和 Kruger 认为,随着工做经验的增长,过分自信一般降低到更现实的水平。随着程序员开始深刻学习,他们意识到本身缺少知识和能力。随着他们不断地获取知识,他们的专业知识不断加强,信心水平开始再次提升。

他们提出了如下克服过分自信的方法。

  • 不断学习和练习。一旦你对某个主题有了更深入的了解,你就会认识到仍有不少东西须要学习。即便你不是专家,这也能阻止你认为本身是专家的倾向。
  • 问问别人作的怎么样。向别人提出建设性的意见能够为别人如何看待你的能力提供有价值的看法。
  • 询问你所知道的。不断挑战你的信念和指望。寻找挑战你想法的信息。你的问题越多,你就学到更多。

记住,知根知底的感受是愉快的。但你须要不断提升本身的标准。为此,你须要更深刻地挖掘,以便更好地理解一个特定的主题。它让你认识到还有多少东西要学。

知道何时不应作什么

Mark Manson 在《The Subtle Art of Not Giving a Fuck》一书中谈到了保持由尽量少的定义身份的重要性。这是由于当咱们涉及到咱们的身份时——当咱们决定某些行为或事件表明咱们做为一我的的价值时。

简单地说,咱们常常决定作一些事情是基于它如何知足咱们的自我或孩子气的兴奋感,而不是真正须要作一样的事情。Manson 告诉咱们,最好的决定是当咱们把“自我”排除在决定以外时作出的,由于这是最有可能,不是“你”的问题。简单的问问本身,“这是件好事吗?”是的“?那就勇敢去作吧。

这也适用于程序员。事实上,大多数程序员天生就像喜鹊同样,老是收集闪亮的东西,把它们存储起来,寻找联系。若是你不知道这一现象,闪亮玩具综合症的典型特征是想要拥有最新的玩具,一般不考虑实际或功能的须要,或者在转移到其余东西以前被强烈但很是短暂的全部权所吸引。

若是你的目标是成为一名高级程序员,你须要不惜任何代价避免这种疾病。更好的高级程序员知道何时不作什么。他们知道从头开始重写一个库只是为了使它更可读,或者从旧的框架切换到最新的框架并不老是好的决定。代码的目的应该足够清楚,以便在几分钟甚至几秒钟内掌握。浏览代码应该很容易,即便没有复杂的技巧。

关键不是要规避风险,而要谨慎选择正确的战斗。

跃哥感慨:因此如今你知道不少公司为何还在使用你认知范围内的旧技术了吧?拿Java来讲,其实技术的本质都是差很少的,可是框架的封装是有所不一样,每一个时期都有每一个时期的优秀框架,一旦定下这个框架,并让系统稳定起来,则后续的转型是须要高级程序员通过层层评判才能肯定的。同理能够用在需求分析上。

充满好奇

您是否想知道“application”一词是什么意思?

为何咱们在智能手机中称这些小图标为applications?由于他们将给定的工做流程或算法应用于存在的问题,并帮助咱们解决咱们的需求。

也就是说,若是你要构建某些东西,那么你确定会犯错误。反思你的工做并不断地改进他会促使创新,而创新的根源在于好奇心,去发现事物是如何工做的。记住,这是在自我完善的整个周期中一个重要的阻碍。

错误->看法->好奇心->创新->错误……。重复……

若是你想继续前进并成为一名优秀的高级程序员,那么你须要有疯狂的好奇心去投入到你所作的每一件事中。好奇心是一种工具,你用得越多越好,这正是人们对一个优秀的高级程序员的指望。优秀的高级开发人员以结构化的方式引导他们的好奇心,这样他们就可使用在危机状况下积累的信息。

您能够经过如下几种方式来激发好奇心并树立你的品牌。

  • 持续学习。选择一门课程,一本书,一个在线课程,并利用它来丰富你已拥有的想法,并得到新的想法。
  • 聚焦基础知识。确保你了解它们的工做原理,这样你就能够把它做为你工做的基础。
  • 不要说出你的想法,请展现你的项目。不管如何,想法都被高估了。当你的想法被使用和传播时,你能够创建你的品牌。
  • 在新的和既定的想法之间取得平衡。不要盲目地接受你“应该”知道的东西。挑战现状。
  • 不只仅是使它起做用。使其可扩展、可重用和可插入。这就是你创建专业知识的方式。

一切都始于好奇。若是你很差奇的话,你最好选择退出。正如 Albert Einstein 所说:

"I hava no special talent. I am only passionately curious."

“我没有特别的天赋。我仅仅是出于好奇。”

结语

跃哥在这里还安利你们一个知识点,叫作:四象限法则,是美国管理学大师史蒂芬·柯维提出,用户时间管理的基础理论。他用重要和急迫两个维度,将事项分为四个象限:重要且紧急,重要但不紧急,不重要但紧急,不重要且不紧急。这里衍生出了不少其余的四象限,好比知识四象限,知识本身知道,知道本身不知道,不知道本身知道,不知道本身不知道

利用这个四象限法则,能够根据本身的实际状况来很好的分析当下比较重要的事情,也能很好的分析本身所处的环境,把本身的优先级分析出来,把本身的知识点分析出来,方便本身对症下药以便更进一步的学习,是否是很赞?

不要问跃哥为何知道的这么多,不要问跃哥为何在文中有这么多感慨,由于我今年读的书变多了,不管从获取知识的角度仍是消化的角度都有了一个长足的进步,惋惜从金钱的角度来看,还任重道远,这也是比较尴尬的地方,也是我还要继续努力的地方。

师傅领进门,修行在我的。最近分享了不少关于校招、面试、成长、翻译的文章,你不须要每篇都看,但请你挑选适合本身的好好看,由于咱们都还在一个有无限进步的空间里生存,咱们须要进步的点还有不少。

因此,跃哥还和你们一块儿进步,一块儿学习,一块儿奔跑,来吧,少年们!

相关文章
相关标签/搜索