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)境樊破,精通幾種編程語(yǔ)言、開發(fā)框架和開發(fā)庫(kù)唆铐,擅長(zhǎng)寫代碼就可以了哲戚。這個(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ⅲ麄儾辉谝庾龊米约罕韭毠ぷ饔貌龋辉谝忮N煉自己的技能渠退,不在意學(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)市場(chǎ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ā)凡伊、測(cè)試零渐、部署、運(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ì)量?jī)?nèi)容。下面逐一介紹:
Stackoverflow.com可能是編程世界中最受歡迎的網(wǎng)站降允。 有數(shù)百萬個(gè)好問題和答案恩闻。 學(xué)習(xí)API或編程語(yǔ)言通常依賴于代碼示例,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庫(kù)和框架的極好資源芽腾。 例如,如果你想學(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://www.reibang.com/p/a30acb065a85
來源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處段誊。