做者:陳皓 原文連接:coolshell.cn/articles/19…html
那一年,我加入了某知名公司的某知名部門,在辦公室中,我看到了處處都掛着——「努力就會成功」的條幅,這個部門中大多數員工的郵件簽名都會有「努力就會成功」,我感到一種熱血沸騰的氣氛,這是我在多年工做來都沒有感覺到的,當時挺高興地能和這樣一羣人工做,也沒多想。直到有一天,我看到這些高級的軟件工程師們把本身關在又擠又吵的會議室中,拼命地加班,真是拼命,週一到週日,天天早上10點到凌晨3點甚至凌晨5點,連國慶節都來上班,就在這樣的環境和狀態下,連續幹了三個多月……上線前,QA找到了1000多個bug(你沒看錯,就是一千多個),最後這個項目用了1年多的時間來返工,原本一個6-8個月的項目,團隊被打了雞血想在3個月內完成,最終卻花了近兩年的時間來返工…… (要知道,我之前在外國公司工做,外國老闆看到團隊在長時間加班會感到焦慮的,由於加班一般表明着有很差的事情正在發生……)程序員
因此對此,我是有點看不懂的,看不懂的是,爲何這麼一羣聰明的人,放着明亮寬敞的辦公桌不用,硬要擠在一個又窄又小又吵又熱的小空間裏工做,並且要這麼透支地寫那麼重要的很關鍵的系統級的代碼……這就好像,一架在一個小做坊裏被人加班加點趕工出來的飛機,誰敢坐啊?!老實說,這羣工程師真是很優秀的工程師,他們徹底是能夠作得更好的……可是卻作出瞭如此蹩腳和糟糕的系統……他們說,這樣坐在一塊兒能夠作到快速溝通,然而,我以爲這偏偏是一種沒有章法的表現。算法
也是在這家公司,在這個項目爛尾一年前,公司感到了危機,CEO號召全體996,舉全公司之力從董事長到下面基層員工對抗外部所謂的威脅,有的部門爲了表現,甚至997,然而,在一年後,作出了一個爛得不能再爛的軟件,最終以失敗了結,不少人包括CEO也所以下課……shell
這是最讓我看不懂的一個事了,爲何這麼如此成功的公司的高級管理層會作出這樣的事情,並且還制定這樣的政策……把這麼優秀的員工以及公司大把把數以億計的鈔票投入到這種錯誤的路線上來,並且還拼命地加班…… 他們腦子裏在想什麼呢?難道他們真的覺得,有足夠多的錢,足夠多的人,而後拼命加班,就能戰勝對手嗎?……編程
「努力就會成功」,「加班就會有成就」,「勤勞就會致富」……是這樣嗎?仔細思考一些,這些話存在嚴重的邏輯問題,咱們在高中的時候學過「充分條件」,「必要條件」和「充要條件」!**「努力就會成功」這句話,把「努力」說成了「成功」的充要條件,這不就是錯的嗎?努力只是成功的必要條件之一。**你在錯誤的方向或是格局很小的方向上努力,能有用麼?你努力地要飯,你努力地當搬運工,你努力地打騷擾電話銷賣保險…… 在錯誤和小格局的方向上努力,你還以爲努力還有用嗎?性能優化
可是不少人是很喜歡「努力就會成功」這句話,這類人也很喜歡看不少小人物經過本身的努力變成成功人士的勵志的故事,爲何這種故事會被不少人喜歡甚至感動。由於這很符合大衆的心理訴求,這種訴求其實就是一種只要使力只要拼命了就能夠成功的心理訴求,由於這類人基本上都是能力有限,不知道怎麼提高本身的人,當他們看到只要拼命使力就能夠成功的觀點時,他們就會有共鳴,就會感到,不用學習那些晦澀難懂高級的知識,不用掌握和練習哪些高級技能,本身只須要在低級的事情上拼命和努力,加更多的班和幹更多活,本身就會像電影中的那些小人物同樣,總有一天會成功的……網絡
「努力就會成功,勤勞就會致富」,不但符合那些低級管理者的利益訴求,一樣符合那些能力不足不肯意學習和成長的人的訴求。由於,他們混淆了行動與進展,忙碌與多產,他們覺得能靠蠻力能夠彌補思惟上的惰性,靠拼命能夠彌補能力上的不足……架構
喜歡或認同這句話的人基本是能力上有問題的人,這類適合作勞動密集型的事。不信你能夠試試看,當一件事的難度超過必定程度的時候,那些聰明的人會找到更省力的方法,而能力上有問題的,仍是在那使蠻力。併發
回想個人過去,我在2001年那年被外包到了某銀行作開發,標準的9/10/6,封閉開發,就是用C語言在AIX系統裏堆一些銀行的交易邏輯,老實說,這個過程並無讓我學到什麼東西,也沒有什麼成長,我天天想的就是我要離開這個地方,因此,我在晚上10點之後開始看書學習到11點半,並使用工做環境動手實踐書上的代碼,一年後,我精讀了《TCP/IP詳解》《Windows核心編程》《Java編程思想》等書。而後,我找到一份外企業的工做,月薪一下翻了三倍。運維
在外企不加班,可是當時的外企壓力也很大,對代碼的質量要求的也很高,來的第二個月,就由於代碼寫的太差,差點被開掉,因此,爲了可以達到更高的標準,我天然也是很努力的,在週末甚至黃金週節假日我哪裏都不去,我就去公司,但我不是在公司上班,由於我沒有本身的電腦,因此,我只能蹭公司的電腦,這致使辦公樓的管理人員常常打電話給我讓我幫他在週末的時候管理物業…… 在這家公司是我成長最快的時候,然而,並非由於個人努力,而是由於有不少比我牛逼的人在Code Review上給我大量的幫助,在項目上幫助我,個人努力學習雖然也有做用,但更多的是高手對個人幫助。
再回想一下我之前在職場上的不少關鍵點,不是由於我加班了,而是由於在某些關鍵問題上,我跳出來解決了其它人都解決不了的問題,我解決了一個網絡通訊莫名其妙的斷掉的問題,我把性能優化了不少倍,我解決了一個不能重現的一個困擾團隊3個星期的問題(其實就是你們沒有認真讀文檔),我在入職一個公司的第一天裏就爲這個公司解決了一個歷史遺留問題……在Platform,我每週解決了bug數是全公司的其它人的總和還要多(從不加班),在路透,我帶團隊優化的系統的性能是全球全部研發中心最高的,在亞馬遜,兩週打通美國和德國的訂單和商品列表系統……我也有失敗的時候,而我失敗的時候,老是由於我搞不定事,即使是加班拼命努力也無濟於事!是的,個人職業生涯的成長,最根本的不是你有多努力,有多勤奮,而是你能搞定不少人搞不定的事!
你不信你能夠看看大家公司那些不用加班,就算什麼也不幹,公司也要花錢養的技術人員,他們的成功必定不是努力和加班加出來的,你會發現這些人拼的不是誰幹的多,而是誰解決的問題更有難。
我加班996的時候,歷來都不是我成長最快的時候,而我和一羣牛人在解決難題的時纔是我成長最快的時候。
2015年由於父親病危要動手術,因此我不能工做在家照顧父親。因而我就成爲了一個自由職業者,幫不少公司解決一些技術問題,好多都是高併發和系統穩定性的問題,有一些是分佈式架構的運維的問題,還有一些是工程管理和企業文化問題……有一些小公司的單體架構在業務上一推廣就宕機了,因而把我叫過去,我在生產線上直接re-arch,用一些很是規的手段,1-2天就把性能救過來了…… 還有就是解決一些點狀的技術問題,還幫用戶作一些design/code review……,有70%工做是真正的按勞取酬,也就是先把問題解決了再談要收多少錢,那段時間我出賣的不是個人勞動力,而是個人技能,因此,反而比打工掙得多多了,並且還比較輕閒……
有時候,我還調侃到,你在大公司裏一天寫上萬行代碼,拼命地加班,你信不信,我只用寫幾百行代碼就掙得比你多?一樣是一個簡單的 for-loop 語句,有人寫的就值1萬元一行,而你寫的則一文不值。關鍵不在於誰寫的代碼多,關鍵在於咱們解決了什麼樣的問題。你千萬不要覺得只要付你足夠的錢,你就能夠996,讓你幹什麼均可以,然而當你本身把本身當成勞動力的時候,你也就只是一個像牲口同樣的行事了!
這就好像算法同樣,你那個O(n^2)的遞歸窮舉算法,再怎麼樣也幹不過個人O(n)的動態規劃的算法。
如今我拿了投資在創業,一開始幫助各大企業建高併發高可用雲化架構的公司,如今還給企業提供金融和營銷能力,我跟客戶談業務的時候,基本不是由於我有多加班多努力地作方案,而是我能一針見血地指出用戶的問題,幫用戶解決問題。我在不少地方都見到阿里、螞蟻、華爲、HP……,一個小創業公司跟他們競爭真的很難,但我知道,要能競爭過這些大公司,這根本就不是可以經過加班996或是拼命努力就能搞定的,我必須要使用更好的方式,因此,除了更好地站在用戶的立場,可以給用戶制定更符合用戶的技術方案以外,我必需作到個人技術方案不比這些大公司的差,而這一點,徹底不是加班、努力或是勤奮能出來的,這是須要靠本身的經驗、學習能力、概括思考、和與更多牛人交流纔出的來的……當我給某銀行CIO介紹完個人分佈式系統的方案後,CIO給我微微鞠躬說:「過去一兩年,我聽過幾乎全部國內外產商跟我講的分佈式的方案,你的是我聽過的最好的方案!謝謝你!」,當我給某省電信行業公司講了一下DevOps的方案後,老總對我說:「大家真的是作事的人!」,當用戶來問我:「大家的API網關是怎麼寫的?爲何運行的這麼穩定?」……這些話都是讓我很內心很暖的話……固然,我也有被罵的時候,也有失敗的時候,但基本上來講,我沒法經過努力工做改善我思惟的不足……
咱們學計算機當程序員最大的福氣不是能夠到大公司里加班和996,而是咱們生活在了第三次工業革命的信息化時代,這纔是最大的福氣,因此,咱們應該努力地提高本身,而不是把本身當勞動力同樣的賣了!在這樣的一個時代,你要作的不是經過加班和拼命來跪着掙錢,而是經過技能來躺着掙錢……