碼農(nóng)很多,但程序員并不多

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)容。下面逐一介紹:

1. Stackoverflow

Stackoverflow.com可能是編程世界中最受歡迎的網(wǎng)站。 有數(shù)百萬個(gè)好問題和答案。 學(xué)習(xí)API或編程語言通常依賴于代碼示例,stackoverflow有很多代碼段。

stackoverflow的另一件好事是它是社交的。 您可以在某些標(biāo)簽下查看問題,例如 “java”和“regex”,那么可以看到什么問題是最常被問及最多的投票。這可以作為學(xué)習(xí)的良好資源,也是編寫Java博客熱門話題的好資源。

網(wǎng)站URL:http://stackoverflow.com/

2. DZone

DZone這個(gè)網(wǎng)站很有趣,很多開發(fā)者分享他們的博客文章。 分類一般,所以您可能不知道會(huì)在這個(gè)網(wǎng)站下一步閱讀什么東西。

網(wǎng)站URL:http://www.dzone.com

3. LeetCode

如果面試問題是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/

4. Java SE技術(shù)文檔

本網(wǎng)站包含您將需要使用Java SE的API的所有文檔。 即使是高級(jí)Java開發(fā)人員,確信您會(huì)在這里找到一些有用的東西。 例如,您可以閱讀“基本Java類”,“部署”等的一些教程。

網(wǎng)站URL:?http://docs.oracle.com/javase/

5. Github

您可以在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/

6. Coursera

這是視頻學(xué)習(xí)的最佳網(wǎng)站。 可以從頂尖學(xué)校的著名教授那里找到很多很好的計(jì)算機(jī)科學(xué)課程。 其中一些甚至是一些計(jì)算機(jī)科學(xué)領(lǐng)域的發(fā)明者。

網(wǎng)站URL:?https://www.coursera.org/

7. Java World

這個(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)并注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,365評(píng)論 25 708
  • 無論在草原還是在荒漠 都有那小小的身影 被樹的高大所覆蓋 被花的嬌艷所遮掩 卻獨(dú)立于自己的天地 享受著 風(fēng)吹與日曬...
    魚仔吖閱讀 163評(píng)論 1 2
  • 剛剛看到個(gè)姑娘,圖書館臺(tái)階上(背著米色雙肩背包,手里拿著黑色遮陽傘和玻璃水杯,帆布鞋,牛仔褲,燙了卷發(fā),也應(yīng)該剛剛...
    與洛閱讀 830評(píng)論 0 3
  • 首先想問什么是演示工具? 我對(duì)演示工具的定義是: 在提供一定的物質(zhì)及必要情況下,促進(jìn)參與者理解并記憶演講者需要傳達(dá)...
    Ludiwgbet閱讀 1,707評(píng)論 5 32
  • 《感恩是體驗(yàn)來的,會(huì)感恩的人是幸福的》 今晚在cctv_1播出的2017感動(dòng)中國最美孝心少年中的十位少年的真實(shí)生...
    睿婕生涯心理咨詢工作室閱讀 356評(píng)論 0 1

友情鏈接更多精彩內(nèi)容