码农很多,但程序员并不多......
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/
轉載于:https://juejin.im/post/5b2b8ae5f265da59a76c8fa4
總結
以上是生活随笔為你收集整理的码农很多,但程序员并不多......的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Studio中mac上面
- 下一篇: Windows批处理(cmd/bat)常