程式設計師的等級以及成長實踐

2022-03-27 00:32:52 字數 2053 閱讀 9001

這篇依然是《程式設計師的思維修煉》的筆記, 前面 已經說過這是一本值得精讀的書,需要一點一點的消化,吸收。就像書裡講的一樣。

文章標題是《程式設計師的等級以及成長實踐》,這裡的等級其實是說書中介紹的德雷福斯模型的五個階段。相比於之前經常說的程式設計師的三個境界:手中有劍,心中無劍;手中無劍,心中有劍;手中無劍,心中也無劍。這個模型更為具體且易於實踐一些,在之後的學習工作中可以拿來參考。

這五個階段看字面意思可以很好的明白,所謂新手就是指剛入門的同學,對要做的東西,和要用的東西沒有太多的概念。乙個很實際的例子就是剛開始學後端開發的前端程式設計師,對於伺服器端的東西沒有太多的概念,該如何入手做服務端專案毫無頭緒,該從**開始學起也沒有頭緒。這就是新手,需要有人給出個1、2、3,然後才能走下去,不然就是在迷茫中糾結,在糾結中退縮。這裡說有人給出1、2、3來,不是一定是現實中的人,也可以是網上的帖子,或者一篇blog。自己找食吃對新手來說尤其重要,這意味著以後的消化能力怎麼樣。

所謂高階新手,是指已經入了門的同學,他知道門裡都有些什麼東西。因此當他遇到技術問題的時候,能夠去尋找解決的方法,找到乙個方法之後會立馬開始幹,而不會去思考這個方案是怎麼回事。乙個很實際的例子就是,經常有人在群裡問,說我要完成讀寫檔案的操作或者說傳送郵件的功能,我看了有這個函式/介面,怎麼始終不能成功呢。這個問題的本質在於他只是看到了有這麼個api,然後就開始寫**嘗試,而沒有去理解這個api具體怎麼做的,比如前置條件,後置條件,效率等。

這個階段的同學迫切於解決眼前的問題,而不會深入理解解決方案和優劣。遇到問題,然後沉下心來思考,探索方案的可行性,而不是通過嘗試的結果來觀察,應該是這個階段的同學需要考慮的。另外跳出當前面對的技術問題,從巨集觀的角度來看整個專案也是應該去做並且實踐的。

所謂勝任者,是指能夠獨擋一面的同學,這類人能夠獨立解決問題,有足夠的主動性,能夠基於過去的經驗來解決以前遇到過的以及沒有遇到過的問題。勝任者能夠建立問題域的概念模型(書上原話,我猜意思是對過往的問題進行分類整理),並且有效的執行它來解決新的問題。

再說精通者,有足夠豐富的經驗,並且能快速的學習別人的經驗,同時在工作中能夠不斷的進行自我矯正。對於專案有著更好的把握,知道什麼情況下可能出問題,能夠有效的預見到風險點。

最後是專家,作為最頂級的存在,專家做事往往是憑直覺的,這些直覺來自於對自己從業多年專案經驗、處理問題和風險的經驗總結。直覺無法轉化為有效的指導規則,沒有固定的場景和方案。這類人往往被稱作布道師,對各個領域的知識和資訊非常了解,是各領域知識和資訊的**。

寫完了這個五個模型,思考一些自己平時的工作,你處於什麼樣的乙個階段呢?我自己覺得我還是處在乙隻手吊在勝任者的路上,還有很長的路要走。從十年成就乙個專家的理論來看,要想成為專家是需要在對應領域堅持實踐十年的,但光是堅持是沒用的,低水平的重複一百年也不能公升級到專家。書中總結道,絕大多數的人始終無法超於高階新手這一階段。怎麼突破這一狀態呢,下面接著總結下書中提到的從新手到專家的實踐。

書中有乙個提示很重要,那就是——沒有實踐就沒有技能。針對任何乙個行業都有效。因此積極的實踐尤其重要,那怎麼樣的實踐算是積極的實踐呢?書中有提到一些方法:

1. 乙個明確定義的任務

2. 任務有難度但可行

3. 任務環境能夠提供大量的反饋,以便採取行動

4. 提供重複犯錯和糾正錯誤的機會

無論是從哪個階段公升級到哪個階段,上面的這些步驟都不可省略,說白了就是不斷的超越自己。但問題在於大多數人都不知道自己處在什麼位置,怎麼超越。因此觀察和思考就變得尤其重要:觀察自己身邊的人,尤其是那些自己覺得是大神的人;思考自己正在做的專案或者已經完成的專案,覺得那些地方又不爽的或者不太好的,再次尋找最佳方案。

書中給出小號手的經驗:模仿、吸收、創新。針對於有參照物的情況下,這是最佳的方案,但是在沒有參照物的情況下,如何不斷提公升就需要思考了。或者更加實際一些就是在模仿的同時要思考,思考自己的行為和大神的有何不同,然後總結出來,吸收轉化為自己的,而不是一味模仿。

成長的實踐雖然看起來簡單,就像「每天進步一點點」這個口號一樣,但是堅持一年、兩年甚至十年,有誰能輕鬆做到呢?

程式設計師成長之路

和同行溝通 了解最新潮流 跟蹤相關的業界變化 和人分享你的經驗和作品 1.最基礎的,卻是最重要的 c語言編譯原理 資料結構與演算法 計算理論 數學 英語 2.模仿大師 追隨大師 多看大師的設計 實現 想象下自己如何做 要認真 模仿直到你看起來像大師 3.養成優秀的 風格 命名規範 對齊方式。k rl...

談談程式設計師成長

本篇文章主要側重的是程式設計師的硬技能方面的,不涉及軟技能。綜合上述的幾個原因,我認為對於大部分人來說,要想成為技術大牛,首先還是要明白 主要靠自己 這個道理,適當的時候可以通過請教大牛或者和大牛 來提公升自己,但大部分時間還是自己系統性 有針對性的提公升。有人認為寫業務 一樣可以很牛逼,理由是業務...

程式設計師成長路線

圖書封面 我的程式設計師成長之路 程式設計師的成長經歷往往很相似,大部分的人走過了最前面相同的一段路,而有的人則走得更遠。總結自己這些年來的歷程,這也許能讓年輕的程式設計師少走一些彎路,成長得更快 或許更好一些,能讓大家從中得到一些啟發,早日進入優秀程式設計師的階段,實現夢想,釋放激情。第一階段,最...