我15年專科畢業,到今已有3個年頭。期間入職過兩家公司。前端
不少次學習技術,都是走到臨門一腳,而後就沒有往下了。我和大牛之間的差距就是,別人看完了源碼,而我只是會用。java
這是我20170412作的一次筆記,最後記住就是有多少種設計模式linux
系統的瞭解一下, 是這樣的。c++
而後這樣的程序員
有幸閱讀了《刻意練習》這本書,收穫的3大技巧web
第一步:走出溫馨區面試
第二步:尋找導師spring
第三步:刻意練習sql
Java程序員學習要求:數據庫
分佈式、Spring MVC、Spring Boot、Spring Cloud、ZooKeeper、Kafaka、Redis、MQ。
基本就是兩招:
1. 用到哪塊學通哪塊,要學精仍是有難度的,第一二次上夠用就行,任何知識都架不住多用啊,第三次以後逐一吃透便可。(不要急,也不要求多,這就是個人心態)
2. 多買一些基礎書籍,我通常喜歡多看數目錄,選擇其中看不懂的反覆讀。
如今最主要的是吸取JAVA的思想和深度理解JAVA企業開發的優點和弊端。
臨淵羨魚,不如退而結網
第一家是爲"用友"集團作ERP外包的軟件公司。那時候,對於大部分專科生來講,畢業不失業,那就算走上正軌了。
這樣從事ERP開發的公司,已經有了一套本身成熟的大型軟件框架系統。本身在校瞭解學習的spring,hibernate等框架並無獲得實踐的機會。反而由於數據庫SQL的通用性,被安排了一份根據報表需求,專門寫SQL的工做,就這樣入職培訓1個月後,順利上崗。
那會兒本身只會"select * from emp",能用到分組查詢"group by" ,就感受很深刻了。但是,甲方的需求不可能這麼簡單,各類複雜查詢"啪啪啪"得打臉。沒有人帶,沒有人問,面對項目負責人天天的怒罵,只能本身上網搜資料。磕磕絆絆,解決了連表查詢,多字段排序,去重,合併等,感受本身能力增加了很多,有點小膨脹,開始想"我要打十個!!"。甲方沒有辜負個人心裏想法,順利完成前幾個任務後,工做量開始陡然變大。以後的2個月,天天聯繫甲方的經理,瞭解業務;詢問老同事,查詢數據字典,瞭解字段含義,就這樣,完成了人生工做裏第一個項目。
回想這段工做經歷,我以爲我最大的收穫就是:學會了本身嘗試解決問題的能力,而不是面對問題,變得不知所措。雖然效率不理想,但邁出了第一步。若是再深刻總結一下,不足之處還有不少。好比:當本身的技能不能勝任工做需求,除了第一時間,學習關鍵技能(能夠向人請教,上網查找),完成工做需求。還應該在課後系統的回顧一下知識點。好比買本書,把基礎示例上機敲一遍,我相信,對已經會的內容,你會有新的認識。而不會的,將加入你的技能樹中。
以後團隊(10來我的)領導內部鬥爭,拉幫結夥,天天上班並無不少的工做。我對比一塊兒出來的小夥伴的狀況,認爲本身的能力和薪資都不會有提升,在入職6個月時,提出了離職。
第二家公司是一家創業小公司(12我的左右),可是公司偏硬件(嵌入式開發:電路板設計,生產,配套驅動等全作),爲之服務的軟件也是以.NET爲主。他們招我進去的職位是java開發工程師,算是填補了web開發方面的空白,在這家公司一直任職到如今。
入職後,先是接手了一個小型Java SE就能作的server項目,同時使用的數據庫也從上一家的Oracle變成了MySQL。該項目技術點有基本io,線程,jdbc,JNA(鏈接硬件c++庫),WebService(與C#端作RPC通訊)。這個項目一樣,沒有人交流詢問,由於他們也不懂。查詢資料期間瞭解到了CSDN,博客園,開源中國等知名網站。通過一個半月,第一個小版本聯調成功,當時成就感滿滿,跑了大半年幾乎沒問題。
接下來一直作的都是WEB開發的項目,從簡單的前端頁面到後臺應用服務,都由本身完成。由於業務緣由,都是相似的"XXX管理系統"。幾個項目上線後根據客戶需求,一直在維護。接連幾個項目上線,並無發生什麼問題,讓我在公司也獲得了一份確定。而我那段時間也安於現狀,天天過着"三點一線"式的生活。今年年初,我漸漸意識到了問題。
因爲公司業務和當下流行的互聯網技術(高併發處理,分佈式處理等)徹底不搭,且"XXX管理系統"這樣的軟件同時使用的人數很少,併發訪問這種問題幾乎沒有。一方面,本身平時會瀏覽CSDN這樣的網站,"高併發","虛擬化","XX解決方案"這樣高大上的文章點進去,發現本身看不懂的,有些關鍵詞都不瞭解。一方面,本身回顧本身掌握的技術,也僅僅是SSM和數據庫的使用。對linux,虛擬機,版本控制,工程化管理,nosql,集羣等根本沒有不少深刻的認識,再次放大了危機感。
我認真思考了所面臨的問題,決定靜下心,放下那種"着急"的感受,從頭開始學習。從《Java技術核心-基礎知識》開始查漏補缺,結束之後開始看Java Collection框架,本身翻源碼,使用uml工具畫繼承圖。從最簡單的ArrayList開始,帶着網上的結論"ArrayList內部維護的是數組"的結論,看每個方法的實現原理。看着本身明白了之前未曾去想的實現原理,也拾起了信心。接下來經過學習tomcat的實現過程,對servlet有了進一步的認識。
一次偶然的機會,在網上看見了小馬哥的《理解Java內省機制》。內省?是什麼?當時的我一臉懵逼,難道以前的java白學了?點進去一看,哇,原來除了反射,java還有這種機制!也正是此次,小馬哥那種三言兩語就能將複雜原理說清楚的能力,讓我再次認識了java!期間從NIO,到手寫IOC。雖然本身會使用,但每一次都有新的收穫!
那如何學習才能快速入門並精通呢?
當真正開始學習的時候不免不知道從哪入手,致使效率低下影響繼續學習的信心。
但最重要的是不知道哪些技術須要重點掌握,學習時頻繁踩坑,最終浪費大量時間,因此有一套實用的視頻課程用來跟着學習是很是有必要的。
爲了讓學習變得輕鬆、高效,今天給你們免費分享一套阿里架構師傳授的一套教學資源。幫助你們在成爲架構師的道路上披荊斬棘。
這套視頻課程詳細講解了(Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構)等成爲架構師必備的內容!
歡迎工做一到五年的 Java 的工程師朋友們加入的 Java 架構開發:685167672 本羣提供免費的學習指導架構資料以及免費的解答 不懂得問題均可以在本羣提出來以後還會有職業生涯規劃以及面試指導
歡迎關注這個公衆號,裏面也會分享一些面試經歷和架構乾貨知識,幫助你們提高面試技巧