1. 程式人生 > >Java程式設計師進階架構師的五個階段,你到了哪各階段?

Java程式設計師進階架構師的五個階段,你到了哪各階段?

之前有個討論:實現同樣功能,簡潔程式碼一定比複雜程式碼效率高嗎?有的說,還得看演算法,如果演算法相同,簡潔程式碼效率應該會高一些。有的說,即使演算法相同,簡潔程式碼也不見得比複雜程式碼效率高,而應儘可能減少迴圈的使用,特別是少用多重迴圈,或者儘可能在一個迴圈中做更多的事。如此,便想起了很久以前的一個段子,講的是程式設計師如何一步步在迴圈中重新回到起點的,僅供大家一笑。

第一年

第二年

第三年

第五年

第十年

當然了,這只是一個段子。不管你多喜歡或是多會程式設計,在學習和解決問題上總會碰到障礙。工作的時間越久就越能明白這個道理。正常的程式設計過程都是這樣的:嘗試、失敗、學習、思考、靈感、成功。在這個漫長的過程中,常有人會感到沮喪,這很正常,只有突破後的那種愉悅感才能證明自己的進步。不要滿足於現狀,因為你永遠不會是最好的。或許在某個瞬間,您不知不覺,但您已經突破了玄關。

“下面我們就來談一談程式設計師進階的五個瞬間。”

第一個瞬間:冒險的衝動

剛剛學習了一門語言,瞭解基本的語法,可以寫短的程式碼片段了,心中難掩一種躍躍一試的衝動。當您想著開啟征程的時候,您進入了第一種境界,業界叫做新手,自己稱之為無畏。一般進入這個階段,差不多半隻腳進入了這個行業,有趣多過職責,眼前充滿著神祕,但卻不一定以此為生。這個世界對您來說,所有的都是神祕的,奇幻的,感覺自己的前途一片光明,但是,也僅是感覺而已。

這時的你需要指導,可以說處在這個境遇的程式設計師毫無經驗,而經驗恰恰是通過實施這項技術而促進的思維改變,即您對未來全無所知。這時的程式設計師最在意的不是學習,而是想實現一個立竿見影的目標。他們不知道如何應付錯誤,所以出錯的時候,會非常容易慌亂。但是稍加指導,他們就會變得能幹起來。當然,新手多面臨的問題是,當一些意想不到的事前發生時,他們就會不知所措。不過,總有解決辦法,一個指導手冊,或是老程式設計師的一些指點便豁然開朗了,但這隻能讓你啟程,卻不會讓你走的更遠。

第二個瞬間:喜悅後的平靜

這時的程式設計師經歷了第一個階段已經可以寫一個完整的程式了,但真正對語言瞭解多少,或許自己心中會有一個體會。這時的程式設計師已經有些經驗了,雖然可能對一些高階用法不甚了了,但應付一個專案還是可以的。一種突破後的喜悅油然而生,走到這個地步,可以說已經是一個正式的程式設計師了,當一種技術作為志業,一種責任和焦慮也會隨之而來,我能堅持走下去嗎?我會做的更好嗎?各種問題隨之而來。

這時候的程式設計師還不會想著全域性思維,他們可以獨自嘗試任務,但仍然難以解決問題。他們想要快速獲取資訊,當學習一門新語言或者API時,發現自己會快速瀏覽文件以尋找一個方法定義或引數列表,而不想在此刻尋根問底,或者重新溫習一遍基礎知識。他們沒有全面的理解,或許的確不想有。如果你試圖把一個更大的情景強加給他們,他們可能會認為該情景不相關而忽略掉,當然是有關係的,但是,他們看不到這種聯絡,因為層次還不夠,只是處於比較低的技能水平。

第三個瞬間:博覽通識,感覺(希望)自己無所不能

這時的程式設計師已經能熟練的使用一門語言了, 能夠用語言去解決生產環境中一個具體和完整的問題,能夠建立問題域的概念模型,並有效地使用它們,已經形成了一套自己的慣用法和常用程式碼庫。在你的編碼方案中當前的程式語言是一個非常好用的工具。

這時的程式設計師會探尋和解決問題,他們的工作基於謹慎的計劃和過去的經驗。他們往往在團隊中發揮領導作用(無論是否有正式的頭銜)。他們是團隊裡的好人,既可以指導新手,也不會經常騷擾更高層次的員工。但是即使在這一水平,人們仍然無法按照我們所希望的方式來敏捷應對所有的工作--大家還沒有足夠的能力反思 和自我糾正。為此,我們需要取得突破,達到一個新的水平。

第四個瞬間:無往不復

事物的運動是迴圈反覆的,未有往而不返的。這個階段的程式設計師已經非常清楚所用語言的設計選擇和背後的動機,能理解的簡潔和可組合性哲學,並能夠自我糾正。處於這個水平的從業人員有一項重大突破:他們會反思以前的做法,並修改其做法,期望下一次表現的更好。他能夠閱讀案例研究,傾聽有關失敗專案的流言蜚語,觀察別人怎麼做,從故事中認真的學習。

高階程式設計師是經常會對需求說“No”的人,對行業的深入認識和對系統及應用全域性的把握能力使他具有真正指導使用者的能力,規範使用者的工作、思想並用計算機這個工具真正對行業產生引領作用。處於當前水平的人員知道什麼地方有坑,或者更確切地說,什麼地方非常有可能出錯。他們具有經驗和判斷力,能夠理解這句話在情景中意味著什麼。事實證明,理解情景是成為專家的關鍵。同樣,當前水平的人可以有效地運用軟體模式,可以充分利用思考和反饋,這些都是敏捷行為的核心。

第五個瞬間:萬法歸一

技術和社會是緊密聯絡在一起的。社會的進步發展決定了需求和技術的發展,一個對技術發展有著敏銳感覺的程式設計師必須對社會有著深刻的認識。這時應該積極地與他人分享關於特定語言知識和對此語言的理解,在各種合適的場所發出自己的聲音, 這時的你可以憑直覺工作,而不需要理由。

那怎麼提升自己的技術呢?有沒有方向指導?

下面分享的是小編收集來的適合2-5年Java程式設計師學習線路圖。圖片可以自由下載儲存哦。

針對以下學習方向我們有自己的高清思維方向導圖以及阿里架構師講解的架構視訊分享(包括高可用,高併發,spring原始碼,mybatis原始碼,JVM,大資料,Netty等多個技術知識的架構視訊資料和各種電子書籍閱讀)視訊資料獲取方式加入Java進階之路即可獲取:878249276。

(1)常用原始碼框架

常用原始碼框架

(2)網際網路分散式架構

分散式架構

(3)團隊協作開發

團隊協作開發

(4)架構基礎

架構基礎

(5)微服務專題

微服務專題

(6)效能調優專題

效能調優專題

(7)併發程式設計

併發程式設計

(8)設計模式

設計模式

精講架構視訊資料獲取方式加入Java進階之路即可獲取:878249276。

精講架構視訊資料獲取方式加入Java進階之路即可獲取:878249276。

以上,就是一整個專案的流程清單,以一步一個腳印的經歷總結,不涉及具體語言程式碼,但是思路都是相通的,希望對你有幫助!

小禮物走一走,來簡書關注我