做個清醒的程式設計師之打造核心競爭力

2023-04-18 09:00:43

閱讀時長約 12 分鐘,共計 2900個字。

作為程式設計師,打造核心競爭力無疑是讓自己變得鶴立雞群的方式之一,可以順便幫助我們突破內卷的困境。那麼,這個核心競爭力該如何打造呢?

回顧我的職業生涯,我的個人建議是:科學地踐行一萬小時定律

所謂「一萬小時定律」,來源於格拉德威爾的著作《異類》。其中提到:「人們眼中的天才之所以卓越非凡,並非天資超人一等,而是付出了持續不斷的努力。一萬小時的錘鍊是任何人從平凡變成超凡的必要條件。」換句話說,如果想成為某個領域的高手,需要經過一萬小時的堅持不懈。

簡單換算一下,如果按每天工作八小時,每週工作五天的話,大概需要五年的時間。

這一定律同樣適用於做產品,某個產品需要經過一番錘鍊才能成為「產品」,而非Demo。所以有的公司在做產品的時候會讓員工加班,或者僱傭更多的員工來工作。如果用人力-時間來計算的話,一個員工花五年的時間才能打造出一款精品,那麼十個員工就需要花費半年的時間。雖然在程式設計領域,時間和人力通常是不能互換的,但為了解釋這個定律,我就暫且如上表述。

所以這些公司其實也就是為了做出好一點的產品,無意或有意之中,把錘鍊產品的時間快速地堆到一萬個小時。

但是請注意,這個一萬小時並非一個定值,它要表述的意思其實是堅持的重要性。不要半途而廢,輕言放棄。

回顧我十餘年的工作經歷,其實剛畢業時候以及畢業後前幾年的時候,我壓根不知道這個定律,更多是性格使然。

我這個人比較軸,如果是比較重視的東西,無論如何也要問出個結果。就像編寫程式碼的時候,如果碰到一個難解的問題,不把它解決掉,我睡覺都會不舒服。

憑著這股「軸」勁,才讓我的技術水平越來越精進,甚至後來跨界出版了技術圖書,打造了屬於自己的技能樹。

但是這裡肯定會有人反對:做軟體開發,不加班的佔少數。大多數人畢業的年齡大概在23歲,如果按照5年的時間計算,即使不加班,到28歲,也該是個程式設計高手了。而且如果按照一萬小時定律來算,豈不是人均「程式設計大師」?所以這個定律不靠譜。

其實,我自己在28歲的時候,也沒啥成就,依然是個奮戰在一線的程式設計師。所以這一萬小時對於我來說,其實也並不能完全這麼算。那麼,一萬小時定律真的不靠譜嗎?

其實並不是定律不靠譜,而是使用它的人,把它給用錯了。

雖然「一萬小時」定律已經成為人盡皆知的事情,但實際上,格拉德威爾在《異類》一書中還提到了智商、運氣和家庭環境這另外三個要素。

智商不用多說,如果在120以下,就很難成為高手了,當然也有例外。但好訊息是,大部分人的智商其實都高於120,而且都差不多。所以別輕易說自己笨,那樣的話就把大家都給罵了。

運氣的話呢,可遇而不可求,很多有成就的人都受到了上天的眷顧。所以不要迷信個人的能力有多強大,俗話說一個好漢三個幫,這「三個幫」裡面,運氣是必不可少的。但是呢,也別過度依賴運氣。換句話說,成功的時候別吹噓自己,失敗的時候別怪罪運氣。

最後就是家庭環境,不得不說,更好的家庭環境確實能讓下一代的站在更高的起點上。這個「更好的家庭環境」其實不只是指財力,還有父母輩的認知、格局等等。有的家庭很貧窮,但是父母的世界觀和做事方法都很正能量,這也是一種財富。有一些人,就是出生在這樣的環境中,一樣可以事業有成。

雖然智商、運氣、家庭環境和堅持不懈的一萬小時都是成為行業高手的前提,但即使加在一起仍然不構成充分條件。還是那句話,有的人把這一萬小時給用錯了,那無論怎樣堅持,效果都會大打折扣。

所以,我羅列幾個錯誤的使用方法。大體來說,只要規避這幾個錯誤,才能讓成為高手這件事有可能發生。

首先要說的,就是不要停留在舒適區。舉個例子,光抄寫英文26個字母,抄一輩子,也無法流暢用英語溝通,但這堅持絕對是超過一萬小時了。所以,如果已經熟練掌握了某項技能,想要更加精通,就不要重複。

很多程式設計師掌握了某種開發技能,能開發出人們用的產品,就沾沾自喜,驕傲自滿,然後不去深挖或者學習新的技能。在多年的工作中重複使用已有技能,那無論工作了多久,都是無法持續精進的,一萬小時定律不會奏效。

另一種使一萬小時定律失效的方法是失敗後不懂得總結經驗教訓,總覺得失敗是成功之母,結果一直在低水平地重複。努力了半天,看似很拼,其實仍然不夠精進。

這一點其實現實已經教訓過我們很多次了,我國很多優秀的老技術都失傳了,導致後人又只能從0開始探索,這真的不利於傳承。

這方面給我打擊最大的就是做菜,中國菜其實很多外國人都很喜歡,但要走出國門,總是困難重重,外國人做出來的中國菜總感覺不對味。其實何止是外國人,我自己按照菜譜做出來的,我自己都不一定愛吃。在我眼裡,那本菜譜根本就不是給初學者看的,因為那些「適量」、「少許」等等,初學者根本不懂掌握火候。等初學者能掌握火候的時候,或許也就不怎麼需要看菜譜了。

所以現在去網上搜「中國菜 出海」這種關鍵字,出來的結果很多都是「預製菜出海」。說好聽點是換種方式走向海外,不好聽的呢,不是活人親手做出來的東西,吃著也就沒啥靈魂了,味道自然也差很多。

反觀像肯德基、麥當勞卻能順利走向全世界,為啥呢?因為他們有標準化流程。即使是沒做過飯的人,只要經過簡單的培訓,就能做出口味差不多一致的食物。這種標準化流程,內含完整、細緻、可操作的方法論。只要按照這本「操作手冊」來,稍加練習,就能做出個八九不離十了。我甚至可以想象,如果真的有其他文明來到地球,它們拿到這本「手冊」,也能嚐到地球的美味。

所以,失敗不可怕,記得一定要總結經驗教訓。成功了也別太浪,記錄成功的過程,然後好好做覆盤,一定還能發現可以改善的地方。

說完了這兩點,繼續說第三點。

假設我們已經避開了前面這兩點誤區,現在已經在某個領域是個高手了,但依然要警惕。警惕啥呢?能力的詛咒。

有的人在自己的行業很厲害了,所以就不自覺地排斥周邊領域。就好像Java裡面的繼承,從父類別到子類,是抽象到具體的過程。在某個領域成為高手,只能算是在某個子類範圍內混得還不錯。如果不多關注相似的子類,整個人的思想會永遠困在某個子類的範圍中,看不到更抽象的維度。

我一開始從事的是Android使用者端開發,做了有八年之久。後來接觸到前端,意識到不能只把自己的能力侷限在使用者端,至少應該著眼於大前端。後來呢,又接觸到Go語言,又把腳伸向了伺服器端的範圍。

可喜的是,由於之前一直做Android用Java,熟練一門語言之後,再學習其它程式語言的時候其實是上手非常快的。當然這種「快」是停留在應用層面,對語言本身的設計理念感受還不算多,但這對於使用新語言開發產品而言基本上算是夠用了。

總結一下,打造核心競爭力,我認為關鍵在於踐行「一萬小時定律」,其實就是最樸素的堅持。但要科學地堅持,別做低水平的重複,記得總結經驗教訓,同時別忘了看看周圍的世界。

說到總結經驗教訓,我是印象筆記的忠實擁躉。從2013年開始註冊使用,一開始用的是免費賬戶,後來付費購買了高階帳戶。截止我寫這篇文章的時刻,這裡面儲存了4.76GB的資料,是這十年來我的「備忘錄」。

其實,像圖片中搜尋文字、PDF檔案中搜尋文字這類的功能,印象筆記早就有了。用好這個工具,真的能幫我們很多忙。

最後,祝願大家都能用好一萬小時定律,在自己的領域中成為大師。