碼農(nóng)的一天是怎么過的?
英文原文:What is a day in the life of a coder like?
帶著這個(gè)問題,我們看看開發(fā)者是怎么說的。
休息、放松,享受閱讀
Wesley Bitomski,代碼詩人,系統(tǒng)架構(gòu)師
不會(huì)。我的一天大部分時(shí)間是用來跟其他工程師溝通,寫文檔,閱讀,以及在路上(不過我的上下班方式是非常獨(dú)特的)。我還會(huì)做一些正常得很的事情,比如跟意見相左的人爭論個(gè)人喜好,為是否跟那位做財(cái)務(wù)的美貌與智慧并存的美女搭訕感到焦慮,還有吃。
接下來的“Wes 的一天”就是漫長的無所事事,喝喝啤酒、飲料或者別的什么了。
接下來我打算對(duì)你掏心掏肺。但具體怎樣交給你來自行判斷。就好像我會(huì)注意一樣。但其實(shí)我不會(huì)。我太了解互聯(lián)網(wǎng)了以至于對(duì)你們?nèi)魏我粋€(gè)都不會(huì)在意的。
早上,我會(huì)把我的可折疊小艇扔到水里,然后劃槳離開碼頭。在開放水域,我會(huì)附上馬達(dá)開始 2 小時(shí)的通勤,在一條艇上。這條水路可以一直開到我上班的地方,我會(huì)盡量利用這段時(shí)間,如果這意味著我每天要在艇上度過 4 個(gè)小時(shí)的話,那就意味著我在艇上打發(fā)時(shí)間的同時(shí)做一些有價(jià)值的事情。
我也在艇上(比一艘小艇大多了)生活,所以我是在碼頭邊醒來的。這是我的郵件地址,也是我的家。這讓我的通勤變得很簡單,簡單到我這么做的理由已經(jīng)變得非常明顯。
然后我再把小艇折疊回去,把它跟馬達(dá)一起帶到辦公室。我一般會(huì)把它立到 CEO 辦公桌旁邊,因?yàn)樗龑?duì)有人用一種不同尋常的通勤方式非常好奇。不過然后這件事情就變得非常無聊了,我也有點(diǎn)想把它放回到我的辦公桌旁,現(xiàn)在小艇和馬達(dá)流放在討論白板的旁邊,馬達(dá)開始充電,我登上 Slack,準(zhǔn)備我的晨會(huì)。
今天我要開 2 場 2 個(gè)小時(shí)長度的會(huì)議。一場是關(guān)于積壓工作的梳理會(huì)議,我們將討論將來的 sprint 應(yīng)該做哪些事情,另一場是回顧和本周打算要做的 sprint 規(guī)劃會(huì)議。在平時(shí),我往往會(huì)加入 1 或 2 個(gè) 10 分鐘的 scrum(一種開發(fā)流程),討論一下前一天我們都干了什么,今天打算做什么,以及妨礙我們?nèi)〉眠M(jìn)展的任何事情。
我們是一家 Agile 工作室,所以我們會(huì)保持極簡的有用工作進(jìn)行緊密的迭代。我們的 sprint 大概是 2 周的長度,主要是因?yàn)槲覀儺?dāng)中大多數(shù)人都分散在多支團(tuán)隊(duì),所以 sprint 可能會(huì)錯(cuò)開進(jìn)行,周一的會(huì)議形式會(huì)以比較輕量的方式進(jìn)行?;蛘咧辽俟芾韺邮窍脒@么做的,因?yàn)樗械墓こ處煻疾幌腴_會(huì),只想著回去解決問題。
這不僅是因?yàn)楣芾韺雍ε聲?huì)浪費(fèi)金錢,也是因?yàn)槲覀冞@幫工程師非常享受解決問題。聚焦于解謎的視頻游戲是部門里面很受歡迎的消遣。開會(huì)對(duì)我們的精神是極大的消耗,一切社會(huì)活動(dòng)之后我們往往會(huì)垂頭喪氣渾身乏力。
那一天剩下的時(shí)間里,在完成了上一次 sprint 擱置的工作并且繼續(xù)本周工作之后,我跟一名前端工程師就 JavaScript 的設(shè)計(jì)指標(biāo)吵了一架。這場爭吵是有必要的,主要是因?yàn)槲蚁朐?JS 把他精力耗盡之前爭取他到服務(wù)器這頭來。多樣性容易令人筋疲力盡,或者我是這么想的。我們的通曉各門語言的平臺(tái)卻總能讓我找到樂子。
但那家伙還是喜歡 JS,并且希望我也如此。居然有人喜歡 JS 在我看來是非常奇怪的。既然像 Go、Scala、Racket 以及 Python 這樣設(shè)計(jì)要好得多的語言已經(jīng)把我拉回來了,我為什么還要理 JS 呢?他是個(gè)奇怪的家伙,我很喜歡他,把他當(dāng)做兄弟來看。他大概也是這么看我的,尤其是怪異的那部分,希望他也當(dāng)我當(dāng)兄弟看。
?。◣缀酰┟刻旖Y(jié)束工作之后,我都會(huì)回到水道上坐上小艇折騰幾個(gè)小時(shí)回家。我糊掉碼頭,沖洗一下小艇再打包起來;把馬達(dá)插上充電器,然后去附近的一家酒吧吃晚飯。
接著我半醉著回到家,通過互聯(lián)網(wǎng)流媒體看了一會(huì)兒本地新聞,一邊登錄上 Slack。
我在想是不是應(yīng)該跟我們的 Sr. Accountant 聊一會(huì)兒。我們?cè)诤芏嗍虑樯隙加兄嗤目捶?,而且我認(rèn)為她長得很好看。她也在線,并且一般呆得很晚。我往往很喜歡我們的談話,只要話題她能聊得來我們的談話都會(huì)是很棒的?;蛘咧辽傥液芟硎芷渲校?yàn)橛幸晃幻利惖呐栽诜e極地給我講我關(guān)心的東西嘛。
我決定不去騷擾她。我不知道自己是怎么做出這種決定的,在這方面我就是個(gè)懦夫。不管怎樣,我就是害怕自己無法控制的東西。我早早上床以便可以第二天早上 7 點(diǎn)去上班時(shí)不會(huì)像個(gè)僵尸一樣。你知道的,這跟航行安全有關(guān),跟避免自己的感受無關(guān)。
寫代碼占到了我一天1/4 的時(shí)間。剩下的就是關(guān)心我應(yīng)該寫什么代碼,采用什么樣的技術(shù),在船周圍玩,看看新聞以及在心里責(zé)備自己沒有跟一位自己顯然很欣賞的女性搭訕了。
你懂的,都是些很平常的事情。
Edmund Elmer,碼農(nóng)
我認(rèn)為不是。編碼是一項(xiàng)創(chuàng)意工作,所以工作大部分是思考和閱讀,學(xué)習(xí)東西,尤其是當(dāng)你需要?jiǎng)?chuàng)建一些新東西或者需要采用新技術(shù)時(shí)。我認(rèn)為“作者電腦前敲代碼”的時(shí)間能占到 30% 就算到頂了。其他的時(shí)間至少 70% 以上都是用來閱讀、學(xué)習(xí),最重要的,是用來思考。
當(dāng)然,在辦公環(huán)境下大部分的閱讀和思考都是在計(jì)算機(jī)前面進(jìn)行的。但是比方說我遠(yuǎn)程工作的時(shí)候,如果碰到了一個(gè)棘手的問題需要尋找解決方案的話,我會(huì)帶上我的狗一起去森林里面散步一邊思考線索或者復(fù)雜的 UI 處理問題。
所以這個(gè)“一整天都在屏幕面前埋頭敲代碼”跟現(xiàn)實(shí)差得很遠(yuǎn)。
Maxim Andreev,在西安大略大學(xué)學(xué)習(xí)
在改行 web 開發(fā)之前我學(xué)了一下金融然后到 Bay Street 去工作。編程我是自學(xué)的,并且在學(xué)習(xí)如何編碼所投入的時(shí)間遠(yuǎn)比學(xué)金融要多得多。我目前從事自由職業(yè)已經(jīng)有 1 年了,但是編程的時(shí)間要比這長。實(shí)際上我用通過編程推進(jìn)了我的金融職業(yè)生涯。
現(xiàn)在我正在巴厘抱著我和女友的沖浪板,一邊坐車趕到一家新酒店,因?yàn)樯弦患椅覀円呀?jīng)住膩了。沒想到吧,我是個(gè)數(shù)字游牧民。
我在做加拿大和美國那邊發(fā)起的項(xiàng)目。我的時(shí)間很沒有規(guī)律,對(duì)我來說,早上 4 點(diǎn)爬起來跟客戶聊或者一覺睡到中午都不算不正常。平均而言,我一般每天工作 6 到 8 小時(shí),然而多的時(shí)候會(huì)在 12—14 小時(shí)或者根本就不工作。在完成了一個(gè)項(xiàng)目之后我會(huì)花些時(shí)間去學(xué)點(diǎn)新的東西。我熱愛這個(gè),對(duì)我來說工作不再是工作而是玩。互聯(lián)網(wǎng)上面的好內(nèi)容太多了,幾乎你想學(xué)的一切上面都有,而且只會(huì)變得越來越好。
我熱愛我的生活,我每天都會(huì)健身房,設(shè)法盡可能久地去沖浪,并且經(jīng)常來一次說走就走的旅行。印度尼西亞是我今年去過的第 7 個(gè)國家。我們打算下個(gè)月去香港。
有時(shí)候很難找到固定的工作環(huán)境,尤其是如果你是在第三世界國家的話。在床上工作很容易犯困。
目前生活還不錯(cuò),但有時(shí)候壓力也會(huì)很大。作為自由職業(yè)者你的對(duì)自己做的事情非常在行,要非常擅長解決問題。當(dāng)客戶的要求似乎不可能完成時(shí)我的壓力就會(huì)很大,但是不管怎樣你還是得干完。我很幸運(yùn),有一位非常支持我的女朋友,她知道什么時(shí)候應(yīng)該讓我安心寫代碼。但是當(dāng)我出現(xiàn)小型的驚恐發(fā)作時(shí)她也支持我哈哈。我是那種問題解決之前會(huì)一直思考下去的人,所以有時(shí)候很難活在當(dāng)下不去想它。
我的主要技術(shù)棧/工具/以及我現(xiàn)在正在用的任何東西是:
-
Angular2(更新:此后我切換到 Vue.js 并且再也不回頭了)
-
Django + DRF 工具
-
Ubuntu 系統(tǒng)
-
Nginx 系統(tǒng)
-
Pycharm & Webstorm 系統(tǒng)
-
13″ MacBook Pro 筆記本
顯然還有 python、sass、js、typescript、git 以及 bash 等等……
為了給未來做好準(zhǔn)備我目前正在網(wǎng)上學(xué)習(xí)幾門機(jī)器學(xué)習(xí)課程。
Roger Tan,被過分吹捧的程序猿
不知道別人是怎樣的,但……
工作日:
7:30 AM——通勤。確保兜里有 3 塊三明治 2 個(gè)西紅柿。
8:30 AM——抵達(dá)辦公室。吃 2 塊三明治 1 只西紅柿,喝點(diǎn)咖啡。讀讀 Medium 和我的電子郵件。
9:AM——處理請(qǐng)求。繼續(xù)沒干完的事情。昨晚我可能用自己的賬號(hào)給自己發(fā)了代碼??纯词遣皇悄軌蛴玫侥壳罢谧龅娜魏问虑樯?。
12:00 中午——午飯。跟我的經(jīng)理討論技術(shù)。
1:00 PM——再來一杯開啡。讀更多的 Medium。
1:30 PM——更多的工作。如果我寫出了任何有用的東西,把那東西發(fā)到我的個(gè)人賬號(hào)。如果我在 web 上遇到了任何有趣的東西應(yīng)該回家再繼續(xù)研究的話,把鏈接發(fā)到我的個(gè)人賬號(hào)。如果我需要休息,打開 QBASIC 然后隨便折騰一下,反正腦子不想失去就行。
6:00 PM——干掉***一塊三明治和西紅柿。(如果我在我媽家吃晚飯的話我會(huì)在中午把剩下的干掉)
6:30 PM——把***的郵件都發(fā)了。離開辦公室。這時(shí)候有 4 個(gè)選項(xiàng):
——去我媽那里吃晚飯。如果是月底的話,給她一點(diǎn)錢。
——去游泳池。一小時(shí)左右的放松能夠緩解我頭腦的壓力。
——去百貨店買東西。(為此我還寫了一個(gè) Android app。)
——去上課。目前在上 Java/Android 課程。
9:30 PM——替明天準(zhǔn)備 3 塊三明治。打包 2 個(gè)西紅柿。
10:00PM——如果有衣服要洗要燙的話,那就去洗燙。折騰我的業(yè)余項(xiàng)目。如果我給自己發(fā)送了任何的代碼,看看是否能夠?qū)崿F(xiàn)。如果我寫了什么東西看起來是可以重用的,把它發(fā)到我的工作賬號(hào)去。繼續(xù)干任何我在白天發(fā)到自己個(gè)人賬號(hào)去的東西。如果那是我在 web 上發(fā)現(xiàn)的一些很酷的東西,那就看看是不是可以用我知道的工具去實(shí)現(xiàn)它。如果是一段新代碼,那就研究一下??匆恍┫愀燮?。吃個(gè)蘋果。
1:00AM——上床睡覺。
周末:
9:00 AM——在一家本地的咖啡廳喝杯咖啡。上 Quora 看看。
10:00AM——去游泳。
12:00 中午——去媽媽那里吃飯或者做三明治。
1:00PM——干家務(wù)活。(也為此做了一個(gè) Android app?。?/p>
2:00PM——折騰業(yè)余項(xiàng)目。如果我在本周完成了任何事情,寫一篇 web 指導(dǎo)記錄是如何完成的,解釋每一行,然后發(fā)布到我的博客上。(這件事情比看起來要難?。┛赡苓€要為我的課程完成一些家庭作業(yè)。
6:00PM——要么再做一塊三明治然后回去繼續(xù)折騰項(xiàng)目,要么出去吃晚飯或者看電影。如果我需要做點(diǎn)不一樣的事情——可以看小說,去圖書館逛逛或者組裝一些 LBX(微型塑料機(jī)器人)。
2:00PM——上床睡覺。
這大概就是我盡管長得不錯(cuò)收入也不錯(cuò)但就是沒有女朋友的原因吧。沒有女人會(huì)對(duì)因?yàn)?PHP/JAVA/AJAX/任何你知道的語言而被晾在一邊感到高興的。
那么這幫人是不是一整天都坐在電腦前敲代碼呢?
每個(gè)程序員都不一樣。我不知道!