译者 | 仇凯
审校 | Noe
如果你是正在培训班学习编程基础知识的学生,那么你需要多长时间才能成为软件编程专家呢?加拿大作家马尔科姆·格拉德威尔(Malcolm Gladwell)在他的畅销书《异类》(Outliers)中提出了著名的一万小时定律——这是一条经验定律,用于说明任何人在成为某些领域的专家和成功人士之前需要学习和训练的时间。
根据格拉德威尔的推理,披头士乐队之所以能成为成功的乐队,是因为60年代初他们在汉堡(德国北部的港口城市)工作,通过在该市夜总会不停地巡回演唱,积累了大约一万小时的现场演唱经验。
此外,比尔·盖茨之所以能成为一名传奇程序员——在那个时代,他是世界上最优秀的50位程序员之一——因为他首先投入了一万小时来让他的代码有效、快速和无异常报错。他在年轻的时候就这样做了——十几岁的时候,他溜进了高中的计算机实验室,自学了编程的基础知识和理念。到他创立微软时,盖茨虽然是一个刚起步的商人,但他是一位技术专家,是一位经过一万小时定律认证的开发人员。
这条定律简单的令人着迷——格拉德威尔将复杂理论归纳为易于理解的口号——并使其变成学习和成功的参考标准。甚至保罗·麦卡特尼(Paul McCartney)也表达说,“这符合很多事实情况”。
如果我们运用格拉德威尔的调查结论并将该定律应用到程序员的职业生涯中,我们将轻松地判断成为一名编程大师需要多长时间——或许它还能提供一份参考指南,让我们了解何时可以提出升职加薪的要求。
从学徒到大师
为了这个测试,让我们假设一万小时定律非常准确(剧透警告:据称,事实并非如此)。另外,假设你参加了一个全日制的高强度培训班(类似于沃耕编程训练营),梦想成为一名数据科学家。这意味着,当你完成课程时,你已经练习了大约 350 小时——占最终目标的3.5%。
但这仅仅是开始。2020年,79%的培训班毕业生在课程完成后的六个月内找到了工作。一份工作——或者高中计算机实验室——可能是提升编程水平的最佳场所。
所以,成为一名专业程序员需要经过漫长的道路,但是需要多久呢?考虑到350小时的时间优势和(悲观情况下)六个月的中断情况,你现在就可以对此进行评估。
如果你在一家公司找到了一份数据科学家的工作,并且以每周5天、每天8小时的时间来开展编程工作并磨练你的技能,那么你将花费大约5年半的时间达到一万小时定律的要求。不是很轻松,但也并不十分困难!
我是一名工作了3840小时的工程师,我要求加薪。
不,请不要对你的老板这么说。但是,由于工资通常是松散的等级系统来决定的,因此对于一名拥有3840小时专业经验的程序员来说,可能意味着你已经具备要求增加你月收入的条件了。
你可以用3840小时做多少事情?首先,你可以观看黑客帝国超过1500次,或者观看每场冠军联赛决赛的重播近40次。但是,最重要的是,如果你拥有3840小时作为程序员的经验,这意味着你已经投入了至少两年的时间来练习、工作和磨练你的编程能力,并且大家都会认可你的进步。
那么,到这个时候,你就不再是初级工程师了——你可以称自己为中级工程师。正如我们之前提到的,拥有2到3年的程序员经验意味着你将能够争取大约8到9万美元的薪水(在美国)。
一万小时定律让我们可以非常容易地评估自己在两年内取得的进步:因为我们谈论的是一万小时目标中的3840小时,我们会说,当你已经完成了超过三分之一预期路程时,你已经是一名中级工程师。
高级工程师里程碑
如果你是高级工程师,则意味着你知道如何同时成为专家和初学者:高级工程师能够轻松探索新的编程语言或概念。这也可能意味着你的领英收件箱经常会被塞满:根据美国劳工统计局的数据,几乎98%的高级软件工程师都很容易被雇佣。
更重要的是,37%的高级软件工程师通常只在一家公司呆一到两年。统计数据反映了市场(无论是私有领域还是公开领域)对全方位、经验丰富的软件开发人员的高需求。如果你是高级工程师,那么你一年内很有可能会获得数十个工作机会的邀约。
那么,在成为高级软件工程师之前,我们应该编程多长时间呢?研究中心似乎倾向于用年限来作为评估依据:至少需要以程序员的身份工作五年,你才能够成为高级工程师。
是的:五年,相当于完成一万小时定律的要求。格拉德威尔的定律完全符合行业标准。格拉德威尔的看法是,大量练习不仅能获得专业知识,同样也会带来成功。
所以,根据他的观点,如果你非常努力地进行五年的编程训练,你就会积累一万小时的“飞行时间”——这将为你的成功做好准备。如果可能的话,那时候你的薪水应该在11万美元左右,如果你在硅谷工作,薪水会更多。
总结
一万小时定律的美妙之处在于它和编程职业几乎完美匹配:如果我们盲目选择相信并遵从定律,那么成为数据科学专家、网页开发专家或Ninja(一种注重速度的构建工具)程序专家将花费相同数量的时间,也就是五年左右。业界似乎也在遵从这个定律,即随着工作年限的增加而给予员工更高的薪水——随着你的专业知识而增加。
当然,职业生涯有起有落。你可能每天只花三个小时编程,这会使你消耗更长的年限来达成一万小时定律的要求。此外,你也可能会在一个充满激情的项目上投入大量精力,这使得你能够以低于五年的速度达成目标。
即便如此,这种分析的另一种看法是,在大多数人力资源团队眼中,你距离成为他们认可的“高级”人员还有五年的时间。而且,如果这个理论被证明是正确的,那么你距离职业成功也只有五年的时间了。
译者介绍
仇凯,51CTO社区编辑,目前就职于北京宅急送快运股份有限公司,职位为信息安全工程师。主要负责公司信息安全规划和建设(等保,ISO27001),日常主要工作内容为安全方案制定和落地、内部安全审计和风险评估以及管理。
原文The 10,000 hour rule won’t make you a coding expert, but it’s a good start
链接:https://thenextweb.com/news/10000-hour-rule-coding-expert