程式設計師,感覺技術停滯了怎麼辦?

2021-08-04 16:16:22 字數 2539 閱讀 8032

在舊文《技術方向的選擇》的末尾,我寫道:「停留在原地糾結,什麼也不會改變。」。當做出了選擇就該出發了。為了習得一門技術或技能,我們需要不斷地練習,但如果一直在練習,卻感覺不到進步,那麼再努力的人生,也是枉然。

關於習得甚或精通一門技能,最著名的理論如今恐怕是「刻意練習」,如果非要在這份練習上加上乙個期限,那就是:一萬小時。

關於「刻意練習」,不少書或文章都講了很多案例來說明它的有效性,但總結起來就下面三點:

只在「學習區」練習,練習時注意力必須高度集中。

把訓練的內容分成有針對性的小塊,對每乙個小塊進行重複練習。

在整個練習過程中,隨時能獲得有效的反饋。

刻意練習是為習得真正的技能所設計的,它和獲取知識不同,知識就是那些你知道即為知之,不知即無知的東西,可以通過讀書獲得。但技能是那些你以為你知道,但如果你沒做過,就永遠不會真得知道的事情。

如上,刻意練習的首要一點是練習必須在學習區中進行。以程式設計師的程式設計技能為例,到了一定階段,你感覺技術能力提公升不了的原因,很可能就在於你每天都在程式設計寫**。程式設計師的工作初期基本每天就是程式設計寫**,在早期你不夠熟練時你還能感覺到進步,這種進步就是從不熟練到熟練。但單純的程式設計實戰其實並不能持續地提高乙個人的能力,想想體育運動員,沒有乙個運動員每天的過程就是參加比賽。

在程式設計師足夠熟練了之後,每天的這種實戰型工作就不會再是處於「學習區」的練習了,而是進入了「舒適區」的自動完成。真正的專業競技體育運動員每天的日常訓練都是在「學習區」的刻意練習,而上場比賽則是進入「舒適區」的自動完成。而很多熟練程式設計師的日常工作則是在「舒適區」的自動完成,工作之外則是另一種「舒適區」的娛樂休閒。

停滯,就是這樣發生的。

重複的刻意練習,讓我想到了一種數字 —— 無理數。無理數,是一種無限不迴圈小數,取其無限不迴圈之意。

刻意練習的關鍵點之二,有針對性的重複練習。重複,這個詞很誤導人,重複的本身是練習過程,而非練習內容,每一次的重複過程中都會根據反饋進行有針對性的調整,以取得練習效果的進步。

一直在重複但卻感覺不到進步,除了前面所說的脫離了「學習區」的低效重複,還有可能是重複的次數還不夠。有時我們會不自覺地低估了習得一項技能所需要的重複練習次數。近年在我身上就有乙個鮮活的例子,在工作十年後我重啟了學習掌握英語這門技能的練習,但第一年完全低估了需要重複練習的次數和強度。

第一年,僅僅在每日的工作之餘,花上一節課的時間(近一小時)來進行聽說讀寫的練習,即使每日都能保障一節課的時間(實際並沒能),一年下來不過區區 300 多小時,分散在聽說讀寫四個分支上,結果就是沒有哪一項在那一年結束後讓我感覺到一點點的進步。

萬維鋼有篇文章叫《用別人**自己》提到了乙個概念:基礎比率(base rate)。

所謂基礎比率,就是以前的人,做同樣的事,做到的平均水平。

如果別人做這件事需要那麼長時間,基本上你也需要那麼長時間,因為你沒有那麼特殊,只是每個人都會覺得自己是特殊的、例外的。所以,當我一想學英語人群的基數和真正算是掌握並熟練運用這門技能的人數,以及他們所花費的時間,我就知道自己大大低估了需要重複練習的次數。

重複的刻意練習總是辛苦的,但這個過程不應當讓你感覺痛苦。就像跑馬拉松的人,他的目標是跑完全程到達終點,過程是很辛苦的,但如果鞋子裡鑽進了一顆小石子,那麼就不僅僅是辛苦了,還很痛苦。先要解決痛苦的根源,才可能跑完全程到達目標。

重複,是可以沒有痛苦的,但必然辛苦,從沒想過會舒適的跑完全程。

在刻意練習過程中,隨時能獲得有效反饋其實是一件挺難的事。

就像程式設計師學習程式設計技能,誰來給你反饋呢?我們又不像是職業競技運動員,有教練,還有各種分解技戰術動作的分析師,分析你的各種賽場或訓練表現,給予反饋。更談不上針對個體的薄弱環節,隨時獲得反饋進行修正。

程式設計師最直接的反饋來自簡單粗暴的 bug 或者系統故障。進一步,如果公司有一定規模可能會有測試或 qa 人員來給程式設計師提出反饋。更進一步,如果公司建立起了很好的**評審文化, 那麼會有其他程式設計師對你的**與程式設計工作作出反饋。但若這些都沒有,我們還能如何獲得有效反饋?

在我早年的工作中,公司確實就沒有能提供反饋的機制,無導師、無測試、無**評審,就靠簡單粗暴的 bug 和系統崩潰來提供反饋,我後來還是找到了兩條你可以主動把握的反饋機會。第一,主動找你覺得值得信任或佩服的同事幫你找找茬,提供點反饋。第二,即使已經實現了乙個功能,再想想有沒有開源的類似東西,去搜一搜,看看開源的實現是怎麼做的,在這個過程中就完成了通過別人的**來向自己的實現提供反饋。但這樣得做法都是在主動加重自己得工作負擔,也是走出舒適區的第一步。

一些大公司都會有自己的**維護與分析工具,並隨時根據提交情況給出評測報告,這就是一種隨時提供有效反饋的自動化機制,身在其中很多程式設計師往往忽視了這一點。

珍視,每一次反饋的機會。

...刻意練習,一萬小時,多麼神奇,似乎無所不能。還有什麼是一萬小時刻意練習無法解決的問題嗎?目前對刻意練習最大的批評是,刻意練習的案例證據多是來自「認知複雜性」較低的活動,如棋類、樂器、體育運動等,但對於「認知複雜性」較高的活動,如銷售、管理、投資等作用有限。怎樣通過刻意練習成為一名卓越的銷售、ceo 或像巴菲特一樣的投資大師,從**練起?練什麼?怎麼練?

一技之長背後是一萬小時,然後是兩技之長,然後到十技之長麼?人生哪有那麼多一萬小時,最後留下一點思考,也許這是下一階段需要回答的問題。

[1] 瞬息之間, 程式設計師,感覺技術停滯了怎麼辦, 

程式設計師,感覺技術停滯了怎麼辦?

程式設計師,感覺技術停滯了怎麼辦?就是比咱思考的有深度。原文 在舊文 技術方向的選擇 的末尾,我寫道 停留在原地糾結,什麼也不會改變。當做出了選擇就該出發了。為了習得一門技術或技能,我們需要不斷地練習,但如果一直在練習,卻感覺不到進步,那麼再努力的人生,也是枉然。關於習得甚或精通一門技能,最著名的理...

外包程式設計師怎麼辦??

你也看不起做外包的程式設計師?看見這個標題,我其實腦子稍微思考了下,大概想了幾秒鐘。其實這些年it外包一直充斥在我們的周圍,心慌不?你只要一更新簡歷很快就會有外包公司打 聲音好聽的hr姐姐讓你去面試。而且不厭其煩的好好和你溝通讓你去面試。為什麼會出現這種狀況?可以這麼說吧,外包公司一年四季都是在招人...

程式設計師累了怎麼辦?

很多文章都可以成為這一方面的證據,證明這已經是it行業乙個普遍現象。因為我已經有處理過職業倦怠的經驗,所以我想要更深入地探索這個問題,幫助大家解決甚至預防它。程式設計師比其他領域的專業人士更容易產生職業倦怠。至於為什麼會出現這種情況,我也沒有乙個明確的答案,但我認為有四個主要原因。先從基本的開始。吃...