原网页:Do I Need to Code in My Free Time to Be a Good Developer?
作者:Maxim Chechenev

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

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

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

我的答案是不。


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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

  1. 业余软件开发_我需要在业余时间编码才能成为一名优秀的开发人员

    业余软件开发 "You need to code in your spare time to be a good developer" - I've been hearing th ...

  2. 做一名优秀的软件开发qa_如何成为一名优秀的开发人员

    做一名优秀的软件开发qa As a PHP developer, or any kind of developer as a matter of fact, you need to constantl ...

  3. 如何成为一名专家级的开发人员

    原文作者:Jakob Jenkov 简介 编者按:原文作者Jenkov是一位丹麦资深开发人员,从事软件开发已有十多年.常有读者咨询他,"怎么才能成为一位专家级的开发人员?"(这个& ...

  4. 成为更优秀的开发人员:第二步-知道你的核心竞争力

    编者按:原文作者罗布·沃林(Rob Walling)从事Web应用开发10年之久,担任过业内顾问.自由开发人员和全球最大的信用卡预付公司City of Pasadena的开发经理.现居住于加州中部城市 ...

  5. [译]优秀的开发人员是培养出来的,不是招聘过来的

    译者:baiyutang 作者:Eduards Sizovs 招聘市场上,每一家公司都在寻找技术最优秀的人才.这些公司都在等着天才工程师会从不知道什么地方突然出现,就好像哪里有什么天才秘密工厂似的.这 ...

  6. 如何成为一名全栈开发人员----转载

    全栈工程师是可以将最初的原型转换成为 MVP(最低可行产品),他们通常被称之为行业的万精油,无所不会的大师,而且有很好的声誉.为了定义现代的全栈工程师,我们首先需要关注的是完整的堆栈开发人员曾经是什么 ...

  7. 如何成为一名全栈开发人员

    全栈工程师是可以将最初的原型转换成为 MVP(最低可行产品),他们通常被称之为行业的万精油,无所不会的大师,而且有很好的声誉.为了定义现代的全栈工程师,我们首先需要关注的是完整的堆栈开发人员曾经是什么 ...

  8. This is why you never end up hiring good developers 这就是为什么你永远招不到优秀的开发人员

    中文为我的译文,英文为原文 英文原文地址:http://qz.com/258066/this-is-why-you-dont-hire-good-developers/ 这就是为什么你永远招不到优秀的 ...

  9. 成为更优秀的开发人员:第一步-“制造”粉丝

    编者按:原文作者罗布·沃林(Rob Walling)从事Web应用开发10年之久,担任过业内顾问.自由开发人员和全球最大的信用卡预付公司City of Pasadena的开发经理.现居住于加州中部城市 ...

最新文章

  1. [BZOJ 2054]疯狂的馒头(并查集)
  2. CPictureEx类实现GIF图片的缩放
  3. 通过ObjectMapper将实体转成字符串 ,将 用json存的的list 回转list
  4. python 字符串比较忽略大小写的方法_python实现忽略大小写对字符串列表排序的方法...
  5. 云原生数据库POLARDB专场“硬核”解析
  6. Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例
  7. 利用接口做参数,写个计算器,能完成加减乘除运算。 (1)定义一个接口Compute含有一个方法int computer(int n, int m)。 (2)设计四个类分
  8. netty ByteBuf对象池和内存泄漏检测实现走读
  9. webbrowser 百度列表点击_百度信息流推广后台完整的实操流程分享
  10. HTTP性能测试工具wrk安装及使用
  11. cocos2D中实现滑动菜单CCScrollView+CCMenu效果,(注意不是cocos2D-x)!!
  12. 免费录屏、最快截图、装X必备、看完工作学习效率直接翻倍
  13. fastDFS安装用到命令
  14. MyBatis最新官方下载地址
  15. sony媒体服务器文件不对,索尼Z280断电MXF变成RSV文件完美修复
  16. 7.Android常用第三方支付
  17. 微程序控制及微程序设计实验报告
  18. 网络营销复习题及答案
  19. android背景气泡,仿Android微信消息气泡
  20. Nginx listen指令处理连接请求

热门文章

  1. 303. Range Sum Query - Immutable
  2. Linux入门(10)——Ubuntu16.04使用pip3和pip安装numpy,scipy,matplotlib等第三方库
  3. WebApi接口 - 响应输出xml和json 转
  4. 【数据库】oracle数据库----内嵌视图
  5. JSTL(JSP Standard Tag Library)读书笔记
  6. 2010年十大改变电信业的小趋势
  7. 为什么选择学习Java编程
  8. kafka学习汇总系列(一)kafka概述
  9. 解决react-native 运行报错:Entry, :CFBundleIdentifier, Does Not Exist
  10. Fiddler抓取https相关设置