02.28 入手java,應該怎樣學習才好?

是史亞珍


學編程沒有捷徑,主要是多寫,多寫,多寫,多思考,學編程說白了就是在學編程的思想,你寫多了自然而然就會了,當你再回頭看看的時候你就會發現,原來編程也不過如此。剛開始學會感覺很難,很複雜,但是如果熬過了很難的這段時間你就算是入門了。只是入門,往後的日子還很長很長很長。


一千檸檬


Java語言是當今程序開發領域的重要工具之一,整個IT行業有大量的Java程序員在從事Web開發、大數據開發、Android開發、後端開發等崗位,因此從就業的角度來說,學習Java語言是個不錯的選擇。

學習Java語言可以從以下幾個方面入手:

第一:理解Java語言中的“抽象”。Java語言是面向對象編程語言,具有較高的抽象層次,所以說學習Java的一個重點就是理解各種“抽象”概念,比如類(class)、接口(interface)、抽象類(abstract class)、枚舉(enum)等概念。理解抽象的過程也是建立面向對象編程思想的過程,也就是考慮問題的方式方法。

第二:掌握Java語言的編程過程。Java語言的編程過程總的來說可以分為三個大的步驟,分別是類的定義、對象的創建和方法的調用,這是Java編程的“主線”。在掌握了Java編程這條主線之後,緊接著就要分別瞭解封裝、繼承、多態等概念的應用,進而逐步完成對Java開發過程的瞭解。

第三:重視實驗和總結。學習Java編程一定要多動手做實驗,通過實驗一方面可以建立抽象概念的畫面感,另一方面也可以通過實驗培養自己的動手能力。另外,實驗完成之後一定要及時的總結,這是完善編程思想的重要過程。

第四:注重交流。學習Java語言一定要多與其他程序員交流,交流的過程也是學習的過程,另外可以通過閱讀優秀的代碼來養成一個較好的編程習慣。

最後,在學習完Java的基本語法之後,要選擇一個發展方向,不同的開發方向需要掌握的知識結構是不同的,因此需要制定不同的學習計劃。通常情況下,如果沒有明確的開發方向,可以選擇Web開發方向。


IT男帶你一起學編程



一隻快樂的小碼農


Java發展火熱,前景好薪資高,很多人都想學Java。那麼成都Java學習有哪些渠道和途徑?成都Java又應該怎麼學呢?從三個方面告訴你,入手Java,應該怎麼樣學習才好。

其實總體來說,成都Java學習不外乎以下三種渠道和途徑。下面我將一一為你講解,成都Java到底應該怎麼學?

第一,自學。自學,顧名思義,就是自己學習,自己去尋找相關資料,自主學習。這種學習方式的好處就是學習自由度高,你可以根據自己的實際情況來安排你的學習時間。但缺點也比較明顯,自學對個人的自律程度要求比較高,如果你沒有很好的自律,可能就是三天打魚兩天曬網。還有個缺點就是,自學無人監督,無人指導,學習進度較慢,也可能會走進一些誤區。

第二,在線網絡課堂。現在網上有各種各樣的學習課程,免費的收費的都有。利用互聯網,你可以在電腦上或者移動端通過看視頻隨時來進行Java的學習。這種好處的優點就是學習時間安排較為靈活,公交地鐵,想學就學,還可以根據個人事蹟情況重複播放,快進,或者隨時暫停。但它也有著和自學相似的缺點。

成都Java學習的第三種渠道和途徑就是在成都線下報名Java培訓班。這種面向的人群就很廣泛,在校生,畢業一兩年的人,或者想轉行,都可以報個Java培訓班來學習。好處首先是完整全面的課程體系,老師的全程輔導。像成都華清遠見,不僅有教學、教務老師全程監督,後期更有就業老師進行模擬面試輔導、就業輔導、簡歷輔導、面試技巧輔導,聯繫企業召開現場招聘會等等,保證每個學員的就業。

成都Java應該怎麼學?成都Java學習渠道及途徑,不外乎以上幾種方式了。各種情況都有利弊,選擇之前還是要做好綜合的衡量再做決定。


華清遠見成都中心


這個問題其實對任何語言都一樣,入手一門語言,都是先了解語言語法(能用),然後是瞭解標準庫(會用),有了這兩步,加上有點其他語言的底子,應該就可以算是上手了,我們現在校招的很多畢業生,經過1~2個月的傳幫帶,就能達到這個階段了。

剩下就是第三步了,就是靠在項目或者產品上的實踐來加深對技術和業務的理解,這個階段一般都是靠自己自學,靠google和領悟。2至3年後,就能發現有些人對技術和業務已經瞭解很深入(老手),有些還是很膚淺。這個時候一般會是又一個跳槽階段,也就在這個時候,薪資水平在不同人那裡會有很大的差別。

綜上,程序員最重要的是不斷學習(第三個階段),其實IT行業就是一個需要不斷學習的行業(因為技術更新太快),大家剛出來都是一樣的基礎和能力,2~3年後差距立現,如果你是差的一方,那就說明自身還不夠努力。

最後,術業有專攻,JAVA主要應用還是在服務器端,由於其優秀的內存管理,屏蔽了很多程序員能力差異(能力不強的程序員也能寫出不那麼爛的系統),適合長期運行的服務器項目(如web等無UI應用)。

雖然也有swt等優秀的UI庫,也有idea,eclipse和netbean等優秀的桌面端應用,但在桌面端軟件應用還是很少,需要帶jre,負擔比較大。


網絡老鼠Sunny


系統的學習JAVA的過程如下:

第一階段

你需要學習JAVA語言的基礎知識以及它的核心類庫 (collections,serialization,streams,networking, multithreading,reflection,event,handling,NIO,localization,以及其他)。零基礎推薦你看看動力節點杜老師在B站上的視頻教程,播放已經破百萬了,我看了一下,很適合新手學習,講的超細緻。

你需要學習java數據庫技術,如JDBCAPI並且會使用至少一種persistence/ORM構架,例如Hibernate,JDO, CocoBase,TopLink,InsideLiberator(國產JDO紅工廠軟件)或者iBatis。

你應該熟練掌握一種JAVAIDE例如sunOne,netBeans,IntelliJIDEA或者Eclipse。(有些人更喜歡VI或EMACS來編寫文件。隨便你用什麼了:)

你需要熟悉一種單元測試體系(JNunit),並且學習不同的生成、部署工具(Ant,Maven)。

你需要熟悉一些在JAVA開發中經常用到的軟件工程過程。例如RUP(RationalUnifiedProcess)andAgilemethodologies。


第二階段

你需要精通面向對象分析與設計(OOA/OOD)、涉及模式(GOF,J2EEDP)以及綜合模式。你應該十分了解UML,尤其是class,object,interaction以及statediagrams。

你應該瞭解JVM,classloaders,classreflect,以及垃圾回收的基本工作機制等。你應該有能力反編譯一個類文件並且明白一些基本的彙編指令。

你還應該瞭解對象關係的阻抗失配的含義,以及它是如何影響業務對象的與關係型數據庫的交互,和它的運行結果,還需要掌握不同的數據庫產品運用,比如:oracle,mysql,mssqlserver。

你需要學習JAVA的沙盒安全模式(classloaders,bytecodeverification,managers,policyandpermissions,

codesigning, digitalsignatures,cryptography,certification,Kerberos,以及其他)還有不同的安全/認證 API,例如JAAS(JavaAuthenticationandAuthorizationService),JCE (JavaCryptographyExtension),JSSE(JavaSecureSocketExtension),以及JGSS (JavaGeneralSecurityService)。


第三階段

你需要學習如何使用及管理WEB服務器,例如tomcat,resin,Jrun,並且知道如何在其基礎上擴展和維護WEB程序。

你需要學習Servlets,JSP,以及JSTL(StandardTagLibraries)和可以選擇的第三方TagLibraries。

  如果你將要 寫客戶端程序,你需要學習WEB的小應用程序(applet),必需掌握GUI設計的思想和方法,以及桌面程序的SWING,AWT, SWT。你還應該對UI部件的JAVABEAN組件模式有所瞭解。JAVABEANS也被應用在JSP中以把業務邏輯從表現層中分離出來。(這條可有可 無)

你需要熟悉主流的網頁框架,例如JSF,Struts,Tapestry,Cocoon,WebWork,以及他們下面的涉及模式,如MVC/MODEL2。

你應該學習如何利用JAVAAPI和工具來構建WebService。例如JAX- RPC(JavaAPIforXML/RPC),SAAJ (SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),JAXM(JavaAPIforXMLMessaging), JAXR(JavaAPIforXMLRegistries),或者JWSDP(JavaWebServicesDeveloperPack)。

15.你需要學習一門輕量級應用程序框架,例如Spring,PicoContainer,Avalon,以及它們的IoC/DI風格(setter,constructor,interfaceinjection)。

20.你需要熟悉對不同有用的API和frame work等來為你服務。例如Log4J(logging/tracing),Quartz (scheduling),JGroups(networkgroupcommunication),JCache(distributedcaching), Lucene(full-textsearch),JakartaCommons等等。

25.JAVA(精確的說是有些配置)是冗長的,它需要很多的人工代碼(例如EJB),所以你需要熟悉代碼生成工具,例如XDoclet


第四階段

你需要熟悉不同的J2EE技術,例如JNDI(JavaNamingandDirectoryInterface),JMS (JavaMessageService),JTA/JTS(JavaTransactionAPI /JavaTransactionService),JMX (JavaManagementeXtensions),以及JavaMail。

你需要學習分佈式對象以及遠程API,例如RMI和RMI/IIOP。

你需要掌握各種流行中間件技術標準和與java結合實現,比如Tuxedo、CROBA,當然也包括javaEE本身。

你需要學習企業級JavaBeans(EJB)以及它們的不同組件模 式:Stateless/StatefulSessionBeans,EntityBeans(包含Bean- ManagedPersistence[BMP]或者Container-ManagedPersistence[CMP]和它的EJB-QL),或者 Message-DrivenBeans(MDB)。

你需要學習最少一種的XMLAPI,例如JAXP(JavaAPIforXMLProcessing),JDOM(JavaforXMLDocumentObjectModel),DOM4J,或JAXR(JavaAPIforXMLRegistries)。

你需要學習如何管理與配置一個J2EE應用程序服務器,如WebLogic,JBoss等,並且利用它的附加服務,例如簇類,連接池以及分佈式處理支援。你還需要了解如何在它上面封裝和配置應用程序並且能夠監控、調整它的性能。


第五階段(優先級低)

你需要熟悉面向方面的程序設計以及面向屬性的程序設計(這兩個都被很容易混淆的縮寫為AOP),以及他們的主流JAVA規格和執行。例如AspectJ和AspectWerkz。

如果你將要對接或者正和舊的系統或者本地平臺,你需要學習JNI (JavaNativeInterface) and JCA (JavaConnectorArchitecture)。

你需要熟悉JINI技術以及與它相關的分佈式系統,比如掌握CROBA。

你需要JavaCommunityProcess(JCP)以及他的不同JavaSpecificationRequests(JSRs),例如Portlets(168),JOLAP(69),DataMiningAPI(73),等等。

你需要能夠深入瞭解加熟練操作和配置不同的操作系統,比如GNU/linux,sunsolaris,macOS等,做為跨平臺軟件的開發者。

你還需要緊跟java發展的步伐,比如現在可以深入的學習javaME,以及各種java新規範,技術的運用,如新起的web富客戶端技術。

你必需要對opensource有所瞭解,因為至少java的很多技術直接是靠開源來驅動發展的,如java3D技術。

====================================================================

附:

JAVA系統架構師應該看的幾本書

Thinking in Java

Effective Java

UML基礎、案例與應用

UML入門提高

軟件工匠

設計模式——可複用面向對象軟件的基礎

重構-改善既有代碼的設計

敏捷軟件開發-原則、模式、實踐

企業應用架構模式

Expert One-on-One J2EE Development without EJB

軟件工程——實踐者的研究方法

軟件領導--成功開發軟件的指導準則

後面的兩本書,其實已經有點屬於項目經理的範疇了,不過還不是很深入,看看對做成功的系統架構師是很有好處。


全網java學習資源


首先需要問一下樓主,你是否有過其他語言的編程經驗。

有和沒有,完全是2個發展路線。


如果你有編程經驗

理論上所有的編程語言的基礎,都是大致相同的,除了語法不通,其他都是相同的。作為一個開發者,重要的是思路,而不是死寫代碼。

所以說,你如果有經驗,學習起來會更輕鬆一點,自己有一套自己的學習方法,知道切入點是什麼,如何學習更加高效。


如果你沒有編程經驗

那麼我建議你還是從入門開始,一步步的學習,千萬別想著跨大步,現在要做的是小碎步,吃透沒一個語法、變量定義等等。


為什麼這麼說。

因為這些都是我的親身經歷,曾經也想過從入門一步步穩紮穩打,然後學習了一些簡單的語法,覺得其實變成很簡單,就開始跨大步。

雖然最後一樣可以用代碼實現功能。

但是相同的功能,大牛隻需10行代碼就解決了,而我確使用了100行代碼。

這就是基本功的差別。


希望以上回答可以幫助到你。




IT技能教程


學習JAVA語言之前,先要確定你學習的用途或者目的。JAVA語言應用領域相當廣泛,可用於開發手機應用,網站後端,大數據應用,企業服務總線應用,服務集群開發,甚至桌面應用開發等等。你先要確定一個方向,然後再去尋找這個方向的教材和相應的培訓機構。

所有的計算機語言的最好的學習方法都是自學,一臺電腦,一本書,一杯咖啡。沒有聽說過哪個頂級編程大拿是從培訓機構學出來的,即使讀過大學,還是計算機專業,也是學習的理論知識居多,基本編程技能還是要靠自己。JAVA的生態圈非常好,幾乎每個JAVA的使用領域都有幾本非常出彩的書籍,如果英語好的話,建議亞馬遜上買原版書,雖然貴但是真的比看翻譯過來的省力。另外JAVA在每個使用領域也都有一些著名的開源項目,以及開源的最佳實踐項目,很多都託管在GitHub上,可以去翻閱他們的源代碼,收穫也會非常大。


編程老兵


對於Java來說,已經有好幾十年的歷史。那麼相對來說,完整的課程體系,系統學習方法肯定會有。從大的方向分為兩類,一類線上學習,一類線下學習自學或者面授。

第一種,線上學習方法。現在有很多線上教程,直播或者錄播。並且主流的大平臺上面都有Java系統學習資料,你可以現在直播方式跟隨講師系統學習,也可以看錄播的方式盡心學習。學習的過程中一定要多多練習。

第二種,線下學習方式。自學的話,建議首先要了解整個Java的課程體系,然後通過網絡或者書籍進行學習。Java編程思想推薦你多看看。這本書有系統的學習方式。參加培訓,找一家培訓機構或者找熟人,懂Java的人來帶你,這一種方式週期短,見效快。

最後,建議線上和線下一起配合來學習,通過自學或者面授的方式進行線下學習,遇到問題或者沒有聽懂的可以配合線上教程進一步學習。


程序書寫人生


我做java快兩年了,剛開始也不是科班出身,通過培訓機構學習的java。分享一下個人經驗,首先你要明白為什麼要去學java,是大學畢業之後想轉行,還是已經工作了幾年想要轉行。如果年紀大了,還是要慎重,年紀小可以試試。說起怎麼學java,可以先買幾本基礎的書籍,比如《java從入門到精通》,學習基本語法,然後學習javaweb相關,再到數據庫,框架等等,如果你個人自制力比較強,建議你邊看書,邊看視頻學習,看視頻可以加速你的理解,如果自制力不太好,可以報培訓班,不過費用比較高,再加上很多培訓班師資力量不好,去了都是坑,一定要慎重選擇培訓機構。

總之,學習一門編程語言,難點一般不在語言本身,而是要克服自身的惰性,反正我學習的時候感覺比高三還累,當時是早上八點上課,晚上九點半下班,一週六天,晚上回去還和室友討論問題,經常都是凌晨之後才睡的,總共持續六個多月,不過付出還是有回報的,由於當時學的比較紮實,畢業兩週就找到工作上班了,當時一個月一萬塊,感覺還是很開心的。總之,想好了,就用心去學,堅持大半年,就差不多可以應付基礎的工作了,其他的知識在上班中可以持續的繼續學習。一定要用心刻苦學習,不然很難找到工作。

最後 切記 一定切記 要多寫代碼 要多寫代碼,要多寫代碼,實踐出真理 我感覺這在編程中是最正確的真理。


分享到:


相關文章: