如何成为专家开发人员?

152 阅读7分钟

前言

我曾多次被问到如何成为一名专家开发人员,所以我决定最终尽我所能来回答这个问题。当然,没有一条单一的途径对每个人都有效或适合每个人。这在很大程度上取决于您正在开发软件的行业以及您的公司使用的工具等。无论如何,在本文中我将介绍一条通用的专业“路径”,您可以根据自己的情况进行调整。

请记住,当您阅读本文时,成为专家和被视为专家之间是有区别的。许多人晋升为专家,但实际上并不是。但是,如果人们相信他们是专家,他们仍然可以赚很多钱,只是表现平庸。此外,还有许多无人知晓的专家。如果您确实是专家,那么您的下一步行动将是被视为专家。但如何实现这一目标超出了本文的范围。

一、什么是“专家”?成为专家需要多长时间?

在开始讨论如何成为专家之前,让我花 30 秒的时间介绍一下什么是专家,以及成为专家需要多长时间。

使用某项技能3个月或3年后,你还不是专家。根据马尔科姆·格拉德威尔 (Malcom Gladwell) 的《Outliers》一书,平均需要1w小时才能成为真正的专家。如果你愿意的话,一个有自律的人,1w 小时!也就是每天 10 个小时,每天都这样,持续3年。或者,更有可能的是,每天5小时,每年200天,持续10年。 10年啊,你能坚持吗?

沿着这个说法,在大约3年的经验之后,我相信自己已经是一名专家或高级开发人员了。现在凭借大约10年的经验,我已经了解到有多少东西需要知道,还有多少我仍然不知道,现在我不再觉得自己是这样的专家了。

另外,这个行业(Java开发)在过去的10几年里发生了很大的变化,所以我以前掌握的技能已经不再那么“酷”了。因此,即使您是专家,您也可能会发现自己已经过时,并且必须重新开始。

还有一件事:你很少是所有方面的专家,这意味着你可能在一项技能上比A君更好,而A君可能在另一项技能上比你更好。这并不是说你在每项技能上都比别人更好,或者更差。你几乎总能从每个人身上学到一些东西。我遇到的一些开发人员表现得好像他们最了解一切,即使他们显然并不了解。

事实上,这通常是识别菜鸟的一种方法。他们相信自己什么都知道,并且会在线上或线下争论至死。他们会用绝对的方式争论,比如“这总是比那更好”,或者“这就是解决问题的方法”等等。专家很少这样做。他们知道,这一切都取决于情况、开发人员拥有的技能、公司选择的工具、公司政策、个人偏好等。缺乏经验的开发人员(以及一般人)倾向于相信世界是非黑即白的。专家知道,它充满了灰度,甚至还有许多额外的颜色和阴影。

如何成为专家

对于您需要学习的大多数技能,有四个步骤可以帮助您成为专家。大多数情况下,您将按顺序执行这些步骤,但也会在步骤中上下迭代。他们来了:

  1. 学习一下
  2. 动手做吧
  3. 讨论一下
  4. 教它

1、学习一下

在掌握一项技能之前,您必须从理论上学习它。你可以通过书籍、教程、教育或摆弄它来做到这一点。

2、动手做吧

一旦您从理论上学习了该技能,您就需要在现实中应用该技能。通过将你的技能应用到现实中,你就会知道你所学的理论哪里是正确的,哪里是错误的。是的,大学通常会教给你一些在现实中不起作用或不适用于你的情况的理论。

3、讨论一下

一旦您较长时间地使用您的技能,并发现您能够解决提出的需要该技能的问题,那么就该与其他有经验的人讨论该技能了。讨论应用该技能的最佳方法是什么,理论的局限性在哪里,可以添加什么等等。简而言之,讨论如何进一步推动该技能(例如 API。如何使其更好/不同等。 )。

通过讨论,您将从其他人那里学到很多东西,即使您认为自己是新的。

4、教它

将你的技能传授给别人是磨练你技能的好方法。可能有很多事情可以去做,而不去思考为什么要这样做。必须解释你的方式和方法,迫使你思考为什么要做你所做的事情。

此外,您可能从未需要掌握某些技能(例如 Web 服务规范的某些方面)。传授你的技能将迫使你也掌握这些细节,让你比以前更好。

二、如何成为专家开发人员

现在我们已经谈论了如何成为一名专家,接下来我将更多地谈论如何成为一名专家开发人员。

作为一名开发人员,您很可能会为特定行业(至少一段时间)开发软件,并使用特定平台。如果没有,如果你像一些网络开发人员那样不断更换工具和行业,你很可能永远不会成为真正的专家。您将成为万事通,这在某些情况下也很有用。如果你不专注于平台和行业,而你想成为专家,你需要专注。

在您的专业化道路上,您必须选择一个平台,也可能选择一个行业。行业不太重要,但拥有业务领域知识确实可以增强您的形象。

学习平台时,您将从语言开始。例如,Java 语言。学习完语言之后,您需要学习平台(所有 API 和工具)。在Java中,平台分为两个:标准版和企业版。

一旦你开始掌握你的平台,你应该开始学习与平台无关的技能,比如设计模式、分布式系统设计、架构、可用性等。随着你变得更好,你将花越来越多的时间学习这些技能。这是一件好事。这些技能更容易转移到新技术平台。

最后,您可能会完全放弃软件开发,进入不同的业务领域,例如项目管理、架构师工作等。请记住,一旦您停止使用开发人员技能,您将慢慢不再是专家。

这是“通往专家开发人员之路”的图表。您从底部开始,然后向上移动各层。蓝色层是平台独立层。其他彩色层是平台特定层。即使您的平台不在这里,您也可以自己填写。

how-to-become-an-expert-developer.png

从语言到平台再到独立于平台的技能的学习路径,最终成为专家开发人员。

你必须填写适合你的行业、你的公司和你的平台的具体工具、技术等。这不是我可以一劳永逸地为每个人做的事情。

了解您应该学习什么的一个好方法是查看招聘广告。他们最常需要哪些工具和技术?在线阅读技术网站、blog等。他们最常谈论哪些技术?阅读论坛。人们问得最多的问题是哪些技术?人们最热衷于哪些技术?换句话说,明天什么会变得热门?