来源:Medium
作者:BarFranek
编辑:大明
这篇文章写给那些愿意努力工作的人。
只要你愿意努力工作,不管你是一个想要引起老板注意、寻求升值的初级开发人员,还是一位想要寻求改变工作节奏的资深开发人员,不管你想从创业公司跳槽去大公司,还是想从大公司跳槽至创业公司,即使你在大学毕业后处于失业状态也没关系。
只要你是一名程序员,没有掌握技能的状态对你的成功更重要,而非专注、深入的工作。选自CalNewport《深度工作》
“本书假设:执行深度工作的能力越来越罕见,而这种能力在我们的经济体中变得越来越有价值。成功培养出这种技能、并将其作为工作和生活的核心的少数人,将会前途无量。”《深度工作》第14页
在本文中,我将借鉴DeepWork书中的一些观点,谈谈我对如何成为一名成功的、备受青睐的开发人员的想法。如果读者正处于相关技术领域,我强烈建议读者阅读本文。
从“代码恐惧症”到开发者领袖
我是一名自学成才的程序员,但我直到快30岁时才开始编程。我一直认为自己是一个艺术家,并认为我最终会进入艺术创作领域。
我确实做到了这一点。大学毕业后,我创办了一家为小型本地企业提供图形服务和网页设计的公司。我成为一位Photoshop专家,也懂一点HTML和CSS。
但更复杂的东西我就搞不定了,甚至一行PHP代码,我都不得不外包处理。
很长一段时间里,我都被代码吓呆了,把它交给拥有计算机科学学位的人处理。
现在,我是一家世界财富50强企业的首席开发人员,开发每月为数百万人提供娱乐服务的产品。
我怎么在短短几年内做到这一点的?
我的“秘密”就是:善于“专注”和“深入工作”。我没什么特别的过人之处,花了很多时间训练自己长时间专注于某一件特定的事情,而不分心。
写代码也是一种艺术
编程是一种创造性的追求。对于普通人来说,它似乎技术性很强、而且很枯燥,但实际上你是一个艺术创造者。你是在无中生有地创造东西。这个“无”可能就是你关于应用程序的一个想法,或者是产品经理的一项功能请求。
现在这些功能还不存在,但你要把它变为现实。不是用油漆或单词,而是用代码(好吧,确实要用到一些单词,前提是它们不是保留字)。
如果想要创造出高水平的产品,那么就必须练习。
当你能够更好地在更长时间内有意识地保持专注时,你的产出的数量和质量都会提升。
艺术、音乐和写作都需要长时间不间断的练习,在脑细胞之间的突触上的髓鞘会逐步变厚。编程也不例外。
练习越多,练习时间越长,你的水平越高。当你的练习效率更高时,可以在更短的时间内获得更好的结果。
是的,你可以成为比现在牛叉10倍的开发者(5倍、2倍也不错啊)
我先说明一点,我很讨厌像“摇滚明星”、“忍者”和“牛叉10倍”这样的流行语。不只是我,每个开发者都讨厌,但公司和招聘人员喜欢啊。
尽管听着很俗,但“牛叉10倍”的理念背后还确实有很多道道。
当然,这并不是说这个人可以取代10个人,而是说一些开发人员可以在更短的时间内完成更多、质量更高的工作。从长远来看,他们并不需要比其他人更努力工作,却可以始终如一地做到高效产出。
这种能力不是天赋,并不是天生就有的,而且也不是可以“顿悟”到的东西。这是一种可以通过,而且必须通过练习和训练而获得的技能。
我已经有过几十次招聘别人的经验,我现在可以告诉你,任何公司都希望有一个全部由“牛叉10倍”的开发人员组成的团队。但这显然是不现实的。
企业需求的开发人员职位空缺数量要多于合格的开发人员数量,企业不可能找到足够的合格开发人员来填补每个职业空缺,更别说“牛叉几倍”的开发人员了。
不少企业高级管理人员认为,缺乏高素质的开发人才是影响企业成长的最大潜在威胁之一。企业很难找到优秀的人才。
大多数公司都愿意为招到“牛叉10倍”的开发人员挤破头,但他们也很乐意雇用牛叉5倍,2倍甚至1倍的开发人员。等等!1倍?
嗯,所谓“牛叉1倍”的开发人员(没错,这是我编的)是一个刚好可以完成雇用工作任务的人。不多不少刚刚好。讲真,任何公司都会对此感到高兴。关于糟糕的雇用付出的高昂成本的文章太多了。
如何提高“牛叉倍数”?两步:专心、深度工作
是时候让你的事业更上一层楼了。在从事你所钟爱的事业过程中,你会有很多机会被企业雇佣,并实现自我成长。
如果您是创业型人才,其实也是一样的。更重要的是因为你的生活水平取决于你的时间利用是否高效。
这就是你从初级开发人员晋升为高级开发人员的方式。这是你从半生不熟的开发人员成长为“牛叉5倍”的开发人员的方式。如果您每周只有10个小时的时间,这也足以让你从零开始开发一个副业项目。
没错,想要生存就要这样做。
“因此,要想在我们的社会保持宝贵的价值,你必须掌握快速学习复杂事物的艺术。这项任务需要深入工作。如果你没有培养这种能力,那么随着技术的进步,你可能会落后。”《深度工作》第13页
学会专注其实并不容易
你需要意识到的第一件事是,学会专注并不容易。你可能无法从一开始就开始写出高质量的代码。要学会专注需要练习。任何需要练习的东西都意味着它很难。因为如果不难的话,默认情况下你就会做得很好了。
你可能会感觉到挣扎,没关系。我们从小事做起。
不要将忙碌与高效混为一谈
深度工作不是要把自己锁在一个黑暗的房间里,或者逼着自己漫无目的地花14个小时把代码看一遍。仅仅因为你做了某事,并不意味着这件事就一定值得去做。
你需要弄清楚那些事情是重要的,哪些不是。这超出了本文的范围。如果你打算花时间学习如何集中注意力,就去做一些对所付出的努力有高回报的事情。
让你分心的工作会让你的精力向着各个方向发散,就像太阳光一样。你可以站在阳光下,但不会被灼伤,因为光线太分散了。
应该学会用放大镜集中散射的能量,将有限的力量保留下来,去处理重要的事情(因为太阳最终会落山)。
第一步:集中精力
所谓的“多任务”工作都是忽悠人的。你不可能一边读着短信,在其他窗口上看着新闻,一边还想写出高质量的代码来。
这个世界上充满了可以让我们分神的东西。我们努力改善的技术实际上是一把双刃剑。从屏幕角落里蹦出的新短信、新消息通知会让你总是很难集中精力。
驱逐杂念、不分心是深度工作的基础
如果你不是非接电话不可,请把手机调至静音状态,或者关机。可以使用一些免打扰的应用,把手机屏幕扣过去,放在手拿不到的地方也可以。
把短消息提醒应用关掉。一开始我也是一样,看到一排消息提醒就忍不住挨个点开来看,其实很多都是垃圾信息,所以最好还是关了,顺便把其他会弹出通知,可能导致你分心的应用程序都关了。
接下来这条是最难的:关闭和你的工作任务不相关的所有浏览器窗口,屏蔽所有你最喜欢的网站,有一些免费的插件可以帮你实现这一点。
最后是,戴上耳机。这样有望使你免受打扰,此外反复听一张专辑的歌曲也是一种集中精力的好办法。音乐可以让你获得一个好心情,或者对大脑发出“该工作了”的信号。无论如何,很多开发者都喜欢这样做。
第二步:Pomodoro(秘密武器哟)
一想到要8个小时不分神地工作,是不是有点慌了?别担心,我们利用Pomodoro技术,把一天分成多个小段。
提高工作效率的小技巧有很多,不过我喜欢的方法还是Pomodoro,下面我详细解释一下。
以25分钟为一个工作时间段
集中精力专注工作25分钟,只处理一件事。这个工作时间段就叫一个“Pomodoro”。记得使用计时器。
然后休息5分钟
这段休息时间你一定要走一走,去拿杯水,浏览一下新闻,上个厕所,什么都可以,反正工作告一段落了,这五分钟完全不要碰任何工作的事情。
每个工作时段内只处理一个任务
你可以修复一个bug,计划一个新功能,学习一个新框架都可以,总之只做一件事。
如果任务过于繁重(比如“写一个新应用”),你需要把任务分割成单位为25分钟的多个小段。
有些任务可能需要多段工作才能完成,或者需要把一系列批量处理的小型任务也归为25分钟一段。不过重点是这些任务都属于“一类”工作。
顺便说一句,我们拖延的主要原因是因为被巨大的、无法攻克的艰巨任务所淹没。如果你的目标是“写一本书”,你可能永远也写不出来。当你把大任务分解成较小的任务块,比如“写一个大纲”或“写个单词”时,思路会变得更清晰。开始动手也变得更容易、更可行。
虽然这篇文章讲的是如何成为更优秀的开发者,而不是关于工作拖延的,但事实是很多时候二者是一回事。
工作中不能分心
请参阅“第一步”,如果你分了心,前面的工作就不算了,必须重新开始计时。
每个工作时间段为25分钟
如果你以前从未这样做过,那么坚持25分钟不分心对你来说可能很难。不妨先从10分钟开始。做到之后再尝试15分钟、20分钟,然后是25分钟。
当你真正轻车熟路之后,最多可以集中精力工作55分钟不分心。
这如何能让我成为更优秀的开发者?
现实一点,当你一会儿摆弄代码编辑器,一会儿看看邮件,时不时又和别人聊上几句,这样是不可能有助于职业发展的。可能你自己感觉很忙,别人看你也很忙,但是到最后代码没写几行。实际上,仅仅几个小时的集中工作,其产出成果的数量和质量都要比一整天支离破碎、心不在焉的工作高得多。
所以,要逐渐学会在连续几天中都保持这种分段工作的高度集中状态。
然后将持续时间扩展至几周、几个月。你会发现这一状态渐成自然,而且出现得越发频繁。
这太重要了,一些最重大的突破往往就是在这种时候产生的。这时,最棘手的困难都会变得更容易,你的编程技能水平也会呈指数级的提升。