為什么說程序員是一個極度勞累的工作?
最近是真的累了。不知不覺之間,已經兩三個星期沒有鍛煉,感覺身體很難受,接下來的日子必須強制自己按時鍛煉,按時休息,不然真的是不知道哪天就掛了。
過去一年多,我仗著自己年輕的身體,對計算機的熱情,在工作上多使用蠻力,仿佛一個使用樸素算法實現的程序,吭哧吭哧跑個不停。一開始,樸素算法還能在指定的工作時間內完成任務;后來任務越來越多,工作時間之內肯定沒法完成,我開始竊取時間,以更長的時間換取任務的完成。我知道這不是一種科學的工作方式,但是在那種時間壓力、任務壓力之下,也是無可奈何。無論如何竊取時間,一天總歸只有 24 小時。無論如何使用蠻力,也做不到不休不眠。遲早有一天,任務會多到讓人感覺厭倦,只是沒有想到,這種情況來的這么快。這種厭倦感已經沒法抑制了,小師妹說我最近很萎靡,師兄也說我看起來很憔悴。有一次吃完飯回去的路上,師兄不經意間問道,為什么我們干活干的這么累。也許是職位的不同,作為主管,師兄需要更多優秀的工程師,更多優秀的應屆生和實習生。當時我只是苦笑,回答不上來。后來想想,是啊,為很么我們干活干的這么累?前幾天去舟山的路上,我看完了久負盛名的Rework,中譯本名叫《重來》。自戀一點háo bù kuā zhāng,我也是一個優秀而高效的研發quán zhàn工程師,為什么卻被工作干趴下了?為什么我們一群在“頂級”互聯網企業工作的優秀工程師,才服務了區區幾萬用戶就已經累成狗,人家 37signals 幾十個人就服務了幾百萬的用戶?先給自己打臉。沉迷工作是企業文化中廣受贊頌的一種“優良做派”。我們知道工作狂熱衷于通宵達旦、加班加點,甚至在辦公室打地鋪。這些人以累死在項目中為榮,對他們來說,再大的工作量也不在話下。工作狂的行為不但沒有必要,而且愚蠢至極。過多的工作并不帶把你對項目更關注,也不代表你做了更多貢獻,這僅僅意味著你敢了更多活而已……工作狂的存在使那些不以加班為樂的員工感到無所適從。在工作狂扎堆的企業環境里,就連“按時上下班”都讓人覺得是一種無理的要求了……工作狂不是英雄,他們沒有力挽狂瀾,不過是浪費時間而已。真正的英雄早已想出辦法、搞定一切,然后回家了。時間關于碼農的工作時間,有一個臭名昭著的說法是“彈性工作制”。雖然沒有硬性的時間規定,但是也有一個約定的時間是 9 點上班 6 點下班,至于傳說中的“把活干完之后沒人管你干啥”永遠只是傳說。換個說法,就是上班時間可以比 9 點晚一些,下班時間一般不早于 6 點。在這九個小時中,排除中午吃飯和休息的一兩小時,還剩七八小時??墒沁@里面能讓我們投入腦力勞動的時間有多少呢?可憐的不足 3 小時。其余的時間總被各種亂七八糟的事情打斷,這個 IM 響個不停,那個郵件收個不停,還有人動不動弄出各種高端大氣háo wú yì yì活動、培訓來消費這所剩無幾的工作時間。于是乎上班時間干不了幾個活,好不容易等到別人都下班回家了,總算進入了 coding 時間。之前我總是說,6 點之后有 5 個小時的編程時間,就是這么回事。如果是一個普通的職業,普通的職位,自然是上班干活,下班走人??墒俏覀兏傻牟皇且话愕穆殬I,我們是碼農啊。之前我實習的時候就聽同事講過一句精辟的話:“干別的職業請假了就沒事了,當碼農的請假回來了事還是你的,還得加班干活追趕請假落下的進度”。也許是出于這個原因,我很少請假。所以說,別的職業時間被浪費就浪費,被占用就被占用,反正下班走人??墒俏覀兪谴a農誒,彈性工作制誒,所以我們白天上班陪別人玩,晚上加班干活。如果你總是為了工作而熬夜或者犧牲周末時光,其實并不是因為你有很多工作要做,而是因為你的工作狀態不佳。而工作狀態不佳就是由打岔引起的……在這個時段內,封鎖即時聊天工具,掛掉電話,關閉郵箱,叫停會議。唯一能做的就是閉嘴、干活。你會驚訝于自己居然能干這么多活……你的生活被各種干擾包圍著,只有你自己才能去發起反擊。有時真是羨慕那些真正的頂級互聯網企業的工程師,據說他們一個運維工程師可以運維上萬臺服務器,這才是搞技術的,這才是效率,比我們不知道高到哪里去。我能做些什么呢?嘗試在固定時間段關閉 IM,關閉郵箱,在上班時間給自己留出工作時間。反正也不會錯過什么重要的事情,如果服務器掛了分分鐘就收到短信了,如果老板找不到人直接就電話了,至于好事,能有啥好事?效率馬云那句“夢想還是要有的,萬一實現了呢”隨著阿里赴美上市傳遍大江南北,于是平時聽老板們演講時總能聽到的是“我們要給XX賦能,讓他們效率更高,能夠給消費者提供更好的服務,幫助他們實現夢想”之類的。阿里巴巴正是通過幫客戶賺錢,幫客戶成長,最終才使自己賺取合理利潤的,這也正是阿里巴巴能取得今天成績的文化實質。在賺錢這一點上后天下之樂而樂是合理的,然而在幫助合作伙伴提升效率上,是否還能后天下之樂而樂,就值得商榷了。如果我們自己都在以一種低效的方式工作,怎么能夠做到幫助客戶,幫助合作伙伴提升效率?一直以來,我總是感覺單兵作戰,比如我在做自己的業余項目,或者給某個開源軟件貢獻代碼的時候,效率最高。一方面可能是我能夠隨心使用業界各種幫助提升效率的工具,另一方面是代碼本身來源于我自身真實的需求。涉及到工作效率上,一方面是要想方設法提高自身的效率,另一方面是要防止自己的效率被外在因素降低。最高效的程序就是不執行任何代碼的程序,同理,那些可做可不做的事情,每少做一件,效率就提高一點。低頭拉車,抬頭看路。一頭扎進去,埋頭干你自己認為應該干的事情,這很簡單。而要從中抬頭起來問問自己為什么要這么做,則難得多。你需要問自己幾個重要的事情,以確定你是否在做真正有意義的事情:為什么要這么做?你在解決什么問題?這真的有用嗎?你加上去的東西有價值嗎?這種改變真的會起作用嗎?這種方法更簡單嗎?有其他更值得做的事情嗎?這樣做值嗎?有時候放棄其實是一步好棋,即使你已經為之投入很多努力,也不要繼續把大好的時間浪費在不值得做的事情上。之前師兄跟我說過,接需求的時候先多想幾個為什么,不能隨隨便便來一個接一個?;叵胱约哼@一年來,還真是沒做到,沒做好。工具還沒有肉翻到美帝去當碼農的經歷,身不能至,心向往之。向往的理由之一,就是真正的科技型企業,是會對身在其中的技術人員產生技能加成的,讓技術人員能做到之前做不到的事情。公司有平臺、有工具,也有流程、有包袱。前者幫助開發者提高生產力,后者幫助kēng hài開發者降低生產力。很開心看到最近技術部的研發流程向著輕量化的方向邁進,果然是新 Boss 新氣象的節奏。說到平臺和工具,不得不贊的就是阿里系技術棧中各種狂拽酷炫屌炸天的 Java 中間件。如果有一天我不想再做業務系統了,那么中間件也許是我的一個選擇(當然我更想做的是當獨立開發者用自己的作品養家糊口,然后心情好的時候為自由軟件貢獻代碼)。然后除了中間件,我們似乎就沒有什么比較通用的拿得出手的工具了,每個應用自己寫自己的后臺,自己做自己的工具。說到平臺和工具,不得不說的就是各種基礎設施了,從代碼倉庫、集成系統,到知識庫、文檔庫都不像是一個世界級的互聯網企業該有的樣子,反而像是一個傳統的國內軟件企業。面對這樣的基礎設施,真的是連黑都懶得黑了,有這點黑的功夫,還不如想想怎么把自己從刀耕火種中解救出來,然后開始行動。其實有些地方企業沒做好反而對員工來說是個機會,就像每出現一個看起來有前途的新語言新平臺,一幫碼農就蜂擁而至,仿佛開荒一般的貢獻各種基礎類庫,然后成為新平臺上的元老級開發者。很多時候我們為開源項目貢獻代碼,一是希望世界因為我們的貢獻變得美好一點,二是可以和來自不同地區的同行交流,高手過招(Github 是目前全球最大的男性同性交友平臺),三是可以使用各種最新科技高效的做一些有意思的事情。之前看過一篇文章,說的是《為什么優秀開發者進入 Google 后就不參與開源了》,文中列舉了幾個原因,其中一個就是 “Google 的開發環境太好了”。雖然現在的 Google 已經不是當年的樣子,但是至少它曾經是技術人員的理想環境。開發者和公司之間的關系其實很微妙的,雙方都希望對方先付出,自己后回報。開發者希望公司提供良好的工作環境,完善的基礎設施,然后自己開始創造價值;公司則希望開發者先創造價值。這是一種博弈,也是自由市場的自由選擇。當我們不夠牛逼的時候,只好自己動手豐衣足食。雖然不可能讓自己的工作環境變得向曾經的 Google 一樣,但是能夠向這樣的目標前進一星半點,總歸是好的。原文鏈接:https://blog.csdn.net/itcast_cn/article/details/103373275