IT 時(shí)代的膨脹已經(jīng)讓編碼工作如同文藝復(fù)興時(shí)的印刷匠一樣,編碼門檻越來越低。
例如,遍地《一周XX速成》、《20天XX精通》,仿佛會(huì)寫代碼就成了程序員,這讓很多人認(rèn)為從事編碼工作就是碼農(nóng)。
其實(shí),印刷匠很多,成為大師的不多;碼農(nóng)很多,但程序員并不多。程序員不是碼農(nóng),碼農(nóng)也不是真正的程序員。

程序員在英文里對(duì)應(yīng)有三個(gè)單詞:Coder、Programmer 和 Software Engineer。
我覺得這三個(gè)詞,生動(dòng)形象地描述了程序員所需要經(jīng)歷的三個(gè)階段,或者說三個(gè)境界:
Coder:只要求能夠熟練使用編程環(huán)境,精通幾種編程語言、開發(fā)框架和開發(fā)庫,擅長寫代碼就可以了。這個(gè)階段的程序員能夠按照既定的設(shè)計(jì)完成編碼。
Programmer:要求在 Coder 的基礎(chǔ)之上,精通設(shè)計(jì)模式、算法實(shí)現(xiàn)和編碼技巧,并具備熟練應(yīng)用的能力,這個(gè)階段的程序員能夠獨(dú)立編碼解決現(xiàn)實(shí)問題。
Software Engineer:要求在掌握業(yè)務(wù)知識(shí)的前提下,理解為什么這么實(shí)現(xiàn),在綜合考慮架構(gòu)實(shí)現(xiàn),權(quán)衡開發(fā)成本后,為解決業(yè)務(wù)問題提出最優(yōu)方案,并能與業(yè)務(wù)人員順暢溝通,讓業(yè)務(wù)人員理解方案。
編碼工作達(dá)到這個(gè)階段,才能稱得上是真正的程序員,才真正實(shí)現(xiàn)了從工作到職業(yè)的轉(zhuǎn)變。
不可否認(rèn),這個(gè)世界上有一些天才的程序員,他們喝著咖啡,哼著歌,便完成了上面三個(gè)階段的修煉。但絕大部分人,都需要為此付出巨大的時(shí)間和精力。
能否成為職業(yè)的程序員,影響因素和方法論很多,各種學(xué)習(xí)類、技術(shù)類的總結(jié)遍地都是:主動(dòng)思考、及時(shí)總結(jié)、制定規(guī)劃等。但我認(rèn)為其中最重要的是能否做到專注。
許多沒有達(dá)到第三個(gè)階段的程序員,就是因?yàn)槭艿礁鞣N因素誘惑,變得心猿意馬,不夠?qū)Wⅰ?/p>
因?yàn)椴粔驅(qū)W?,他們不在意做好自己本職工作,不在意錘煉自己的技能,不在意學(xué)習(xí)新興的技術(shù)。
慢慢的,他們會(huì)認(rèn)為從事編碼沒有出路,進(jìn)而毫無例外地把編程看成是體力勞動(dòng),只會(huì)粘貼拷貝代碼,知其然而不知其所以然,導(dǎo)致技術(shù)停滯不前。
在這樣的狀態(tài)下工作 5 年、10 年,對(duì)于他們來說,沒什么區(qū)別,程序員真的就是吃青春飯的碼農(nóng)。
當(dāng)我們向老板提出加薪的時(shí)候,或者跳槽去“撿”offer的時(shí)候,我們底氣夠嗎?
敢不敢不給漲薪就“揮一揮衣袖,不帶走一個(gè)bug”?是不是提出要求后你的主管、經(jīng)理立刻
同意,為了把你留住。然而,現(xiàn)實(shí)往往是...
技術(shù)不過硬,其他的都免談。
針對(duì)這樣的情況
在這里為大家列出以下體系圖
針對(duì)下面的技術(shù)我特意整理了一下,有很多技術(shù)不是靠幾句話能講清楚,所以干脆找朋友錄制了一些視頻,要做到知其然還要知其所以然。如果想學(xué)習(xí)Java工程化、高性能及分布式、深入淺出。性能調(diào)優(yōu)、Spring,MyBatis,Netty源碼分析的朋友可以加我的Java進(jìn)階君羊830478757,君羊里有阿里大牛直播講解技術(shù),以及Java大型互聯(lián)網(wǎng)技術(shù)的視頻免費(fèi)分享給大家。
進(jìn):可以領(lǐng)取免費(fèi)的架構(gòu)師學(xué)習(xí)資料。
進(jìn):了解最新的學(xué)習(xí)動(dòng)態(tài)
進(jìn):了解最新的阿里,京東招聘資訊
進(jìn):獲取更多的面試資料
可以參考一下學(xué)習(xí)
1. 工程化專題
一名優(yōu)秀的架構(gòu)師必須有適合自己的兵器,也就是工欲善其事必先利其器,不管是小白,還是資深開發(fā),都需要先選擇好的工具。工程化專題的學(xué)習(xí)能幫助你和團(tuán)隊(duì)提升開發(fā)效率,讓自己有更多時(shí)間來思考。
Git:可以更好地管理你和你團(tuán)隊(duì)的代碼。
Maven:可以更好地管理jar包和項(xiàng)目的構(gòu)建等。
Jenkins:可以更好地持續(xù)編譯,集成,發(fā)布你的項(xiàng)目。
Sonar:一個(gè)開源的代碼質(zhì)量分析平臺(tái),便于管理代碼的質(zhì)量,可檢查出項(xiàng)目代碼的漏洞和潛在的邏輯問題(提升代碼的質(zhì)量,更加高效地提升開發(fā)效率)。

(團(tuán)隊(duì)大于3個(gè)人之后,你需要去考慮團(tuán)隊(duì)合作,科學(xué)管理)
2.源碼分析專題
學(xué)習(xí)Java技術(shù)體系,設(shè)計(jì)模式,流行的框架與組件是必不可少的:
源碼分析專題詳細(xì)介紹了源碼中所用到的經(jīng)典設(shè)計(jì)思想及常用設(shè)計(jì)模式,先打好內(nèi)功基礎(chǔ),了解大牛是如何寫代碼的,從而吸收大牛的代碼功力。
結(jié)合Spring5和MyBatis源碼,帶你理解作者框架思維,幫助大家尋找分析源碼的切入點(diǎn),在思想上來一次巨大的升華。

(好的程序員,一行代碼一個(gè)設(shè)計(jì)就能看出來,源碼分析帶你品味代碼,感受架構(gòu))
3.分布式架構(gòu)
有了大牛的代碼功底之后,接下來可以更好地學(xué)習(xí)分布式架構(gòu)技術(shù)。
分布式架構(gòu)的好處和優(yōu)點(diǎn)---->必然性,適應(yīng)市場需求,能夠去找一些更大的平臺(tái)發(fā)展,提升自己的綜合技術(shù)能力和薪資。
從分布式架構(gòu)原理,到分布式架構(gòu)策略,再到分布式架構(gòu)中間件,最后會(huì)有分布式架構(gòu)實(shí)戰(zhàn),讓程序員可以在技術(shù)深度和技術(shù)廣度上得到飛躍的提升,成為互聯(lián)網(wǎng)行業(yè)所需要的T型人才。

(跟上技術(shù)節(jié)奏,擴(kuò)寬技術(shù)視野,程序員要往上提升,要有自己的技術(shù)工具箱和技術(shù)認(rèn)知。)
4.微服務(wù)架構(gòu)專題
隨著業(yè)務(wù)的發(fā)展,代碼量的膨脹和團(tuán)隊(duì)成員的增加,傳統(tǒng)單體式架構(gòu)的弊端越來越凸顯,嚴(yán)重制約了業(yè)務(wù)的快速創(chuàng)新和敏捷交付。為了解決傳統(tǒng)單體架構(gòu)面臨的挑戰(zhàn),先后演進(jìn)出了SOA服務(wù)化架構(gòu)、RPC框架、分布式服務(wù)框架,最后就是當(dāng)今非常流行的微服務(wù)架構(gòu)。微服務(wù)化架構(gòu)并非銀彈,它的實(shí)施本身就會(huì)面臨很多陷阱和挑戰(zhàn),涉及到設(shè)計(jì)、開發(fā)、測試、部署、運(yùn)行和運(yùn)維等各個(gè)方面,一旦使用不當(dāng),則會(huì)導(dǎo)致整個(gè)微服務(wù)架構(gòu)改造的效果大打折扣,甚至失敗。

微服務(wù)架構(gòu)專題
5.性能優(yōu)化
大家都知道,這個(gè)一直是讓程序員比較頭疼的問題。當(dāng)系統(tǒng)架構(gòu)變得復(fù)雜而龐大之后,xing能方面就會(huì)下降,如果想成為一名優(yōu)秀的架構(gòu)師,xing能優(yōu)化就是你必須思考的問題。

(追求高效、科學(xué)調(diào)優(yōu),不靠碰運(yùn)氣)
6.高并發(fā)
從Java基礎(chǔ)接觸多線程,到分布式架構(gòu)環(huán)境下的高并發(fā)訪問,并發(fā)編程充分利用好各個(gè)服務(wù)器處理器,以最高的效率處理各個(gè)任務(wù)協(xié)同有序工作。透徹理解鎖的應(yīng)用

7.電商項(xiàng)目
電商項(xiàng)目目的是把所學(xué)的分布式,微服務(wù),性能調(diào)優(yōu)等知識(shí)運(yùn)用起來,只有在項(xiàng)目中你才能鞏固知識(shí),提升自己。實(shí)踐電商項(xiàng)目會(huì)利用云服務(wù)器搭建真實(shí)的開發(fā)和部署環(huán)境,讓你從零到項(xiàng)目實(shí)戰(zhàn),體驗(yàn)真實(shí)的企業(yè)級(jí)項(xiàng)目開發(fā)過程,讓你具備獨(dú)立開發(fā)和搭建分布架構(gòu)系統(tǒng)的能力。

這是高級(jí)Java開發(fā)人員最常訪問的幾個(gè)網(wǎng)站。 這些網(wǎng)站提供新聞,一般問題或面試問題的答案,精彩的講座等。質(zhì)量是優(yōu)秀網(wǎng)站的關(guān)鍵因素,這此網(wǎng)站都有較高的質(zhì)量內(nèi)容。下面逐一介紹:
Stackoverflow.com可能是編程世界中最受歡迎的網(wǎng)站。 有數(shù)百萬個(gè)好問題和答案。 學(xué)習(xí)API或編程語言通常依賴于代碼示例,stackoverflow有很多代碼段。
stackoverflow的另一件好事是它是社交的。 您可以在某些標(biāo)簽下查看問題,例如 “java”和“regex”,那么可以看到什么問題是最常被問及最多的投票。這可以作為學(xué)習(xí)的良好資源,也是編寫Java博客熱門話題的好資源。
網(wǎng)站URL:http://stackoverflow.com/
DZone這個(gè)網(wǎng)站很有趣,很多開發(fā)者分享他們的博客文章。 分類一般,所以您可能不知道會(huì)在這個(gè)網(wǎng)站下一步閱讀什么東西。
網(wǎng)站URL:http://www.dzone.com
如果面試問題是java,比如“Java中內(nèi)存中的數(shù)組看起來像什么”,那么可以從很多Java教程中獲得答案。 但是,如果問題類似于“如何將已排序的數(shù)組轉(zhuǎn)換為平衡樹”,這此可以從LeetCode中找到。
leetcode是一個(gè)準(zhǔn)備IT技術(shù)訪談的社交平臺(tái),并包含一系列算法相關(guān)問題。 可以通過提供不同大小的數(shù)據(jù)來檢查你的代碼是否正確。 要在技術(shù)面試中取得成功,他們認(rèn)為主要是重復(fù)這三個(gè)重要步驟:代碼→閱讀→討論。
網(wǎng)站URL:?http://leetcode.com/
本網(wǎng)站包含您將需要使用Java SE的API的所有文檔。 即使是高級(jí)Java開發(fā)人員,確信您會(huì)在這里找到一些有用的東西。 例如,您可以閱讀“基本Java類”,“部署”等的一些教程。
網(wǎng)站URL:?http://docs.oracle.com/javase/
您可以在Github上免費(fèi)托管項(xiàng)目,但您可能不知道它是學(xué)習(xí)流行Java庫和框架的極好資源。 例如,如果你想學(xué)習(xí)Spring MVC框架,可以搜索并找到一些開源項(xiàng)目。 可以通過示例快速學(xué)習(xí)框架,特別是如果您已經(jīng)有了類似框架的一些經(jīng)驗(yàn)。
網(wǎng)站URL:?https://github.com/
這是視頻學(xué)習(xí)的最佳網(wǎng)站。 可以從頂尖學(xué)校的著名教授那里找到很多很好的計(jì)算機(jī)科學(xué)課程。 其中一些甚至是一些計(jì)算機(jī)科學(xué)領(lǐng)域的發(fā)明者。
網(wǎng)站URL:?https://www.coursera.org/
這個(gè)網(wǎng)站包含了大量關(guān)于各種主題的Java教程。 很多文章都寫得很好,并有插圖的圖片/圖表。 它可以用作深度學(xué)習(xí)的書。
網(wǎng)站URL:?http://www.javaworld.com/
作者:杜彌
鏈接:http://m.itdecent.cn/p/a30acb065a85
來源:簡書
簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。