導航:首頁 > 程序命令 > 程序員的3個階段

程序員的3個階段

發布時間:2022-09-26 11:23:11

程序員:新手到專家的5個階段

程序員需要 不斷的學習

不僅僅是學習 新技術 ,還包括應用的 問題域 ,用戶的奇思妙想,同事的古怪習慣,行業的八卦 新聞 和項目演進的重要特徵

我們必須學習學習再學習,持續不斷的學習,然後把學習成果 應用到解決 日常遇到的一切新舊問題上

新手在該技能領域經驗很少或者 根本沒有經驗 ,這里提到的經驗,指的是通過實施這項技術促進了 思維的改變

舉個反例:

可能一個開發人員聲稱擁有 十年經驗 ,但實際上只是一年的經驗 重復了九次 ,那麼這不算是經驗

引申問題:

一年有365天,你是過了365天!還是只過了一天,重復了365遍?

1.新手非常 在乎他們能否成功 ,沒有太多經驗指導他們,他們不知道自己的行為 是對是錯

2.新手不是特別的想要學習,他們只是想實現一個 立桿見影 的目標

3.他們不知道 如何應對錯誤 ,所以出錯的時候,他們非常容易 慌亂

以上是新手的明顯特徵,所以跨越新手有以下幾個步驟

1. 渴望成功 ,但是不要太過於執著,急功近利往往是失敗的前兆, 不急不躁 的心態最好

2.沒有經驗就去 尋找經驗 ,一個 好的老師 和一些優質的資源能夠迅速把有用的經驗傳遞給你

在親身累計經驗之前, 逆向思考,尋找經驗才是核心和緊急目標

3.進行 能力測試, 可以利用第三方的題庫和測試流程,標准而大眾化的測試,同時也需要 自我測評 ,比如完成一個項目,自己統計整體 時間 ,自己撰寫 時間軸日誌 ,自己判斷自己的 詞彙量 和 熟練度 等

自我測評是第三方無法完成的 ,這點尤其重要,簡單來說,也可以稱為 自我認知 ,並且把數據 可視化

4. 興趣是最好的老師 ,沒有興趣也是可以培養的

想要一個立竿見影的目標其實並沒有錯,新手恰恰需要 酷炫有趣有用 的目標才培養自己的興趣,一個 完整的小案例 能夠把所學的知識點 融會貫通

新手要做的,是一邊需要沉下心來學習 零碎的知識點 ,一邊整合知識點做出一個完整的效果案例,兩相結合才能迅速進步

反之,一味的學習零散的知識點不去做案例,學的太多也只是 空背概念而已 ,一味的追求項目效果而不去深入內容,那麼 永遠不會進步 ,碰到一點改動就毫無辦法了

5.不知道如何應對錯誤沒關系,心態要冷靜,並且及時的把 錯誤整理下來 ,學會處理錯誤的方法尤為重要,比如 如何正確提問 ,比如 高效引擎檢索 ,比如官方幫助手冊等,遇到錯誤並不可怕, 可怕的是找到解決錯誤的辦法

高級新手能夠多多少少擺脫 固定的規則

1.他們可以 獨自嘗試任務 ,但仍難以解決問題

2.他們想要快速的 獲取信息 例如,當學習一門新語言或者API時,你可能會感覺到這點,你發現自己會快速 瀏覽文檔 以尋找一個方法或參數列表,你不想在此尋根究底,或者 重溫一遍基礎知識

3.高級新手能夠根據 過往的經驗 ,逐步在正確的情境中採納建議,但比較吃力,同時,他們能夠形成一些總體原則,但不是全貌, 他們沒有全面的理解,而且的確不想有

以上是高級新手的明顯特徵,所以跨越高級新手有以下幾個步驟

1. 思考難以解決問題的原因所在 ,是哪個地方限制了你解決問題的能力?

這一點與你個人的現狀有關,你正在學習的技術棧,你所做的項目,你的綜合 能力和資源

簡單的說 具體問題具體討論 ,你必須對問題有深刻的認知並且 對自己有足夠的了解

2.在這個追 求效率的時代 ,要去思考和學習底層原理,是一件很難的事情,因為 時間不允許

事實上絕大多數事物的不成功,就是 沒有足夠的時間

在時間的維度上,再無知的新手也有一個寬泛的坐標,那就是 尋找一個參數方法的時間和解析一個參數方式的時間都大致明確的

比如找到並使用某個參數方法大概需要 2分鍾-10分鍾 ,正常情況是5分鍾,而解析一個方法原理,需要的時間是不確定的,確定的是 大於等於10分鍾 ,可能是30分鍾,也可能是幾個小時,這 與效率不符 ,從利益上看也不劃算

尋根究底是需要的,但它的 重要等級 排列在熟練了解全局內容之後

重溫知識點也是如此

3.高級新手在一個熟練的框架里有所經驗,有所作為,但是換了一個框架, 復用原來的知識 ,就顯得生澀了

在學習的過程中,要不斷的 舉一反三 ,一個例子刻意練習三遍以上,一個例子做出不同的三種效果,一個例子應用在三種不同的情境等等等,學會 觸類旁通

在第三階段,從業者現在能夠 建立問題的概念模型 ,並 有效 的使用它們

他們可以獨立的解決自己遇到的問題, 並開始考慮如何解決新的問題 ——那些他們之前沒有遇到的問題

你可能會看到,處在這一水平的人通常被認為有 主動性 和足智多謀

他們往往在團隊中發揮領導作用(無論是否有正式的頭銜),他們是 團隊里的好人 ,既可以 指導新手 ,也不會經常騷擾專家

以上是勝任者的明顯特徵,所以跨越勝任者有以下幾個步驟

1. 教是最好的學 ,當你可以勝任工作,可以獨自解決大部分問題,已經比較 完善 了

這個時候要追求 知識的深度 ,想要進一步提升,就需要整合以前所有學習的內容,資源以及學習方法,在底層原理上,還有很多需要融匯貫通的地方, 通過教授新人和他 人,能夠完善自己的知識體系,找到自己的薄弱點,以 另一個層面的角度來重新調整視野

2.學習與之 相關的領域, 這些內容你不一定會用到,或者不是在你的職責范圍之內,但是學習之後會讓你的本職做的更好, 讓你的知識更加全面

前端勝任之後,可以適當學習後端,也可以適當學習UI,往 全棧的方向 ,學了python之後,也可以學學java, 了解不同語言之間的優點和缺點 ,運用不同的內容適當的解決問題

對比思維,左右辯證 ,看似把時間花費在精通之外,實際上效果一樣會 反饋到核心事物上

廣度和深度是一個 選擇題 ,在時間上,只能 二選一 ,適度就行

精通者有足夠的經驗, 他們知道下一步會發生什麼 ,如果沒有發生又需要什麼

他們非常明確哪些計劃需要取消,而 應該採取什麼行動

處於精通者的人更像是 初級專家 ,而不是高級勝任者

1.精通者一定是 身經百戰 ,給一個項目,他能在一開始就判斷出這個項目需要多長時間,分為那幾個步驟,需要什麼人員

從一開始就是 瞭然於胸 ,排除可能出現的錯誤,剩下的只是按部就班的走正確的流程就好,達到 高效,高質量,少錯誤的效果

這個階段的人,已然有了質的變化,想要如何往上躍遷,還需要另外的 質的改變

終於我們來到第5個也是 最後一個階段 :專家

專家是各個領域知識和信息的 主要來源

他們總是不斷的尋找 更好的方法 和方式去做事

他們有豐富的經驗,可以在恰當的情境中選取和應用這些經驗

他們 著書,寫文章,做巡迴演講 ,他們是當代的 巫師

思考:

1.自我測評,你處在哪一個階段?

2.如何做才能提升到下一個階段?

3.針對你的行業,細分階級,比如十個階級?哪十個階級?

Ⅱ 程序員的成長過程中,有哪些階段

階段一:不知道自己不知道(Unconscious incompetence)
大學期間,我和老師做過一些小項目,自認為自己很牛,當時還去過一些公司面試做兼職,但是就是不知道為什麼沒有回復。那個時期的我,壓根不知道自己不知道,還以為自己懂很多,現在想起自己以前就好笑,那個時候還算不上程序員,頂多隻能算是個業余編程愛好者。

表現:假自信、過度承諾、滿口我能行沒問題、看不起其他程序員….

階段二:知道自己不知道(Conscious incompetence)
工作後,發現自己在項目中工作時遇到困難不知道怎麼解決,和身邊人一比發現自己知識很欠缺,這時候知道自己技不如人,很多地方都不足,需要大補才行,這個時候就是大家所說的初級程序員階段,這個階段必須依靠別人指導。

表現:有點心虛、虛心學習、偷偷努力、羨慕牛人…

階段三:知道自己知道(Conscious competence)
工作三四年後,自己的技能逐步提高,成為了項目組的技術大拿,這時候也很自信,知道自己能夠解決遇到的所有問題,這時候就是高級程序員階段了。

表現:自信、比較客觀、真正承諾、有點自我…

階段四:不知道自己知道(Unconscious competence)
工作多年後,隨著自己知識的深度和廣度的提高,越學發現越不懂,有時好覺得自己以前真是浪費了太多時間。雖然覺得自己還有很多需要提高,但是對工作中遇到的問題基本沒有解決不了的,這個時候很多知識都自成體系,解決問題也有了自己的潛意識,有時連自己都不知道自己知道,這時候屬於架構師級別了。

表現:開放、主動、好學、謙虛…

Ⅲ 浙江北大青鳥:java程序員入門需要經歷的階段

隨著互聯網的不斷發展,java編程開發程序員的需求量也是不斷的增加的,而今天我們就一起來了解一下,成為一個專業的java程序員都有哪些階段。
一、新手如果你是新手階段,全面、扎實地掌握語言的基本要素是當務之急。
你可以在正規的指導下飛速進步,並培養出良好的編碼習慣。
然後可以再結合專欄,看看Java技術領域典型的、長期的熱點話題,了解業界通常從哪些角度判斷你的能力和水平。
二、高級新手工作了幾年,整天忙於業務代碼,很容易困惑下一步的方向在哪裡,相當多的程序員長期停留在高級新手的階段。
一個常見的表現就是發展成為了「面向搜索引擎」編程工程師,擅長快速利用開源項目或者以往成果,完成一些「OK」的工程任務。
這本無可厚非,職業路線很多,未必每個人都想成為底層專家。
但是,如果想在技術領域更進一步,一定要避免下面兩個問題。
面對沒見過的、一定規模的或者較高標準的問題時無所適從,具體表現為「領導,你看這樣行嗎?」。
沒做過互聯網高並發應用,難道就不能對並發編程有相對深入的思考嗎?比如,習慣了使用Executors,你有沒有思考過不同的線程池到底適合什麼場景?當前的實現在未來業務量增長下可能出現什麼問題?無法獨立提供有說服力的、有深度的分析、設計和實現,比如業務系統運行一段時間就變慢,調整Heap大小,似乎仍然OOM。
目前團隊處理的方式就是重啟伺服器,有沒有想過去發掘真正的原因,真正去解決它?我建議不要滿足於這些表面的特徵,要學會用白盒的視角看待技術內部,系統性的思路掌握普遍規律。
即使未來你不在一線編碼,或者未來不再使用Java,同樣的思維習慣和積累也是很有幫助的。
三、勝任者那如何才能算是擺脫了高級新手的階段呢?或者換句話說,如何成長為團隊的核心成員?這取決於你能背多大的鍋、填多大的坑,比如你已經可以:獨立負責做GC調優,即使沒有歷史經驗,也能給出有說服力的方案。
在JVM領域有充足的技術經驗和知識儲備。
全面評估評估後台變慢等問題的復雜度、風險點、解決的可能性。
對於所謂本質的思考和理解,能聽懂深入的抽象觀點。
並且,除了Java/JVM,還要掌握更完整的技能樹,例如分布式系統設計、資料庫隔離級別選型等。
掌握將「OK」的事情做到「excellent」程度的能力,IT培訓http://www.kmbdqn.cn/認為不斷地進行高效實踐、領域的擴展和精深,我們就可以達到並超過勝任者,逐步成為精通者和專家。

Ⅳ 零基礎的人怎麼才能成為一名程序員呢很難嗎

零基礎的人怎麼才能成為一名程序員呢?很難嗎?因為如果你只會一門語言的話,那也是程序員,只要這門語言你學得精通,能夠從事這方面的工作那你就是一個程序員了。所以我覺得題主應該首先搞清楚自己想要從事的方向,然後再找突破口去學習對應的課程。


總之,只要自己確定好目標,朝著目標一路向前,持之以恆的堅持下來,再加上多練習,多去問,相信未來的你不只是入門程序,還會成為更高級的It工作者。

閱讀全文

與程序員的3個階段相關的資料

熱點內容
ibm伺服器如何安裝raid 瀏覽:570
編譯時間和更新時間 瀏覽:222
華為文件夾訪問限制 瀏覽:240
程序員項目管理檢討書 瀏覽:209
繞過壓縮包密碼 瀏覽:705
如何登錄別人的雲伺服器 瀏覽:216
蜘蛛俠解壓所以從高空摔下來視頻 瀏覽:758
c語言設計編譯器 瀏覽:863
eclipsejava混淆 瀏覽:692
咖啡程序員 瀏覽:631
編程寶典pdf 瀏覽:443
伺服器uc1是什麼 瀏覽:810
文件夾有個字錯了怎麼統一替換 瀏覽:609
手機搶號伺服器很卡怎麼辦 瀏覽:392
andpython 瀏覽:963
高濟互聯網醫院app怎麼購買 瀏覽:881
網能從手機上設置加密嗎 瀏覽:832
普通app怎麼製作 瀏覽:285
浪潮伺服器raid怎麼測試 瀏覽:25
壓縮彈簧總圈數 瀏覽:201