1. 程式人生 > >程式設計師的成長焦慮

程式設計師的成長焦慮

作者 | 黃峰達

 

技術在進步,人也得成長。開啟社交媒體,無處都不在販賣焦慮:

  • 震驚!90 後的程式設計師,至今都沒有一個活過 30 歲?
  • 為什麼 35 歲的 85 後程序員,都找不到工作了?
  • ……

那些寫稿的人,有一天突然自己焦慮了——是不是這真的就是一種趨勢?年底了,也得按照慣例 “焦慮” 一下成長。照舊,作為每年年底的覆盤(Review),這仍然是一篇對於未來的思考和總結。

 

 

一、職業發展 vs 個人發展

 

國內大部分的組織,哪怕是大型的公司、企業裡,都缺乏有效的技術人員發展路線。或許是國內的程式設計師都比較 ”年輕“,或者是現有的大部分程式設計師都停滯在現有的階段——資深階段。這無論是 BAT 裡的 P7、P8,T2.3、T3.1,還是 ThoughtWorks 裡的 Senior Consultant,這都是一個很長的關卡。

原因,除了這是一個等坑期,還是一個迷茫期。坑位只有有限的幾個,而等坑的人卻有那麼多。而往往不是一個光靠技術就能往上走的坑,為了更高的 Grade/Title,需要的都是技術 + 業務。這樣一看,呀,純技術路線在哪都發展不下去。那樣一來,我們需要往何方走呢?

資深的下一個 Grade 就是 Lead Programmer,如 Basecamp(37signals,創造了 Ruby on Rails 的公司)在 GitHub 上標明的 Lead 程式設計師的要求:

  • 在多種程式設計環境中擁有深厚的專業知識
  • 能夠為大型專案執行和指導小團隊
  • 能夠跨多個領域執行專案(例如,需要 API 後端的原生應用)
  • ……

換句話來說,我們要能夠完成站在整個系統的角度來看待問題。作為一個資深的程式設計師,或者 Tech Lead,我們往往從自己的那部分前端、後端出發,來考慮整個系統的問題。而作為一個更高級別的程式設計師,需要擁有更好的功能,來掌握更多的技能。但是,這一點讓我又考慮去了程式設計師的專與廣的問題:

  • 作為一個 Junior 級別的程式設計師的時候,我們要追求廣度,它能讓我們找到適合的方向。
  • 作為一個 Senior 級別的程式設計師的時候,我們要追求深度,它能讓我們證明自身的價值。
  • 作為一個 Lead 級別的程式設計師的時候,既需要廣度而又需要深度。

這大抵算是對於大部分人來說,如我,會有一個更清晰的方向。

 

二、定位:工程 or 研究

 

從長期來看,作為一個軟體開發工程師、諮詢師、前端工程師等,我們不得不為自己在職業上定一個位:WHO AM I ?在不同的職業生涯裡,我們的定位都是不同的。

從 IT 領域上,大抵上可以分為:工程師 + “科學者”/研究員。前者偏向於工程,後者偏向於理論研究。看筆者文章的人,大抵都屬於前者。但是吧,又得投入後者。

一旦,我們找到了合適自己目前的位置,便得去關心所在領域的最佳實踐。如對於工程來說,我們要關注的東西是:

  • 可演進式架構
  • 編寫可維護的程式碼
  • 更好的工程實踐

對於理論來說,我們關注於原理與設計。要合理的分配兩者的學習比例。

若你和我一樣是一個工程師,又喜歡研究理論。日常的程式設計中,多數的研究相關的內容是用不上的,往往是工程上用的東西比較多。不過只靠實踐,往往也是不夠的,還需要進行一定的理論和建立研究。在合適的時候,需要適當地分配一下比例,如 80:20 的比例。

在職業階段的不同,又需要對程式設計領域細分,如前端、後端、原生應用、blabla。只是這點細的分類,並沒有太多的差異。從筆者的經驗來看,能用一個語言程式設計的人,再換個語言編寫業務程式碼,並不是一件困難的事。唯一麻煩的地方,角色的轉變——你可能沒有意識到現在的位置,它需要你去做什麼,而不是抗拒它。

 

 

三、靠持續投入,而依賴才華

 

職業生涯的早期,寫程式碼靠的是才華。但是隨著時間的變化,若是沒有持續地投入,也有才盡的時間。就這一點上,就 IT 行業,又或者是不同行業中,我們都可以看到一些端倪。

今年勞動節,我和花仲馬去馬來西亞玩的時候,我們買了本春上村樹的《身為職業小說家》,即《我的職業是小說家》的繁體版本。繁體版本是傳統的堅版,由右到左的排版方式,我便又饒有興趣的看了一遍。最大的體會便是:越有造詣的人,則越投入得越多越長。

如村上春樹,上班族打卡,早上起來雷打不動坐在寫字檯前寫作 5、6 個小時,每天必須完成四頁稿紙。三十年來天天堅持跑步,真是一點兒也不浪漫。

如若我們看待程式設計的方式是,它不僅僅是收入的來源,還是樂趣的來源。那麼,我們會持續不斷地投入。而這種投入,依靠的還是一定自律。如若只是每天完成工作上的程式碼,怕也算不是投入。除非,它能為我們帶來更多的樂趣。對於工作能否帶來真正的樂趣,智者見智吧。

我害怕的一種生活狀態,便是每天加完班,加到家裡,再也不想寫程式碼。哪怕是再好的才華,再高的興致,也容易被磨滅開來,成為別人家的機器。

而所謂的才華,大抵便是悟性。而悟性這種東西,往往不是練出來的,更可能是看出來的,或者是對話出來的。才華,便也是筆者最討厭的玄學——說了,我自己也不懂所以。而這種才華,便也算是運氣,有時候是在非自己的工作領域中領悟出來的。

自律、體力、耐性,就是這麼不佛性的三要素。

 

 

四、適當地輸出

 

在 IT 行業裡,做得有聲有色,得是能拿出一些作品。或是藉助於公司的產品,來體現自己的出色;或是創造自己的專案,來展現自己的樂趣;又或者是寫自己的文章,表達自己的程式設計觀點。

輸出,大抵是到目前為止,我使用得最好、廣泛、有效的技術。因為看到它對自己帶來的一系列成長,便也將它作為自身技能的一部分,持續不斷地磨鍊。輸出的內容可以是:演講、程式碼、開源軟體、文章。

而輸出有一個大前提是輸入,如程式設計實踐、閱讀書籍等等。如此說來,這種活,倒也不是阿貓阿狗能輕輕鬆鬆做到的,還得經過一系列的思考,。但是總有一些人吧,總是可以輕鬆地複製和貼上別人的觀點。若沒有加以實踐,有些東西還是經不得推敲的。在閱讀的時候,只需要細微地思考一下,也便能識別出來一些端倪。

如我擅長的寫作,對於自己而言,還有別的技能提升:

  • 系統性思考
  • 邏輯思維
  • 觀察能力

在寫文章的過程中,會不斷強化這些技能。如果我們想快速進入一個領域,便可以以輸出來強化知識輸入的能力。

這輸出不僅僅是一個能力提升的話題,還在持續不斷地提高你的影響力。再好的技術,沒有方式和能力對外展示出來,就不要怨天尤人。從技術實力上來說,我大抵是比同齡人的平均水平,多一點點。但是多了這份影響力,便多了不止一點點。它可以用在擴大團隊規模上,提升整體的技術水平。

 

 

五、持續的挑戰

 

持續的挑戰,在這裡指的是:嘗試新的可能性,學習新的技術。

若是每年都安安逸逸地,沒有一點新的氣息,再好的鬥志,也會被歲月磨去。這樣一看,學習什麼東西,似乎一點兒也不重要。我們要的是一種心態,它能讓我們接受新的事務——雖然我們可能並不認同,但是也能接受它的存在。

哪怕是隨著年齡的增大,其它事務的不斷增多,學習的時間越來越少。我們只有持續不斷地學習,保持一種學習的心態。面對一些新的事務,便也不會有害怕的心裡。

到底也是這些年,看到越來越多的技術人員,因為各種原因,荒廢了技術。便也意識到這方面的戰略意義,你呢?是不是也存在這樣的問題呢?

 

 

六、領域知識

 

某個框架,某個語言,只是解決問題的方式之一,而非是唯一的解。

不討論框架,不討論語言,我們只討論領域。而我們討論領域的時候,指的是技術及非技術相關的領域。而技術只是其中的一個領域,但是是非常小的一個領域。不過,從技術的角度來看,跨領域的工程師機會比較多,可能性也比較高。一旦如此,我們也越能解決跨技術領域的問題。又如我們在開頭所說,它有助於我們成為更好的程式設計師。

與此同時,我們會發現,我們往往缺少技術以下的領域知識,如金融、物流。而這是這些領域知識,它可以為我們的職業生涯帶來更多的價值。越是我們平時覺得不起眼的東西,在我們尋找工作的時候,有相應的背景,反而能為我們帶來更多的價值。

作者簡介:黃峰達(Phodal),ThoughtWorks Senior Consultant,CSDN 部落格專家。長期活躍於 GitHub、CSDN,專注於物聯網和前端領域。出版著作《自己動手設計物聯網》,以及《Growth:全棧增長工程師指南》等六本電子書,並譯有《物聯網實戰指南》。

本文經授權轉自作者公眾號「Phodal」。

 熱 文 推 薦 

☞ 為什麼 ofo 徹底涼了?| 暢言

☞ 12306 承認使用者資訊被賣;位元大陸兩 CEO 均卸任?蘋果又被起訴 | 極客頭條

☞ 12 月 Web 伺服器調查:“王者” nginx 增長最快!

☞ 無業務不技術:那些誓用區塊鏈重塑的行業,發展怎麼樣了?

☞ 下一次 IT 變革:邊緣計算(Edge computing)

☞ 12306 脫庫 410 萬用戶資料究竟從何洩漏?

☞ 年度重磅:《AI聚變:2018年優秀AI應用案例TOP 20》正式釋出

☞ 老程式設計師肺腑忠告:千萬別一輩子靠技術生存!