標籤:

工程師進階之路

本文是連載文章。這個系列會從認知,學習,編程,職業這麼幾個角度來分享我對工程師的學習成長之路經驗和思考。

這是認知部分的第三篇文章。

通常工程師的職業階段會按照職位進行劃分,比如高級工程師,技術經理,構架師,CTO等。但頭銜本身不代表著什麼,能力的進階才是核心競爭力。某些時候,頭銜反而會帶來一種虛假的價值感。我更願意把工程師的職業進階分為初階,中階,高階,每一個階段都需要更強更廣的能力。有了這麼幾個階段,就能時常檢視自己,當前處在哪個階段,從而努力進階。

初階,解決技術問題,自主完成任務,不挖坑。

這一階段是成長最明顯的階段,完成由一個菜鳥到合格工程師的轉變。 這個階段成長動力很強,很容易感知到自己由零到一的變化。在這個時候要「深挖洞,廣積糧」,利用好快速成長期,培養良好的職業素養,一是要勤學習,多思考,老司機更願意教愛思考,愛學習的新人;二是養成編程習慣,如編程規範,注釋風格,做到代碼清晰可讀,不挖坑;三是向職業化轉變,什麼叫職業化,就是做事靠譜!任務交給你,別人放心。

中階,能夠負責局部問題,帶領小組開發,參與解決關鍵技術問題。

經過初階的積累,你已經有了部分的技術積累和解決問題的經驗,這時候就要挑戰更高階的問題。比如,獨立領導一個模塊的開發,解決關鍵性的技術問題。這些要求你用更全面的視角來看問題。不僅僅是處理開發任務,你需要對一個小團隊負責,甚至是產品來負責。加強自己對產品技術的理解,當前技術方案有什麼缺點?可能會引起什麼問題?如何改進?以及對團隊協作的理解,如何團隊協作?如何提高效率?

高階,負責產品核心技術,決定全局的技術方向,規劃整個團隊的發展。

高階階段要求對產品的技術領域有深厚的經驗,對該領域的技術方案有清晰的認識和實踐經驗,對團隊的管理協作也要有長期的經驗。

在這個層面上,更多要從產品以至公司的角度出發,考慮技術該如何更好的構建產品,推動公司的業務發展。同時還要考慮團隊如何發展,涉及到團隊的構建,管理,協同,達到更好支撐業務能力的目的。

說完了工程師的幾種階段,還有非常重要的一點,進階過程是主動的。換句話來說,就是沒有人會要求你變強,這一切的過程都是由自己主動發起,積累習得的。如果你願意待在自己的舒適區,不求進步,那麼也不會有人來要求你這樣做。從一個階段到更高階段意味需要承擔更多的任務和工作,從打小怪到打大怪再到打Boss。主動進階的關鍵就是「主動承擔,主動攬活」。想要成長,就必須承擔超出原有能力範圍的工作,拉伸自己的工作能力,直到適應新的工作難度。

所以除了專業能力之外,還有兩個重要的通用能力需要在進階的過程中不斷培養。

  • 培養溝通協作的能力
  • 培養跳出舒適區的能力

我們很容易忽視這些能力的培養,對工程師來說,這兩種能力有那麼一點點反人性。我們都有那麼一點點技術從業者的清高,認為代碼寫的好就行了。其實越進階就越需要培養這些通用能力。一個大型的產品涉及到的相關人員可能有數百人,橫跨了多個部門,如何來把這件產品做好?如何確保業務不出亂子?靠的不是單打獨鬥的能力,而是集體力量。

很多時候跳不出舒適區,是因為沒有意識到。多檢視自己的狀態,當你發現對目前的任務,工作完成的較為輕鬆時候,就應該意識到,需要跳出舒適區來進一步的成長了。不斷擴展自己的外延,去主動承擔一些需要費力才能夠完成的活,嘗試下跨界的任務,組織技術活動,頭腦風暴,參與產品的討論等等。


推薦閱讀:

GacUI 動畫系統 (3:漸變動畫)
A Discipline of Programming 筆記,1-4章
學習Git(二)基本操作
c語言的發展歷史如何?
python多線程之從Thread類繼承

TAG:編程 | 學習 |