焦慮的程序員
焦慮的程序員
讓我們再次用思考框架分析一下問題。首先,現狀是什么?關于這個問題,我并不打算討論個體,因為每個人的情況千差萬別,我準備從整體入手。
IT 行業是一個快速發展變化的行業,一方面,我們不斷地看到有人快速取得成功,另一方面,我們也聽到了許多充滿焦慮的聲音。獲得大的成功總是一個小概率事件,大多數人面對的還是日常的柴米油鹽。
我們的焦慮來自于對未來的不確定性,而這種不確定性是一個特定時代加上特定行業的產物。
如果把時間倒回到上個世紀 80 年代之前,雖然當時的生活條件一般,但很少有人會為未來的發展焦慮,因為那時候,人們可以清晰地看到自己未來的人生,盡管那種人生可能是平淡的。但今天的我們處在一個人類歷史上少有的快速發展時代,我們看不清以后的人生,大腦卻還停留在上一代人的思維習慣上。IT 行業在國內的大發展也就最近 20 多年的事,行業里很少有走過完整職業生涯的程序員。也正是因為如此,我們經常會產生了各種焦慮:
- 我剛剛入行時,有人問,程序員能做到 30 歲嗎?
- 我快 30 歲時,有人問,35 歲還能做程序員嗎?
- 我 35 歲時,討論變成了 40 歲的程序員該怎么辦。
估計等國內有越來越多的程序員走完了整個職業生涯,就會有人關心,程序員退休之后的生活應該是什么樣子了。從長期來看,只要生活中還有需要用自動化解決的問題,程序員這個群體還是很有前景的。但隨著時間的推移,程序員這個職業的溢價也會越來越低,單純憑借身處這個行業就獲得好發展的可能性也越來越低,想讓自己的職業生涯走得更順暢,還需要找到更好的目標,不斷努力。
成為 T 型人
我們再來回答下一個問題:目標是什么。也許這時候,每個人腦子里想到的職業發展路線都不一樣,但我準備用一個統一的目標回答你:成為 T 型人。
什么叫 T 型人?簡言之,一專多能。

有了“一專”,“多能”才是有意義的,否則,就是低水平重復,而這正是很多人職業生涯不見起色的真正原因。
這里的“專”不是熟練,而是深入。你可能是個有著 10 年豐富經驗的程序員,但實際上只不過是重復了 10 年解決同樣難度的問題而已,這根本就不算深入,也就沒有做到真正意義上的“一專”。
你會發現很多優秀的人,在很多方面都會很優秀,這是“一專”帶來的觸類旁通。
當你有了“一專”,拓展“多能”,就會擁有更寬廣的職業道路。比如,我擁有了深厚的技術功底,通曉怎么做軟件:
- 如果還能夠帶著其他人一起做好,就成了技術領導者。
- 如果能夠分享技術的理解,就有機會成為培訓師。
- 如果能夠在實戰中幫助別人解決問題,就可以成為咨詢師。
反過來,當你有了“多能”,也可以拓寬你的視野,幫你認清自己的“一專”怎樣更好地發揮價值,而不是狹隘地認為自己有了技術,就已經天下盡在掌握了。視野窄,缺乏大局觀,也成為了許多程序員再進一步的阻礙。
也許你會說,我在公司已經獨擋一面了,應該算有“一專”了吧?但我想說的是,可能還不夠。只做一個公司的專家,受一個公司的波動影響太大,而成為行業的專家,才會降低自己職業生涯的風險。
有時,我在面試時會問候選人這樣一個問題:“如果讓你在一次技術大會上做分享,你會講什么呢?”我真正的問題是,以行業標準衡量,你覺得你在哪個方面是專家呢?
大多數人從來沒有思考過這個問題,他們只是日常在完成自己的工作,即便在某一方面已經做得很不錯了,但依然算不上專家,因為他們缺乏深度思考。
比如,你非常熟悉 Kafka,知道它的各種參數,也讀過它的實現原理。但如果我問你,Kafka 為什么要把自己定位成一個分布式流平臺,它要想成為一個流平臺,還要在哪方面做得更好?你的答案是什么呢?
這其中的差別就是,前面所謂的熟悉,只是熟悉別人的思考結果,而后面則是一個沒有現成答案的東西。學習微積分是有難度,但同發明微積分相比,難度根本不在一個層次上。當然,我不是說你要熟悉所有工具的發展過程,而是自己要在一個特定的方面擁有深度的思考。
也許你會說,這個要求實在是太高了吧!沒錯,這確實是一個很高的要求。但“取法于上,僅得為中;取法于中,故為其下。”
其實,很多人的焦慮就源自目標太低,找不到前進的動力。給自己定下一個可以長期努力的目標,走在職業的道路上才不致于很快喪失動力。
在學習區成長
現在我們來回答第三個問題,怎么達到目標。既然要朝著行業中的專家方向努力,那你就得知道行業中的專家是什么樣。我的一個建議是,向行業中的大師學習。
你或許會說,我倒是想向大師學習,但哪有機會啊!好在 IT 行業中的許多人都是愿意分享的,我們可以讀到很多大師級程序員分享的內容。
我在入行的時候,有幸讀了很多經典之作,比如,出身貝爾實驗室的很多大師級程序員的作品,諸如《C 程序設計語言》《程序設計實踐》、《Unix 編程環境》等,還有一些像 EricRaymond 這樣沉浸編程幾十年的人寫出的作品,諸如《Unix 編程藝術》,以及前面提及的 Kent Beck、Martin Fowler 和 Robert Martin 等這些人的作品。
讀這些書的一個好處在于,你的視野會打開,不會把目標放在“用別人已經打造好的工具做一個特定的需求”,雖然這可能是你的必經之路,但那只是沿途的風景,而不是目標。
接下來,我們要踏上征程,怎么才能讓自己的水平不斷提高呢?我的答案是,找一個好問題去解決,解決了一個好的問題能夠讓你的水平快速得到提升。什么是好問題?就是比你當前能力略高一點的問題,比如:
- 如果你還什么都不會,那有一份編程的工作就好。
- 如果你已經能夠寫好普通的代碼,就應該嘗試去編寫程序庫。
- 如果實現一個具體功能都沒問題了,那就去做設計,讓程序有更好的組織。
- 如果你已經能完成一個普通的系統設計,那就應該去設計業務量更大的系統。
為什么要選擇比自己水平高一點的問題?這與我們學習成長的方式有關。Noel Tichy 提出了一個“學習區”模型,如下圖所示:
最內層是舒適區(Comfort Zone),置身其中會讓人感覺良好,但也會因為沒有挑戰,成長甚微,你可以把它理解成做你最熟悉的事情。
最外層是恐慌區(Panic Zone),這是壓力極大的地方,完全超出了你的能力范圍,你在其中只會感到無比的焦慮。
中間的是學習區(Learning Zone),事情有難度,又剛好是你努力一下可以完成的,這才是成長最快的區域。
根據這個模型,只有一直身處學習區才能讓人得到足夠的成長,所以,我們應該既選擇比自己能力高一點的問題去解決,不要總做自己習慣的事,沒有挑戰,也不要好大喜功,一下子把自己的熱情全部打散。
在學習區成長,就不要滿足于當前已經取得的成績,那已經成為你的舒適區。因為我們有遠大的目標在前面指引,完成日常的工作只不過是個人成長路上的臺階。
也許你會說,我的工作不能給我個人成長所需的機會,怎么辦呢?實際上,別人只會關心你是否完成工作,成長是自己的事情,很多機會都要靠自己爭取,前面提到的那些具體做法完全是你可以在工作范圍內,自己努力的事情。
如果你當前的工作已經不能給你提供足夠好的問題,那就去尋找一份更有挑戰性的工作。在IT 行業,跳槽似乎是一件很常見的事,但很多人跳槽的時候,并不是以提升自己為目標的。造成的結果是,不斷地做同一個層面的工作,自然也就很難提升自己的水平。
為什么程序員都愿意到大廠工作?因為那里有高水平的人和好的問題。但如果只是到大廠去做低水平的事,那就是浪費時間了。所以,即便你真的想到大廠工作,與誰一起工作,做什么事,遠比進入大廠本身要重要得多。
如果你真的能夠不斷向前進步,遲早會遇到前面已經沒有鋪就好的道路,這時候,就輪到你創造一個工具給別人去使用了。
最后,我還想鼓勵你分享所得。輸出是一種將知識連接起來的方式,它會讓人擺脫固步自封,也會幫你去創造自己的行業影響力,機會會隨著你在行業中的影響力逐漸增多,有了行業影響力,你才有資格成為行業專家。
當你成為了一個行業級別的專家,就可以在這條路上一直走下去,而不必擔心自己是不是拼得過年輕人了,因為你也在一直前進!
小結
程序員是一個充滿焦慮的群體,焦慮的本質是對未來的不確定。工作在這個時代的程序員是一個特殊的群體,一方面,這個大時代為我們創造了無數的機會,另一方面,因為程序員是一個新的行業,所以,很多人不知道未來是什么樣子的,焦慮頗深。
從目前的發展來看,IT 行業依然是一個非常有前景的行業,但想在這條路上走好,需要我們成為 “T ”型人才,也就是“一專多能”。一專多能的前提是“一專”,讓自己成為某個方面的專家。這個專家要放在行業的標準去看,這才能降低因為一個公司的波動而造成的影響。
成為行業專家,要向行業的大師學習,給自己定下一個高的目標,然后是腳踏實地,找適合自己的問題去解決,讓自己一直在學習區成長。
鳴謝:
飄渺
本文來自博客園,作者:{春光牛牛,yak},轉載請注明原文鏈接:http://www.rzrgm.cn/yakniu/p/17028638.html
歡迎各位大佬們評論指正
QQ討論群:610129902



浙公網安備 33010602011771號