作者 | 黃峰達
技術在進步,人也得成長。開啟社交**,無處都不在販賣焦慮:
那些寫稿的人,有一天突然自己焦慮了——是不是這真的就是一種趨勢?年底了,也得按照慣例 「焦慮」 一下成長。照舊,作為每年年底的覆盤(review),這仍然是一篇對於未來的思考和總結。
職業發展 vs 個人發展
國內大部分的組織,哪怕是大型的公司、企業裡,都缺乏有效的技術人員發展路線。或許是國內的程式設計師都比較 」年輕「,或者是現有的大部分程式設計師都停滯在現有的階段——資深階段。這無論是 bat 裡的 p7、p8,t2.3、t3.1,還是 thoughtworks 裡的 senior consultant,這都是乙個很長的關卡。
原因,除了這是乙個等坑期,還是乙個迷茫期。坑位只有有限的幾個,而等坑的人卻有那麼多。而往往不是乙個光靠技術就能往上走的坑,為了更高的 grade/title,需要的都是技術 + 業務。這樣一看,呀,純技術路線在哪都發展不下去。那樣一來,我們需要往何方走呢?
資深的下乙個 grade 就是 lead programmer,如 basecamp(37signals,創造了 ruby on rails 的公司)在 github 上標明的 lead 程式設計師的要求:
換句話來說,我們要能夠完成站在整個系統的角度來看待問題。作為乙個資深的程式設計師,或者 tech lead,我們往往從自己的那部分前端、後端出發,來考慮整個系統的問題。而作為乙個更高階別的程式設計師,需要擁有更好的功能,來掌握更多的技能。但是,這一點讓我又考慮去了程式設計師的專與廣的問題:
這大抵算是對於大部分人來說,如我,會有乙個更清晰的方向。
定位:工程 or 研究
從長期來看,作為乙個軟體開發工程師、諮詢師、前端工程師等,我們不得不為自己在職業上定乙個位:who am i ?在不同的職業生涯裡,我們的定位都是不同的。
從 it 領域上,大抵上可以分為:工程師 + 「科學者」/研究員。前者偏向於工程,後者偏向於理論研究。看筆者文章的人,大抵都屬於前者。但是吧,又得投入後者。
一旦,我們找到了合適自己目前的位置,便得去關心所在領域的最佳實踐。如對於工程來說,我們要關注的東西是:
對於理論來說,我們關注於原理與設計。要合理的分配兩者的學習比例。
若你和我一樣是乙個工程師,又喜歡研究理論。日常的程式設計中,多數的研究相關的內容是用不上的,往往是工程上用的東西比較多。不過只靠實踐,往往也是不夠的,還需要進行一定的理論和建立研究。在合適的時候,需要適當地分配一下比例,如 80:20 的比例。
在職業階段的不同,又需要對程式設計領域細分,如前端、後端、原生應用、blabla。只是這點細的分類,並沒有太多的差異。從筆者的經驗來看,能用乙個語言程式設計的人,再換個語言編寫業務**,並不是一件困難的事。唯一麻煩的地方,角色的轉變——你可能沒有意識到現在的位置,它需要你去做什麼,而不是抗拒它。
靠持續投入,而依賴才華
職業生涯的早期,寫**靠的是才華。但是隨著時間的變化,若是沒有持續地投入,也有才盡的時間。就這一點上,就 it 行業,又或者是不同行業中,我們都可以看到一些端倪。
勞動節,我和花仲馬去馬來西亞玩的時候,我們買了本春上村樹的《身為職業小說家》,即《我的職業是**家》的繁體版本。繁體版本是傳統的堅版,由右到左的排版方式,我便又饒有興趣的看了一遍。最大的體會便是:越有造詣的人,則越投入得越多越長。
如村上春樹,上班族打卡,早上起來雷打不動坐在寫字檯前寫作 5、6 個小時,每天必須完成四頁稿紙。三十年來天天堅持跑步,真是一點兒也不浪漫。
如若我們看待程式設計的方式是,它不僅僅是收入的**,還是樂趣的**。那麼,我們會持續不斷地投入。而這種投入,依靠的還是一定自律。如若只是每天完成工作上的**,怕也算不是投入。除非,它能為我們帶來更多的樂趣。對於工作能否帶來真正的樂趣,智者見智吧。
我害怕的一種生活狀態,便是每天加完班,加到家裡,再也不想寫**。哪怕是再好的才華,再高的興致,也容易被磨滅開來,成為別人家的機器。
而所謂的才華,大抵便是悟性。而悟性這種東西,往往不是練出來的,更可能是看出來的,或者是對話出來的。才華,便也是筆者最討厭的玄學——說了,我自己也不懂所以。而這種才華,便也算是運氣,有時候是在非自己的工作領域中領悟出來的。
自律、體力、耐性,就是這麼不佛性的三要素。
適當地輸出
在 it 行業裡,做得有聲有色,得是能拿出一些作品。或是借助於公司的產品,來體現自己的出色;或是創造自己的專案,來展現自己的樂趣;又或者是寫自己的文章,表達自己的程式設計觀點。
而輸出有乙個大前提是輸入,如程式設計實踐、閱讀書籍等等。如此說來,這種活,倒也不是阿貓阿狗能輕輕鬆鬆做到的,還得經過一系列的思考,。但是總有一些人吧,總是可以輕鬆地複製和貼上別人的觀點。若沒有加以實踐,有些東西還是經不得推敲的。在閱讀的時候,只需要細微地思考一下,也便能識別出來一些端倪。
如我擅長的寫作,對於自己而言,還有別的技能提公升:
在寫文章的過程中,會不斷強化這些技能。如果我們想快速進入乙個領域,便可以以輸出來強化知識輸入的能力。
這輸出不僅僅是乙個能力提公升的話題,還在持續不斷地提高你的影響力。再好的技術,沒有方式和能力對外展示出來,就不要怨天尤人。從技術實力上來說,我大抵是比同齡人的平均水平,多一點點。但是多了這份影響力,便多了不止一點點。它可以用在擴大團隊規模上,提公升整體的技術水平。
持續的挑戰
持續的挑戰,在這裡指的是:嘗試新的可能性,學習新的技術。
若是每年都安安逸逸地,沒有一點新的氣息,再好的鬥志,也會被歲月磨去。這樣一看,學習什麼東西,似乎一點兒也不重要。我們要的是一種心態,它能讓我們接受新的事務——雖然我們可能並不認同,但是也能接受它的存在。
哪怕是隨著年齡的增大,其它事務的不斷增多,學習的時間越來越少。我們只有持續不斷地學習,保持一種學習的心態。面對一些新的事務,便也不會有害怕的心裡。
到底也是這些年,看到越來越多的技術人員,因為各種原因,荒廢了技術。便也意識到這方面的戰略意義,你呢?是不是也存在這樣的問題呢?
領域知識
某個框架,某個語言,只是解決問題的方式之一,而非是唯一的解。
不討論框架,不討論語言,我們只討論領域。而我們討論領域的時候,指的是技術及非技術相關的領域。而技術只是其中的乙個領域,但是是非常小的乙個領域。不過,從技術的角度來看,跨領域的工程師機會比較多,可能性也比較高。一旦如此,我們也越能解決跨技術領域的問題。又如我們在開頭所說,它有助於我們成為更好的程式設計師。
與此同時,我們會發現,我們往往缺少技術以下的領域知識,如金融、物流。而這是這些領域知識,它可以為我們的職業生涯帶來更多的價值。越是我們平時覺得不起眼的東西,在我們尋找工作的時候,有相應的背景,反而能為我們帶來更多的價值。
程式設計師的焦慮 終身學習
首先,我很認可終身學習,自己也是一直這樣要求自己和實踐的。但還是有一些想不通的問題,希望和大家討論。0.知識的用處 很認可學以致用。這樣才能記憶深刻,並有更深的見解。但問題是不會有那麼多及時的不同技術棧的專案由你來做,如果只是個人專案,那價值也只是玩具級別的專案。由此,對技術理解的深度,或者說踩過的...
程式設計師成長之路
和同行溝通 了解最新潮流 跟蹤相關的業界變化 和人分享你的經驗和作品 1.最基礎的,卻是最重要的 c語言編譯原理 資料結構與演算法 計算理論 數學 英語 2.模仿大師 追隨大師 多看大師的設計 實現 想象下自己如何做 要認真 模仿直到你看起來像大師 3.養成優秀的 風格 命名規範 對齊方式。k rl...
談談程式設計師成長
本篇文章主要側重的是程式設計師的硬技能方面的,不涉及軟技能。綜合上述的幾個原因,我認為對於大部分人來說,要想成為技術大牛,首先還是要明白 主要靠自己 這個道理,適當的時候可以通過請教大牛或者和大牛 來提公升自己,但大部分時間還是自己系統性 有針對性的提公升。有人認為寫業務 一樣可以很牛逼,理由是業務...