1. 程式人生 > >阿里P8架構師淺談——Java程式設計師的路該怎麼走?(九點概括)

阿里P8架構師淺談——Java程式設計師的路該怎麼走?(九點概括)

第一:提醒自己還有多少沒有學習

學習新東西的第一步是自己認識到哪些不足。這聽起來很簡單,但是有一些經驗的程式設計師要克服這個假設需要很長時間。有很多計算機專業的學生畢業時昂著頭傲慢地說:“這不算什麼,我全都知道”類似這般的虛張聲勢,

剛到工作崗位上,似乎在向每個同事證明自己的能力。

要知道,“我知道全都會”會阻礙我們學習新東西,這種輸出強大的確定性叫靠譜。

第二: 不要試圖證明自己是正確的

要變得強大,不僅僅是好,你必須從經驗中學習成長。但是請小心,經驗可以避免我們不重複不良習慣,也能夠製造不良習慣。我們都遇到過八年的程式設計師,可這八年,他一直重複在做同一件事。為了避免這種問題,看看我們做的一切,問問自己:“我怎麼才能做得更好?”

軟體開發新手和許多經驗豐富的開發者都喜歡自己的程式碼,即使自己寫測試,也證明自己的程式碼毫無缺陷。而真正優秀的程式設計師會主動尋找可能會出錯的地方,他們知道終端使用者會發現程式設計師遺漏的缺陷。

第三: “程式碼有效性”不是停下來的地方,而是開始的地方

沒錯,你的第一次總是能寫出滿足規範的高質量的程式碼。但是大多數的開發者在這一處就宣佈“完成”,繼續下一步。

一旦“完成”就停下來,這個碼就像拍一張快照,它還不是一個成品。優秀的程式設計師知道第一次迭代只是一件粗糙的物件。現在,我們讓它變成更好的藝術品。

這個過程的一部分是定義“更好”的蘊義。加快速度有價值嗎?更容易做日誌?更可複用?更可靠?答案可能因每個應用程式而異,但該過程並不適用。

第四 :寫三遍

好的程式設計師可以編寫出可以執行的軟體。偉大的程式設計師寫的軟體工作非常好。但這些很少發生在第一次。最好的軟體是寫三遍:

1.首先,你寫軟體是向自己(或使用者)驗證解決方案是可行的。其他人可能不認識這只是一個概念驗證,但是我們先做好這一步。

2.第二次,你讓程式碼可以工作。

3.第三次,你讓程式碼可以正確的工作。

當你看到最優秀的開發者工作時,這些工作水平可能不那麼明顯。他們做的每件事都那麼優秀。但是你沒有看到的是,包括明星,鋼琴家,技術牛人在向他們展示軟體之前,可能已經扔掉第一和第二甚至更多的版本。擅長丟棄程式碼並重新開始,可以是將“更好”包含到個人工作流程中一種強有力的方式。

如果沒有更好的方法,“寫三遍”教會我們有多種方法來解決問題,防止我們陷入窘境。

資源獲取下載方式——工作一到五年的java 開發工程師朋友可以加入我們Java架構交流群:760940986 群內提供 高可用,高併發,spring原始碼,mybatis原始碼,JVM,大資料,Netty等多個技術知識的架構視訊資料 還有大把大牛在群內交流以及解答面試指導,問題答疑~~要進來和大牛交流學習提升提升自己嗎~~~~

第五:要有一套完整系統化的學習體系給自己學習

1.架構鞏基專題

(1)效能優化

(2)常用工具調優

(3)linux基礎與進階

阿里P8架構師淺談——Java程式設計師的路該怎麼走?

2.開源框架解析專題

(1)spring5框架

(2)AOP原始碼解析

(3)Mybatis

(4)IOC原始碼解析

(5)springMVC

阿里P8架構師淺談——Java程式設計師的路該怎麼走?

3.高效能架構專題

(1)分散式架構思維

(2)分散式協調和分流

(3)高可靠資料儲存

(4)快取和NoSQL

(5)非同步與訊息中介軟體

(6)分散式解決方案實戰

阿里P8架構師淺談——Java程式設計師的路該怎麼走?

4.微服務架構專題

(1)springboot

(2)springcloud

(3)Docker虛擬機器技術

(4)Dubbo應用及原始碼解讀

阿里P8架構師淺談——Java程式設計師的路該怎麼走?

5.團隊協作開發專題

(1)Git

(2)Maven

(3)Sonar

(4)Jenkins

阿里P8架構師淺談——Java程式設計師的路該怎麼走?

6.B2C商城專案實戰

(1)系統設計

(2)使用者管理子系統

(3)搜尋子系統

(4)訂單子系統

(5)商品管理子系統

(6)支付系統

(7)後臺系統

(8)分散式排程系統

阿里P8架構師淺談——Java程式設計師的路該怎麼走?

以上課程體系是我總結出來並且是比較全面的Java架構師必學的課程題系圖,此圖分為六大板塊,每個專題每個知識點都對應著我們平常在工作中用到的技術要點,如果你們想提升自己的技術,想學習以上的技術要點 關注我私信回覆“java架構”即可領取高併發,分散式,Spring,MyBatis,Netty原始碼分析和大資料等多個知識點 的架構視訊資料以及高清的思維導圖!

第六: 閱讀程式碼,閱讀大量程式碼

或許你喜歡領導別人來看程式碼。其實這是提高程式設計能力的最常見也是最有價值的方法。

也許剛開始時你會覺得有些枯燥,因為它不是文學詩歌,慢慢你會看到別人如何在程式設計中解決問題,他們將其視為教訓與挑戰。為了能讓自己更好,我們不妨問問自己這樣的一些問題:

1、如果是我怎樣編寫這段程式?現在我已經看到別人怎樣解決的,如果是你該怎樣解決?

2、我學到了什麼?該怎樣把這個技術應用到我過去寫的程式碼裡?我怎麼沒有想用遞迴呼叫...

3、我將怎樣改進此程式碼?如果該專案參與了開源,如果你確信有更好的解決方案,那就去做!

4、按原作者的風格寫程式碼。按照這個規則實踐編碼,會幫助你進入原作者的思維中,可以進一步改進程式碼的同理心。

注意:不要以為一個很優秀的程式設計師就能輕鬆的閱讀大量原始碼,就如一位崇拜者在不改善自己寫散文的情況下,閱讀偉大的文學作品一樣沒有太大進步。

很多開發者會使用開源或其它下載的原始碼來“查詢答案”,有可能還會複製貼上與問題類似的程式碼。

如果你經常這麼做,那麼你可能會成為一個差勁的程式設計師!因為你沒有經過自己的思考和檢視就盲目接受了別人的智慧!

它就像我們在夏天的露天野餐一樣容易,但是我們沒有花時間理解它,你永遠不會意識到,這可能會引入了一系列的BUG。

第七: 寫程式碼,不僅僅是完成工作

一個人在程式設計工作中會體會到很多優點。第一,它提供了一種在當前工作中獲得的技術和工具的學習機會,這些工具技術會讓你適應下一個工具和市場。無論是否為開源專案做貢獻,還是為公司專案工作,我們都可以獲得技術技能和相信。

開發軟體的另一個好處是它會“迫使”你想方設法解決問題。我們不能把困難的事情留給別人,所以我們決不能過早的尋求幫助。

值得一提的是:不要只選擇沒有什麼挑戰的專案。我們也需要失敗!雖然你可能不想在工作中失敗或者到了最後期限失敗。

第八: 盡最大可能與其他開發者協同工作

這樣有助於傾聽其他人的心聲。可以使用結對程式設計,或者到黑客馬拉松或者程式設計使用者組,如北京 Python 使用者組。當你已經為開源專案做出貢獻時,請多注意使用者和其它開發者的反饋。比如,你在批評中看到了哪些共性問題嗎?

如果能在團隊裡找一位可以信賴的個人導師,從程式設計技巧到職業決策和規劃,他能給你更多指導,千萬不要不當回事,浪費很多時間。

第九:學習技術而不是工具

程式語言,工具和方法林林總總,這就是為什麼儘可能的學更多的語言和框架來獲得不同體驗的原因。專注於程式設計基礎,因為基本的東西永遠不會發生變化;比程式設計更深刻的是要注重架構。

如果你有一件正確的事情去做,需要進行實時的檢查。教條會阻礙我們學習新事物的能力,我們需要擁抱變化 。

資源獲取下載方式——工作一到五年的java 開發工程師朋友可以加入我們Java架構交流群:760940986 群內提供 高可用,高併發,spring原始碼,mybatis原始碼,JVM,大資料,Netty等多個技術知識的架構視訊資料 還有大把大牛在群內交流以及解答面試指導,問題答疑~~要進來和大牛交流學習提升提升自己嗎~~~~