碼農很多,但程式設計師並不多......

程式碼全靠copy發表於2018-06-21

IT 時代的膨脹已經讓編碼工作如同文藝復興時的印刷匠一樣,編碼門檻越來越低。

例如,遍地《一週XX速成》、《20天XX精通》,彷彿會寫程式碼就成了程式設計師,這讓很多人認為從事編碼工作就是碼農。

其實,印刷匠很多,成為大師的不多;碼農很多,但程式設計師並不多。程式設計師不是碼農,碼農也不是真正的程式設計師。

碼農很多,但程式設計師並不多......

程式設計師在英文裡對應有三個單詞:Coder、Programmer 和 Software Engineer。

我覺得這三個詞,生動形象地描述了程式設計師所需要經歷的三個階段,或者說三個境界:

Coder:只要求能夠熟練使用程式設計環境,精通幾種程式語言、開發框架和開發庫,擅長寫程式碼就可以了。這個階段的程式設計師能夠按照既定的設計完成編碼。

Programmer:要求在 Coder 的基礎之上,精通設計模式、演算法實現和編碼技巧,並具備熟練應用的能力,這個階段的程式設計師能夠獨立編碼解決現實問題。

Software Engineer:要求在掌握業務知識的前提下,理解為什麼這麼實現,在綜合考慮架構實現,權衡開發成本後,為解決業務問題提出最優方案,並能與業務人員順暢溝通,讓業務人員理解方案。

編碼工作達到這個階段,才能稱得上是真正的程式設計師,才真正實現了從工作到職業的轉變。

不可否認,這個世界上有一些天才的程式設計師,他們喝著咖啡,哼著歌,便完成了上面三個階段的修煉。但絕大部分人,都需要為此付出巨大的時間和精力。

能否成為職業的程式設計師,影響因素和方法論很多,各種學習類、技術類的總結遍地都是:主動思考、及時總結、制定規劃等。但我認為其中最重要的是能否做到專注。

許多沒有達到第三個階段的程式設計師,就是因為受到各種因素誘惑,變得心猿意馬,不夠專注。

因為不夠專注,他們不在意做好自己本職工作,不在意錘鍊自己的技能,不在意學習新興的技術。

慢慢的,他們會認為從事編碼沒有出路,進而毫無例外地把程式設計看成是體力勞動,只會貼上拷貝程式碼,知其然而不知其所以然,導致技術停滯不前。

在這樣的狀態下工作 5 年、10 年,對於他們來說,沒什麼區別,程式設計師真的就是吃青春飯的碼農。

當我們向老闆提出加薪的時候,或者跳槽去“撿”offer的時候,我們底氣夠嗎?

敢不敢不給漲薪就“揮一揮衣袖,不帶走一個bug”?是不是提出要求後你的主管、經理立刻

同意,為了把你留住。然而,現實往往是...

技術不過硬,其他的都免談。

針對這樣的情況

在這裡為大家列出以下體系圖

針對下面的技術我特意整理了一下,有很多技術不是靠幾句話能講清楚,所以乾脆找朋友錄製了一些視訊,要做到知其然還要知其所以然。如果想學習Java工程化、高效能及分散式、深入淺出。效能調優、Spring,MyBatis,Netty原始碼分析的朋友可以加我的Java進階君羊609164807,君羊裡有阿里大牛直播講解技術,以及Java大型網際網路技術的視訊免費分享給大家。

進:可以領取免費的架構師學習資料。

進:瞭解最新的學習動態

進:瞭解最新的阿里,京東招聘資訊

進:獲取更多的面試資料

可以參考一下學習

1. 工程化專題

一名優秀的架構師必須有適合自己的兵器,也就是工欲善其事必先利其器,不管是小白,還是資深開發,都需要先選擇好的工具。工程化專題的學習能幫助你和團隊提升開發效率,讓自己有更多時間來思考。

Git:可以更好地管理你和你團隊的程式碼。

Maven:可以更好地管理jar包和專案的構建等。

Jenkins:可以更好地持續編譯,整合,釋出你的專案。

Sonar:一個開源的程式碼質量分析平臺,便於管理程式碼的質量,可檢查出專案程式碼的漏洞和潛在的邏輯問題(提升程式碼的質量,更加高效地提升開發效率)。


碼農很多,但程式設計師並不多......

(團隊大於3個人之後,你需要去考慮團隊合作,科學管理)

2.原始碼分析專題

學習Java技術體系,設計模式,流行的框架與元件是必不可少的:

原始碼分析專題詳細介紹了原始碼中所用到的經典設計思想及常用設計模式,先打好內功基礎,瞭解大牛是如何寫程式碼的,從而吸收大牛的程式碼功力。

結合Spring5和MyBatis原始碼,帶你理解作者框架思維,幫助大家尋找分析原始碼的切入點,在思想上來一次巨大的昇華。

碼農很多,但程式設計師並不多......

(好的程式設計師,一行程式碼一個設計就能看出來,原始碼分析帶你品味程式碼,感受架構)

3.分散式架構

有了大牛的程式碼功底之後,接下來可以更好地學習分散式架構技術。

分散式架構的好處和優點---->必然性,適應市場需求,能夠去找一些更大的平臺發展,提升自己的綜合技術能力和薪資。

從分散式架構原理,到分散式架構策略,再到分散式架構中介軟體,最後會有分散式架構實戰,讓程式設計師可以在技術深度和技術廣度上得到飛躍的提升,成為網際網路行業所需要的T型人才。

碼農很多,但程式設計師並不多......

(跟上技術節奏,擴寬技術視野,程式設計師要往上提升,要有自己的技術工具箱和技術認知。)

4.微服務架構專題

隨著業務的發展,程式碼量的膨脹和團隊成員的增加,傳統單體式架構的弊端越來越凸顯,嚴重製約了業務的快速創新和敏捷交付。為了解決傳統單體架構面臨的挑戰,先後演進出了SOA服務化架構、RPC框架、分散式服務框架,最後就是當今非常流行的微服務架構。微服務化架構並非銀彈,它的實施本身就會面臨很多陷阱和挑戰,涉及到設計、開發、測試、部署、執行和運維等各個方面,一旦使用不當,則會導致整個微服務架構改造的效果大打折扣,甚至失敗。


碼農很多,但程式設計師並不多......

微服務架構專題

5.效能優化

大家都知道,這個一直是讓程式設計師比較頭疼的問題。當系統架構變得複雜而龐大之後,xing能方面就會下降,如果想成為一名優秀的架構師,xing能優化就是你必須思考的問題。


碼農很多,但程式設計師並不多......

(追求高效、科學調優,不靠碰運氣)

6.高併發

從Java基礎接觸多執行緒,到分散式架構環境下的高併發訪問,併發程式設計充分利用好各個伺服器處理器,以最高的效率處理各個任務協同有序工作。透徹理解鎖的應用

碼農很多,但程式設計師並不多......

7.電商專案

電商專案目的是把所學的分散式,微服務,效能調優等知識運用起來,只有在專案中你才能鞏固知識,提升自己。實踐電商專案會利用雲伺服器搭建真實的開發和部署環境,讓你從零到專案實戰,體驗真實的企業級專案開發過程,讓你具備獨立開發和搭建分佈架構系統的能力。

碼農很多,但程式設計師並不多......

這是高階Java開發人員最常訪問的幾個網站。 這些網站提供新聞,一般問題或面試問題的答案,精彩的講座等。質量是優秀網站的關鍵因素,這此網站都有較高的質量內容。下面逐一介紹:

1. Stackoverflow

Stackoverflow.com可能是程式設計世界中最受歡迎的網站。 有數百萬個好問題和答案。 學習API或程式語言通常依賴於程式碼示例,stackoverflow有很多程式碼段。

stackoverflow的另一件好事是它是社交的。 您可以在某些標籤下檢視問題,例如 “java”和“regex”,那麼可以看到什麼問題是最常被問及最多的投票。這可以作為學習的良好資源,也是編寫Java部落格熱門話題的好資源。

網站URL:http://stackoverflow.com/

2. DZone

DZone這個網站很有趣,很多開發者分享他們的部落格文章。 分類一般,所以您可能不知道會在這個網站下一步閱讀什麼東西。

網站URL:http://www.dzone.com

3. LeetCode

如果面試問題是java,比如“Java中記憶體中的陣列看起來像什麼”,那麼可以從很多Java教程中獲得答案。 但是,如果問題類似於“如何將已排序的陣列轉換為平衡樹”,這此可以從LeetCode中找到。

leetcode是一個準備IT技術訪談的社交平臺,幷包含一系列演算法相關問題。 可以通過提供不同大小的資料來檢查你的程式碼是否正確。 要在技術面試中取得成功,他們認為主要是重複這三個重要步驟:程式碼→閱讀→討論。

網站URL: http://leetcode.com/

4. Java SE技術文件

本網站包含您將需要使用Java SE的API的所有文件。 即使是高階Java開發人員,確信您會在這裡找到一些有用的東西。 例如,您可以閱讀“基本Java類”,“部署”等的一些教程。

網站URL: http://docs.oracle.com/javase/

5. Github

您可以在Github上免費託管專案,但您可能不知道它是學習流行Java庫和框架的極好資源。 例如,如果你想學習Spring MVC框架,可以搜尋並找到一些開源專案。 可以通過示例快速學習框架,特別是如果您已經有了類似框架的一些經驗。

網站URL: https://github.com/

6. Coursera

這是視訊學習的最佳網站。 可以從頂尖學校的著名教授那裡找到很多很好的電腦科學課程。 其中一些甚至是一些電腦科學領域的發明者。

網站URL: https://www.coursera.org/

7. Java World

這個網站包含了大量關於各種主題的Java教程。 很多文章都寫得很好,並有插圖的圖片/圖表。 它可以用作深度學習的書。

網站URL: http://www.javaworld.com/


相關文章