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