一名优秀的开发人员,空闲时间会敲代码吗

Photo by Joshua Earle on Unsplash

“只有在空闲时间也敲代码,才能成为优秀的开发人员”——我常常听到周围有人这样说。在最初开始做开发的时候,就听到这样的说法。如今我已工作了将近十年,仍然会听到。看一些 CEO 的访谈,他们说:“我永远不会雇用在空闲时间不敲代码的开发人员”;我曾拜访过一些公司,他们说:“和我说说你的 side projects”。

真实情况是,大部分开发人员并不会在空闲时间敲代码,与此同时,又因此陷入焦虑和自我怀疑。

“空闲时间敲代码真的很有必要吗?身边的人都期待着我这样做吗?为成为优秀的开发人员,我真的需要在空闲时间敲代码吗?”

我的答案是不。


有人说:“我就是喜欢写代码”

不要误会我的意思。我不是说空闲时间编写代码不好。比如说,对于显然需要学习和实践的初级开发人员;或者是需要学习新语言或新技术;或者在准备面试(尤其是对于大公司);或者就只是享受敲代码的感觉;再或者是在处理自己的 side project …… 这些情况和原因都是很棒的,值得学习和推荐。

我的问题有点不同:即便我没有上述的那些情况和原因,为什么依旧有人希望我在空闲时间主动去敲代码?

在这里说一些我的个人信息,碰巧我并不热衷于敲代码,尽管我喜欢它并且写代码的水平还算不错。当看到自己的工作成果时,我会非常享受。看到人们如何与我构建的界面进行交互,真的让我很有成就感,即便产品是8年前开发的,我现在看着依旧很喜欢它。

但是我每天要花八小时上班、八小时睡觉,已经没有太多时间去做别的事情了。如果空闲时间我依旧选择敲代码,那我又该在什么时候去兼顾家庭、朋友和我的爱好呢?这些我需要时间,我需要一个平衡点。当我的妻子叫我吃晚饭时,我不想说:“好的,我处理完这个小 bug 就来”。因为我知道,长期在这种情况下,最后我将独自一人吃已经没有热气的晚餐。我不想错过这个对于我来说十分重要的时刻。

我的爱好与计算机毫不沾边。我喜欢瑜伽,单车,还有不太擅长的烘烤,最近,我正在学习如何吹口琴。我热衷于尝试新的事物和爱好,乐于感受计算机之外的生活。而当我晚上只有很少的时间时,又该如何为所有这些爱好找到足够的时间?


兴趣爱好并没有让我成为不怎么样的开发者

这些与 IT 行业无关的爱好和兴趣,使我的大脑活跃,让我越来越富有想象力,思考得也更广泛了,同时也让我的空闲时间变得更丰富精彩。这些与工作无关的事情,实际上和工作也有恀相似性,有很多方法同样可以运用在工作当中。

此外,在电脑前度过一整天的工作的后我需要休息。然而,我的祖母始终认为这是我为了休息而胡说八道:“只是坐在座位上按几个键,怎么会感到疲倦呢?而且就这样坐一坐,你就可以拿到很不错的薪酬”。我很清楚,她希望我能找到一份真正的工作——需要大量体力劳动的工作,也只有这样,我才有权说我累了。

不管怎么说,也许我的身体并不那么累,但是我的大脑却很累。我们不是机器人,我无法再多花一两个小时来敲代码。我的工作效率很低,可能一个小时只是打开IDE新建了一个空白项目文件夹。我知道我想通过做一些不同的事情来休息,而在做这些不同于工作的事情时,我能够突然想到某个问题的解决方案的频率是多少?很多次!

在我还年轻的时候,我始终认为“倦怠”这个词是假的,只不过是为了带薪休假而已。我不明白与工作有关的压力怎么会影响任何人。但是后来我看到很多开发人员,他们将大量的精力投入到编码中,除此之外再无其他,繁忙却又空虚。

需要休息这一正常的需求怎么会让我变成一个糟糕的开发商呢?事实并非如此,永远不会。


“适时的休息,这听起来很棒,但什么时候学习新技术和语言呢”

我认为这些应该在工作时间内完成。这是因为开发者和雇主双方都对此有需求:您想学习新知识并变得更好,您的雇主希望拥有一个经验丰富且乐于了解最新技术的开发人员。

在很多情况下,都可以在工作中尝试。比如某次新产品发布讨论会上,表现出一些主动性,并就为什么应该尝试新技术提出自己的观点。也许它将改善产品性能,或者可能对开发人员更具吸引力,便于公司的招聘。

当然,并不是所有公司都有这种机会。我曾经在一家很大的银行工作,这个银行拥有大量特定遗留代码,不过当时我对如何处理类似的情况没有很好的建议。虽然后面我离开了那家公司,但仍然学到了很多东西。


“我感觉到自己已经脱离新趋势了,我想要追赶上去”

在我看来,感觉到跟不上时代步伐,是很正常的。因为我们做不到永远和时代同一频率前进——这个时代进步的速度远比我们了解新知识的速度快得多。我们只是人类,我们不可能什么都知道。我越是努力就越明白,我所获得的报酬主要来自于我搞开发的好几年工作经验,而不是我对最新技术的了解。就像每一批最新出炉的毕业生,或许他们熟悉现有的最新技术,但他们没有真实生产场景的工作经验。

我只想再提一次:我并不反对在业余时间敲代码这个行为,也完全没有让正在这样做的人停止的意思。每个人的际遇、性格各有不同,只需要做自己喜欢做的、应该做的事就好。

我想说,没有人需要为不同的责任和梦想而感到难过或羞愧。

也许我的这种心态会让我失去一些很重要的东西,比如说,应聘时有 HR 和我说:“很抱歉,Maxim,我们不能雇用您。我们希望应聘者愿意在晚上继续加班敲代码。”

也许我不是很聪明。但是我相信我的知识和工作经验。我的心态、灵活性、学习能力和阅历,远比在晚上写代码这一行为更有意义。

当然,我并不是说这些公司不好,只不过我们的观点不一致罢了。而且,事实上,非正常上班时间写代码,几乎是业内默认的潜规则。更何况,让所有人都认同我的观点,这也是很不现实的。很多公司认为我不是一个好的开发人员,认为我一无是处,这完全没问题,毕竟,也有很多公司的价值观与我的价值观保持一致。

这里想说一句大家都知道的话:人生苦短。

人的一生没有太多时间,我想要把更多时间用在能使我更快乐的事情上。在我做了脑部手术之后我才意识到这一点,这很可悲(当然,现在的我很健康)。不过能意识到,就很好了,我很高兴现在我不再纠结于在空闲时间敲代码了。


所以,请追随你的梦想,跟着你的本心,做你想做的、热爱的事,不要让自己为此感到难过。

本文由实验楼进行翻译,原网页:Do I Need to Code in My Free Time to Be a Good Developer?
作者:Maxim Chechenev

posted @ 2020-07-20 11:16  蓝桥云课  阅读(284)  评论(0编辑  收藏  举报