
導讀:本文是發散工作者的福音,可以長期閱讀與收藏。
怎樣才能成為網際網路大廠程式設計師中的一員?
不管你是一個正在忙著工作的工程師,還是一個想要得到他人關注和技能提升的初級程式設計師;不管你是一個正打算變換路線,從公司離職去創業或者從事其他工作的領導者,還是一個剛畢業的沒工作的大學生。
這些都沒關係!只要你是一個程式設計師,沒有什麼技能比專注和鑽研對你的成功更重要。
Cal Newport 在他的著名的 《 Deep Work 》中寫道:
“The Deep Work 假設:擁有深度工作的能力正變得越來越罕見,同時,它對我們的經濟生活也越來越重要……少部分擁有這種技能的人,在工作和生活中使用它,將會受益無窮。”— Deep Work p.14
如何變成一個被市場需要的開發者,我將使用一些《Deep Work》的觀點並結合我自己的思想寫出來。
如果你是一個在技術領域裡實踐的人,我強烈建議您閱讀它。
從恐懼程式碼到技術負責人
說到程式設計,我是自學成才。但是,我是20歲才開始程式設計的。我一直覺得自己是一個最終能進入創造性領域的藝術家。
我做到了。
大學畢業後,我創辦了一家為小型本地企業提供影像和網頁設計的公司。我是 Photoshop 的專家,並且開始覺得 HTML 和 CSS 是很難的。更惱火的是,只要寫一行 PHP ,我就得外包出去。
我被程式碼嚇到了很長一段時間,在那期間,我都敢不碰它,都把相應的工作交給有計算機科學學位的人。
“敲錯一個程式碼,客戶的業務都會不能執行…”,我覺得。老實說,我的能力不太靠譜(在沒有版本控制軟體之前,FTP都不能回退程式碼)。
而現在我是一家財富50強公司的技術負責人,所開發的是一個每月有數百萬使用者的產品。
我是怎樣在短短幾年內做到現在這樣呢?🤔
我的“秘訣”就是專注和深入工作。沒什麼特別的。我花時間鍛鍊自己怎樣長時間專注於一件特定的事情——不分心。
程式碼是一種藝術
程式設計是一個創造性的追求。
對普通人來說,它是技術並且枯燥無味,但你是一個創造者。你正在創造世界上沒有的東西。所謂“沒有”,就是你腦海中對於應用程式的一個想法,又或者是產品經理的功能需求。
它並不存在,但你要創造它。不是用繪畫也不是用文字,而是用程式碼(好吧,有文字,只要不是保留字)。
如果你有一些想法,但要高水準的實現,那麼,你就必須練習。
當你能更好的專注於某件事很長一段時間,輸出的數量和質量都會提升。
藝術,音樂和寫作都需要很長一段連續的時間練習。科普一下,在此期間,腦細胞之間的突觸上的髓鞘變稠。程式設計也不例外。
你會在練習和掌控時間上越來越好。當你的練習越有效時,你可以在更短的時間內,獲得更好的成績。
沒錯。你就能成為那個10倍高效的開發者(5倍,2倍還有1倍,也很棒)。
我說明一下,我其實很討厭這種流行語 “搖滾明星”、“忍者”、“10倍開發者”。可能每一個開發人員都是這樣想的,但是公司和招聘部門人員很喜歡這樣稱呼。
儘管很俗氣,但是在 “10倍開發者” 理念背後還是有很多真理的。
它不是說一個人可以代替十個人,而是說一些開發者能在更少的時間更高質量的完成更多的事情。他們一直做到了這一點,並不是比別人更努力。
這種能力不是與生俱來,也不是你可以 “開啟” 的東西。它是你可以而且必須練習和訓練的技能。
我在招聘方面實踐了十幾年,我會告訴你公司都想擁有一個由10倍開發者組成的團隊。但是,那是不現實的。
開發職位空缺多於合格的開發人員。公司連一般的合格的開發者都很難找到,更別說找(多少)倍開發者了。
“高階管理人員認為,缺乏優秀的開發人才是他們成長的最大潛在危險之一。” ——The Developer Coefficient
找到優秀的人才真的很難。
大多數公司會招聘10倍開發者,但是他們也很樂意招聘5x、2x,甚至1x的開發者。
1x開發者(對,我就是)是可以完成工作的,不多不少。而且,還有大量關於天文成本的不良僱傭關係的報道。

將程式設計技能與專注深入工作相結合所需的2個步驟
是時候提升你的職業生涯了。你有大量的機會可以獲得喜歡的工作並且得到很好的發展。
如果你正處在創業階段,提供的也是相同的課程。因為對你們來說,更重要的是時間的有效利用。
它可以幫助您:從初級開發者到高階開發工程師;從0.5x開發者到5x開發工程師;一週只有10個小時額外時間也能發展副業。
是的。苦難,就是你生存的畢經之路。
“想要經濟自由,你就要掌握快速學習複雜事務的技巧。所以你需要深度工作。如果你不具備這項技能,那你很可能會隨著技術的前進而落後。”— Deep Work p.13
學習專注於事物是艱鉅的。
首先要意識到的是,學習專注不是一件容易的事情。你不能一開始就寫出高質量程式碼的專案。特別是如果你從來沒處理過在容易分心的事情上不分心。
學習專注需要練習。需要練習的任何事情都意味著困難。如果不是,那你可能是天生就擅長它。
你開始掙扎,不要緊張,我們將會從小事情開始。
不要將忙碌與生產力混淆
深度工作不是將你自己鎖在小黑屋裡,強制自己一直漫無目的,瀏覽程式碼長達14小時。僅僅因為你正在做這件事,但並不意味著它就值得做。
你需要弄清楚哪些事情是重要的,哪些是不重要的。這超出了本文的範疇。如果你打算花時間學習如何專注於事物,那你就要做一些付出努力容易有高回報的事情。
嗯,它就像太陽和放大鏡。
分心的工作就像太陽一樣,能量分散到各個方向。所以你站在太陽下並不會受傷。
學會用放大鏡集中那些分散的能量,毀壞力量就從0升到10。我們想把有限的力量留給重要的事情(太陽最終會落山)。
第一步——消除干擾
同時處理多個任務是一個謊言。如果你認為,在你看各種訊息或者閱讀新聞時能寫高質量的程式碼,你是在自欺欺人。
我們生活在一個注意力分散的世界。我們研究的技術是一把雙刃劍。在收到一個新訊息通知時,就沒有那種甜美的多巴胺了。
消除干擾是專注和深度工作的基礎。
-
將手機處於靜音狀態,或者你在一個不需要通話的地方可以關閉手機。我使用Forest APP(一款鍛鍊專注力的軟體)阻止我玩手機。面朝下,可以放在觸手可及的地方就行。
-
關閉無關緊要的訊息。這是一個巨大的挑戰,因為我有強迫症,必須清除我手機上沒有閱讀的訊息清單。這些訊息大都有噪音,所以關閉它對於我工作來說是一件好事。
-
關閉其他的應用程式,就是那些能透過通知來分散你注意力的APP,比如:Outlook、微信。
-
這一項是最艱難的事情之一——關閉與你的任務無關的任何瀏覽器視窗。現在,做到不去瀏覽你喜愛的網站。我喜歡HeyFocus應用程式(收費的要20美元),也有很多免費的擴充套件程式。
-
戴上耳機——這將有助於你不被旁人打擾,重複聽著同一張專輯也是一個保持專注的有效途徑。它可能是一個標誌(通知你的大腦要開始工作了),或者是一件順暢的事情(因為音樂能使你心情愉悅)。不管是哪一種,很多開發者都推薦這個。
第二步——番茄技術(秘密武器)
讓你8小時內不能分心,你可能會覺得很難,不要擔心。我們將會使用“番茄工作法”來應對每一天。
其實有很多方法,但是我們最推崇“番茄工作法”,下面我就會介紹它。
工作25分鐘(一個番茄)
你將會工作25分鐘,專心做一件事。這段時間的工作就叫一個“番茄”。

使用計時器。我以前在學校用過一箇舊的沙漏。如果你真的想愛上這個番茄工作法,那麼就用上番茄計時器吧。
然後休息5分鐘
休息時間一到,你必須走開。接一杯水喝或瀏覽一下新聞;去洗手間。不管你做什麼,反正工作已經結束了,完全跳出工作。
一個番茄裡只能有一個任務
這個任務可以是修復一個bug,或者做一個新功能,又或者是看影片學習新框架。
如果任務太大(就像“開發一款app”),你必須把它分成更小的任務塊,那種大約25分鐘能完成的任務塊。
比如一些任務需要好幾個番茄才能完成。編寫功能模組可能需要3個番茄,而編寫測試可能也需要兩個。
又或者一些任務太小,你要把他們批次計劃到一個番茄中(例如:回覆5張JIRA任務)。
重點是,一項或多項任務,它們必須是同一種“型別”的工作。
其實我們拖延的主要原因是,任務太巨大且完成太艱難,所以我們被嚇到了。如果你的目標是“寫一本書”,你可能永遠都不會開始。當你把它分成小的任務塊,就像“寫大綱或者寫300字”,路線就會非常清晰。邁開腳就更容易更可行。
儘管這篇文章是關於怎樣成為一個更好的開發者,而不是拖延症,但是他們在大多數情況下可以算是同一件事。
如何工作不分心
參閱步驟1,如果你分心了,那麼番茄就不算數了,你得重新開始。
最多工作25分鐘
如果你從未使用過類似於番茄法這種方式,那麼可能25分鐘對你來說還是比較困難。那你就從10分鐘開始,然後是15分鐘,然後20、25分鐘。
當你真正掌握它時,你都可以工作55分鐘哦。
每天工作多個番茄
第一次嘗試工作無干擾,你可能一天只能達到一個25分鐘。沒關係,爭取每天多一點就好了。

這如何使我成為一個更好的開發者

我們現實點。如果你上班的時候,一會寫程式碼,一會線上聊會天,一會發封郵件,再和同時聊會八卦,那麼這將對你的工作和事業沒有任何的幫助。
你只是看起來很忙,甚至還時不時幫助別人釋出一些程式碼。
但是,事實上,比起專注力分散的一整天的工作,幾個小時不分心的深度工作產出的質量和數量更高。
一開始是一個番茄。最後,你就會收穫好幾個番茄果實。
接著,你就會收穫幾天的番茄。接著,收穫幾周、幾月的番茄。
你會發現它越來越容易的變成一種流程(習慣),而且會更頻繁的發生。
這便是黃金。這就是你突破自我的時候!
這是讓艱難的事情變得容易的時候!
這是你程式設計技能成倍增長的時候!
高質量程式設計師的市場需求正比以往都大,通往成功最靠譜的途徑就是深度專注的工作。
祝你成功。
作者:聆聽音樂的魚
相關閱讀: