月薪兩萬java程序員的學習心得,太有用了
java需要的書籍涵蓋領域:Java入門書籍,Java基礎及進階書籍,框架與中間件,架構(gòu)設計,設計模式,數(shù)學與算法,JVM周邊語言,項目管理&領導力&流程,職業(yè)素養(yǎng)與個人成長,格局與視野,面試參考書 第一點就是自身的問題,雖然想要轉(zhuǎn)行學習Java的人很多,但是非常強烈的想要轉(zhuǎn)行學好的人是小部分。而大部分人只是抱著試試的心態(tài)來學習Java,這是完全不可能的。所以能不能學成Java并且就業(yè),最關鍵的一點就是自己的愿望是否強烈。我是屬于非常強烈那種,因為忍受不了現(xiàn)在工作的氛圍,以及羨慕朋友在北京可以拿到3萬的月薪,這些因素都促使我非常拼命的學。在加上自身可以做到從下班就開始看視頻自學,一直學到晚上12點的這股勁,所以才能在5個月的時間內(nèi)達到就業(yè)的水平。第二點就是有大佬帶你,如果全程都靠自己摸索是非常難的,對于一個不是本專業(yè)的人來說從開始的時候就“無從下手”。更不要說在學習過程中遇到的無數(shù)bug問題很難得到解決,因為我們在學習過程中會遇到無數(shù)問題,有的時候一個小問題就能困擾我們幾個小時的時間,會導致我們的學習效率很低,這種情況出現(xiàn)多了以后,信心就會受到打擊,覺得自己不適合學編程,最終放棄。而當有一個大佬去給你解答后,你會很快得到答案,并且能理解為什么要這樣做,到底是哪里出現(xiàn)了問題,學習效率會非常高。 所以總結(jié)就是自身自覺主動學習在加上大佬全程帶你,其實學習就是這么簡單的事情,無非就是這兩個關鍵的要素,少了其中一個都很難成功。自學Java必須注意的問題: (1)代碼規(guī)范 初學者一定要注意培養(yǎng)自己的代碼規(guī)范,每行代碼必須要注釋,我之所以只學了5個月就能拿到9K的薪資,就是因為我代碼規(guī)范很好。其實一個初學者在開始的時候能培養(yǎng)出好的代碼規(guī)范很難,這源于在整個學習過程中有大佬帶我的原因。 (2)交流溝通 切記不要認為自己可以摸索自學成功,能達到一定高度的水平,一定離不開很多專業(yè)人的指導,所以多認識一些大佬尤為重要,圈子真的可以決定我們可以達到什么水平。如果大家找不到合適的圈子,我強烈建議大家添加下面的Java技術研討群,多認識幾個大佬對于職業(yè)生涯有好處。3)效率: 能快盡量快,如果你已經(jīng)決定要轉(zhuǎn)行學習Java,就千萬別拖泥帶水,把大部分的精力都投入進來,如果你是那種三天打魚兩天曬網(wǎng)的情況,我勸你盡早的放棄不要浪費時間,有這個時間去鍛煉鍛煉身體不好嗎?4)學習心態(tài) 一定要抱著決心轉(zhuǎn)行的心態(tài)來學,自身的意愿強度決定了你是否能轉(zhuǎn)行成功。 給自學Java的初學者的學習建議: 1.了解如今的市場,都需要掌握哪些主要技術就可以快速就業(yè),目前的企業(yè)都需要什么人才,這是你學習的方向和目標。 2.系統(tǒng)的學習規(guī)劃:有一個整體學習大綱,要知道自己每天學習什么,做什么練習進行知識鞏固,一個階段學完后應該完成什么項目實戰(zhàn),進行循序漸進的學習,不可以盲目的瞎學。.一個大佬的指導:作為一個初學者一定要記得找大佬指導你,即使是花點錢也沒關系,只要你能把技術學好就行。自己摸索基本都是彎路,很多人為什么學了一兩個月就放棄了,因為他不知道路在哪里,整個人都是迷茫的,自然容易放棄。但如果你有了一個大佬帶你,他就會給你做詳細的學習計劃,給你安排好一切,在整個學習過程中給你解答疑問,你學習起來就會思路清晰,簡單效率。 Java主要的學習內(nèi)容:一、JavaSE基礎篇 JavaSE就是一種標準版,是Java語言的基礎部分,Java衍生出來的各種框架(如Spring系列)各種產(chǎn)品都是基于JavaSE標準,JavaSE是Java向上發(fā)展的基礎,Java任何高級產(chǎn)品的底層基礎都是JavaSE,通俗來講這是所有孩子的”爹“。JavaSE如果學不好,理解不透徹,后面學習框架時就有如天書一般,所以JavaSE這部分的重要性是不言而喻的,希望各位初學者銘記。 主要包含內(nèi)容:數(shù)據(jù)類型、基礎語法、運算符、流程控制、數(shù)組、面向?qū)ο?、常用類、異常處理、集合、IO流、多線程、反射、注解、解析、網(wǎng)絡編程。、數(shù)據(jù)庫篇 數(shù)據(jù)庫是學習Java語言必學的一項內(nèi)容,常見的數(shù)據(jù)庫就是MySQL和Oracle這兩種,作為初學者一般都是學習MySQL為主,一般情況下中小型企業(yè)都會選擇MySQL數(shù)據(jù)庫,比較大型的互聯(lián)網(wǎng)公司會選擇用Oracle,而學習Oracle相對于MySQL也要復雜一些,建議是主要學習MySQL數(shù)據(jù)庫,Oracle作為了解即可。學習數(shù)據(jù)庫較為簡單,基本的操作就是增刪改查。、Web開發(fā) Web前端內(nèi)容:HTML/CSS/JavaScript/(前端頁面) 注意:Java后端開發(fā)可以不用過多關注HTML頁面及CSS的處理,但是最起碼要會用簡單的HTML,JavaScript是必需要會的,因為Javaweb后端程序員畢竟要接觸使用AJAX方式處理數(shù)據(jù)及顯示。當然如果只關注服務器端實現(xiàn)而不考慮任何用戶界面,則HTML、CSS、JavaScript都不用關注,但是完全脫離前端的開發(fā)現(xiàn)在雖然也不少,但是絕對不關心前端是不可能,尤其是JavaScript,但是前端卻可以完全不關心服務器后臺的任何實現(xiàn)。 JavaEE內(nèi)容:Servlet/JSP雖然現(xiàn)在網(wǎng)上在傳JSP很少用了,可能是被一些模板或JS AJAX方式代替了一些,但是我認為還是應該接觸一下,萬一要用到不會怎么辦,而且它是Java EE的動態(tài)網(wǎng)頁實現(xiàn)標準組件。學習JSP過程也能更好的幫助我們理解web會話的過程,掌握web會話都有哪些我們必需知道的。如果學習Javaweb、JSP都不接觸那就相當于學習使用Springboot而一點不接觸SpringFramework一樣,豈不是稀里糊涂。包括開發(fā)Javaweb 我們必需知道的概念諸如Web應用上下文,請求對象,響應對象,HttpSession,Cookie等都是在接觸學習JSP和Servelt中體現(xiàn)的,還有一些比較少見的EJB JSF JMS 以及 Java Felix等。一些初學者不清楚這些難免會有誤區(qū),尤其是有些較成熟的工程師也這么說,我只能說他們很無知,只是代碼機器而已,其實對于應用開發(fā)設計也就稀里糊涂,人云亦云罷了。 永遠沒有被淘汰的技術也沒有永遠流行萬能的技術,要看在什么環(huán)境和場合應用,符合我需求的技術和工具就是好的,就是對的。四、高級框架 1、Springframework 核心IOC容器 2、Spring boot 在Spring基礎上的更全面提升效率的Spring工具 3、ORM 框架當今流行使用較多的是Mybatis 和 MP(Mybatis插件),Hibernate是可選性學習的 4、模板技術,比較成熟的Freemarker 5、Spring Cloud 微服務框架,Spring Cloud提供的全套的分布式系統(tǒng)解決方案。 五、工具maven 是構(gòu)建管理項目的工具,svn 和git是團隊協(xié)作開發(fā)的項目源代碼及相關文檔資料管理工具,需要學習者初步掌握其應用。 像Tomcat,jetty ,resin,JBoss,GlassFish 等都是部署運行Java web應用的服務器。