编者按:在很多人眼里,程序员就是整天坐在电脑前面敲一整天代码的形象。但真实的情况如何呢?带着这个问题,Pavel Malos采访了几个程序员,他们描述了自己的一天是如何度过的。其实他们的一天远比你们想象得要丰富得多。
带着这个问题,我们看看开发者是怎么说的。
休息、放松,享受阅读
Wesley Bitomski,代码诗人,系统架构师
不会。我的一天大部分时间是用来跟其他工程师沟通,写文档,阅读,以及在路上(不过我的上下班方式是非常独特的)。我还会做一些正常得很的事情,比如跟意见相左的人争论个人喜好,为是否跟那位做财务的美貌与智慧并存的美女搭讪感到焦虑,还有吃。
接下来的“Wes的一天”就是漫长的无所事事,喝喝啤酒、饮料或者别的什么了。
接下来我打算对你掏心掏肺。但具体怎样交给你来自行判断。就好像我会注意一样。但其实我不会。我太了解互联网了以至于对你们任何一个都不会在意的。
早上,我会把我的可折叠小艇扔到水里,然后划桨离开码头。在开放水域,我会附上马达开始2小时的通勤,在一条艇上。这条水路可以一直开到我上班的地方,我会尽量利用这段时间,如果这意味着我每天要在艇上度过4个小时的话,那就意味着我在艇上打发时间的同时做一些有价值的事情。
我也在艇上(比一艘小艇大多了)生活,所以我是在码头边醒来的。这是我的邮件地址,也是我的家。这让我的通勤变得很简单,简单到我这么做的理由已经变得非常明显。
然后我再把小艇折叠回去,把它跟马达一起带到办公室。我一般会把它立到CEO办公桌旁边,因为她对有人用一种不同寻常的通勤方式非常好奇。不过然后这件事情就变得非常无聊了,我也有点想把它放回到我的办公桌旁,现在小艇和马达流放在讨论白板的旁边,马达开始充电,我登上Slack,准备我的晨会。
今天我要开2场2个小时长度的会议。一场是关于积压工作的梳理会议,我们将讨论将来的sprint应该做哪些事情,另一场是回顾和本周打算要做的sprint规划会议。在平时,我往往会加入1或2个10分钟的scrum(一种开发流程),讨论一下前一天我们都干了什么,今天打算做什么,以及妨碍我们取得进展的任何事情。
我们是一家Agile工作室,所以我们会保持极简的有用工作进行紧密的迭代。我们的sprint大概是2周的长度,主要是因为我们当中大多数人都分散在多支团队,所以sprint可能会错开进行,周一的会议形式会以比较轻量的方式进行。或者至少管理层是想这么做的,因为所有的工程师都不想开会,只想着回去解决问题。
这不仅是因为管理层害怕会浪费金钱,也是因为我们这帮工程师非常享受解决问题。聚焦于解谜的视频游戏是部门里面很受欢迎的消遣。开会对我们的精神是极大的消耗,一切社会活动之后我们往往会垂头丧气浑身乏力。
那一天剩下的时间里,在完成了上一次sprint搁置的工作并且继续本周工作之后,我跟一名前端工程师就JavaScript的设计指标吵了一架。这场争吵是有必要的,主要是因为我想在JS把他精力耗尽之前争取他到服务器这头来。多样性容易令人筋疲力尽,或者我是这么想的。我们的通晓各门语言的平台却总能让我找到乐子。
但那家伙还是喜欢JS,并且希望我也如此。居然有人喜欢JS在我看来是非常奇怪的。既然像Go、Scala、Racket以及Python这样设计要好得多的语言已经把我拉回来了,我为什么还要理JS呢?他是个奇怪的家伙,我很喜欢他,把他当做兄弟来看。他大概也是这么看我的,尤其是怪异的那部分,希望他也当我当兄弟看。
(几乎)每天结束工作之后,我都会回到水道上坐上小艇折腾几个小时回家。我糊掉码头,冲洗一下小艇再打包起来;把马达插上充电器,然后去附近的一家酒吧吃晚饭。
接着我半醉着回到家,通过互联网流媒体看了一会儿本地新闻,一边登录上Slack。
我在想是不是应该跟我们的Sr. Accountant聊一会儿。我们在很多事情上都有着相同的看法,而且我认为她长得很好看。她也在线,并且一般呆得很晚。我往往很喜欢我们的谈话,只要话题她能聊得来我们的谈话都会是很棒的。或者至少我很享受其中,因为有一位美丽的女性在积极地给我讲我关心的东西嘛。
我决定不去骚扰她。我不知道自己是怎么做出这种决定的,在这方面我就是个懦夫。不管怎样,我就是害怕自己无法控制的东西。我早早上床以便可以第二天早上7点去上班时不会像个僵尸一样。你知道的,这跟航行安全有关,跟避免自己的感受无关。
写代码占到了我一天1/4的时间。剩下的就是关心我应该写什么代码,采用什么样的技术,在船周围玩,看看新闻以及在心里责备自己没有跟一位自己显然很欣赏的女性搭讪了。
你懂的,都是些很平常的事情。
Edmund Elmer,码农
我认为不是。编码是一项创意工作,所以工作大部分是思考和阅读,学习东西,尤其是当你需要创建一些新东西或者需要采用新技术时。我认为“作者电脑前敲代码”的时间能占到30%就算到顶了。其他的时间至少70%以上都是用来阅读、学习,最重要的,是用来思考。
当然,在办公环境下大部分的阅读和思考都是在计算机前面进行的。但是比方说我远程工作的时候,如果碰到了一个棘手的问题需要寻找解决方案的话,我会带上我的狗一起去森林里面散步一边思考线索或者复杂的UI处理问题。
所以这个“一整天都在屏幕面前埋头敲代码”跟现实差得很远。
Maxim Andreev,在西安大略大学学习
在改行web开发之前我学了一下金融然后到Bay Street去工作。编程我是自学的,并且在学习如何编码所投入的时间远比学金融要多得多。我目前从事自由职业已经有1年了,但是编程的时间要比这长。实际上我用通过编程推进了我的金融职业生涯。
现在我正在巴厘抱着我和女友的冲浪板,一边坐车赶到一家新酒店,因为上一家我们已经住腻了。没想到吧,我是个数字游牧民。
我在做加拿大和美国那边发起的项目。我的时间很没有规律,对我来说,早上4点爬起来跟客户聊或者一觉睡到中午都不算不正常。平均而言,我一般每天工作6到8小时,然而多的时候会在12—14小时或者根本就不工作。在完成了一个项目之后我会花些时间去学点新的东西。我热爱这个,对我来说工作不再是工作而是玩。互联网上面的好内容太多了,几乎你想学的一切上面都有,而且只会变得越来越好。
我热爱我的生活,我每天都会健身房,设法尽可能久地去冲浪,并且经常来一次说走就走的旅行。印度尼西亚是我今年去过的第7个国家。我们打算下个月去香港。
有时候很难找到固定的工作环境,尤其是如果你是在第三世界国家的话。在床上工作很容易犯困。
目前生活还不错,但有时候压力也会很大。作为自由职业者你的对自己做的事情非常在行,要非常擅长解决问题。当客户的要求似乎不可能完成时我的压力就会很大,但是不管怎样你还是得干完。我很幸运,有一位非常支持我的女朋友,她知道什么时候应该让我安心写代码。但是当我出现小型的惊恐发作时她也支持我哈哈。我是那种问题解决之前会一直思考下去的人,所以有时候很难活在当下不去想它。
我的主要技术栈/工具/以及我现在正在用的任何东西是:
Angular2(更新:此后我切换到Vue.js并且再也不回头了)
Django + DRF工具
Ubuntu系统
Nginx系统
Pycharm & Webstorm系统
13″ MacBook Pro笔记本
显然还有python、sass、js、typescript、git以及bash等等……
为了给未来做好准备我目前正在网上学习几门机器学习课程。
Roger Tan,被过分吹捧的程序猿
不知道别人是怎样的,但……
工作日:
7:30 AM——通勤。确保兜里有3块三明治2个西红柿。
8:30 AM——抵达办公室。吃2块三明治1只西红柿,喝点咖啡。读读Medium和我的电子邮件。
9:AM——处理请求。继续没干完的事情。昨晚我可能用自己的账号给自己发了代码。看看是不是能够用到目前正在做的任何事情上。
12:00中午——午饭。跟我的经理讨论技术。
1:00 PM——再来一杯开啡。读更多的Medium。
1:30 PM——更多的工作。如果我写出了任何有用的东西,把那东西发到我的个人账号。如果我在web上遇到了任何有趣的东西应该回家再继续研究的话,把链接发到我的个人账号。如果我需要休息,打开QBASIC然后随便折腾一下,反正脑子不想失去就行。
6:00 PM——干掉最后一块三明治和西红柿。(如果我在我妈家吃晚饭的话我会在中午把剩下的干掉)
6:30 PM——把最后的邮件都发了。离开办公室。这时候有4个选项:
——去我妈那里吃晚饭。如果是月底的话,给她一点钱。
——去游泳池。一小时左右的放松能够缓解我头脑的压力。
——去百货店买东西。(为此我还写了一个Android app。)
——去上课。目前在上Java/Android课程。
9:30 PM——替明天准备3块三明治。打包2个西红柿。
10:00PM——如果有衣服要洗要烫的话,那就去洗烫。折腾我的业余项目。如果我给自己发送了任何的代码,看看是否能够实现。如果我写了什么东西看起来是可以重用的,把它发到我的工作账号去。继续干任何我在白天发到自己个人账号去的东西。如果那是我在web上发现的一些很酷的东西,那就看看是不是可以用我知道的工具去实现它。如果是一段新代码,那就研究一下。看一些香港片。吃个苹果。
1:00AM——上床睡觉。
周末:
9:00 AM——在一家本地的咖啡厅喝杯咖啡。上Quora看看。
10:00AM——去游泳。
12:00中午——去妈妈那里吃饭或者做三明治。
1:00PM——干家务活。(也为此做了一个Android app!)
2:00PM——折腾业余项目。如果我在本周完成了任何事情,写一篇web指导记录是如何完成的,解释每一行,然后发布到我的博客上。(这件事情比看起来要难!)可能还要为我的课程完成一些家庭作业。
6:00PM——要么再做一块三明治然后回去继续折腾项目,要么出去吃晚饭或者看电影。如果我需要做点不一样的事情——可以看小说,去图书馆逛逛或者组装一些LBX(微型塑料机器人)。
2:00PM——上床睡觉。
这大概就是我尽管长得不错收入也不错但就是没有女朋友的原因吧。没有女人会对因为PHP/JAVA/AJAX/任何你知道的语言而被晾在一边感到高兴的。
那么这帮人是不是一整天都坐在电脑前敲代码呢?
每个程序员都不一样。我不知道!
原文链接:https://medium.com/the-mission/what-is-a-day-in-the-life-of-a-coder-like-72dbdc1d14bb
编译组出品。郝鹏程编辑。