想了解java是做什么的嗎?想了解Java 程序員每天都在做什么?,*荒廢三年,大四自學7個月Java,找到了12K的工作,學習Java到底能做什么,自學5個月Java找到了9K的工作,我的方式值得大家借鑒?? 嗎?......本文帶你一探究竟。
1.Java 程序員每天都在做什么?
魚皮是一名 在大、中、小微企業(yè)都待過 的 Java 開發(fā)者,今天和大家分享下自己在不同公司的工作日常和收獲。包括一些個人積累的工作提升經驗,以及一些 Java 學習的方法和資源。先從我的*份 Java 開發(fā)實習工作說起吧~實習生工作日常我是在大二暑期開始了我人生的*次實習,崗位正是 Java 開發(fā),還混了個 title 叫 “助理 Java 工程師”!這家公司屬于一家中型企業(yè),作為*份實習,我已經很滿足了。剛進入公司的*天,在導師和運維同學的幫助下,搞好辦公設備,安裝開發(fā)環(huán)境,本以為第二天就能開始寫代碼。但是整整兩周,我都沒有寫下一行 Java 代碼!而是先花了一周的時間熟悉企業(yè)的業(yè)務、我要參與的項目源碼(Spring 全家桶 + Dubbo)、以及公司的各種辦公套件和研發(fā)流程。這些幾乎是每位剛剛進入新公司的同學都要做的事情。然后我就開始接需求了,面對前人留下的 xx 一樣的代碼和復雜的業(yè)務,我根本無從下手。那么這一周我做了些什么呢?在導師的指導下,我針對這個需求涉及的業(yè)務流程畫了一個很完整的流程圖,并且在流程圖上進行了詳細的標注。畫完流程圖之后,我突然感覺思路清晰了很多,接下來就是寫偽代碼,終于在一周后,我才正式開始寫 Java 代碼了。在此之前,我基本都是跟著視頻教程寫寫簡單的 Demo 程序,或者自己為了學習做做簡單的小項目。從來沒有像這次一樣在寫代碼前進行如此精心的設計,*次有了自己走出校園的感覺,這種體驗和成長是在學校無法感受到的。這也是為什么我建議計算機專業(yè)的同學在學了一些開發(fā)技術后,趁早去找一份實習,不用擔心自己的經驗不足,通過面試和企業(yè)工作的磨練才能讓你積累更多的經驗、提升技術,也能幫助你明確自己的目標。現在也有很多幫助*生找實習的平臺,像 ??途W、實習僧 都是很不錯的。實習的這家公司雖然不大,但是團隊的氛圍非常好。也正因為公司不大,和技術主管、CTO 等大佬的交流機會也非常多,我們每天開工前都會開站會(敏捷開發(fā))來討論工作,并且定期地舉辦技術分享。整個實習過程真的非常愉快,學到了很多技術和業(yè)務知識,也開拓了眼界,明確了我今后的職業(yè)發(fā)展方向。最爽的事是工作不忙的時候也摸魚兒刷了一些算法,真的非常感謝公司和這段實習經歷!然后分享我目前在 騰訊 做 Java 開發(fā)的日常。鵝廠工作日常沒錯,鵝廠并不是只有 C++ 這一門后端開發(fā)語言,其實鵝廠的 Java 程序員數量也是很多的!我從大三暑假開始就在騰訊實習,并通過答辯轉正,雖然只畢業(yè)半年,但至今累積在鵝廠寫 Java 已經一年半多了,那除了偶爾摸魚外,我平時的工作都做些什么呢?起初我以為大廠程序員的工作日常也就是寫代碼、造輪子,在大公司,就得寫更多的代碼!結果在剛入職時,由于經驗不足,再加上年輕氣盛,有著莫名的自信。剛拿到需求后,我覺得特別簡單,不就是 CRUD(增刪改查)么?于是,我就懶得設計方案了,沒怎么思考就直接上手寫代碼了,結果不斷翻車,出現了很多細節(jié)問題,比如數據沒有訪問權限獲取不到、和其他*的同學接口字段沒對齊等等,甚至還出現需求理解錯誤的情況!*導致的結果就是做了很多無用功,把本來幾天就能做完的需求一拖再拖,一度以為自己要被勸退了! o(╥﹏╥)o經歷了一次次的翻車后,我開始思考自己的問題到底出在哪里,為什么我總感覺自己什么都知道、可以寫出代碼,但寫出的代碼卻經常錯誤連篇呢?我向導師和其他的同事請教后發(fā)現,其實大家更多的時間并不是在寫代碼,而是在 開會討論、核對需求、溝通對齊、設計技術方案、測試等。寫代碼的時間其實很少很少!導師對我說:“其實寫代碼并不難,關鍵是要明確為什么要寫代碼、怎么寫代碼、寫什么代碼?!痹瓉?,相比寫代碼,更重要的是寫代碼前的技術方案設計和寫代碼后的測試!技術方案設計當程序員確認完需求后,要先根據需求來給出一個清晰明確的技術方案,一方面是證明需求的可行性,另一方面是對自己之后的代碼實現有一個大致思路。很多的問題其實是可以在設計階段去發(fā)現和規(guī)避的,而不是等你寫代碼的時候,才發(fā)現之前的設計有問題、甚至是需求本身就不合理!到時候耽誤了項目上線,背鍋的就是程序員自己!之前有朋友問,在大公司,萬一寫著寫著代碼,沒思路了、寫不出來了怎么辦?這種問題其實就是可以通過前期的技術方案設計來規(guī)避的。畢竟老板才不關心你代碼寫的怎么樣,他只關心你的技術方案,換句話說,是關心你能不能按時完成項目!此前,我即使畫了一些流程圖,目的也僅僅是在于幫助自己寫代碼。覺得代碼能寫出來后,我就不再去考慮方案設計了。而在意識到技術方案的重要性后,我會在理解需求后,先寫一份詳盡的技術方案,包括需求的合理性分析、選用什么技術來實現指定的功能、怎么設計庫表結構、怎么設計類之間的關系(用哪種設計模式)、怎么設計接口、計劃工期是多久、有沒有什么風險點等等。開發(fā)設計好方案后,就要投入開發(fā)。基本就是先利用一些數據庫管理軟件或者登陸服務器去配置一些庫表,然后選用一些 Java 類庫和工具來編寫業(yè)務代碼。說是編寫代碼,其實 80% 以上都是復制粘貼!復制別人的,復制自己的,積累的代碼多了之后,簡直爽的飛起!不能復制粘貼的,也可以用一些代碼生成工具、甚至是低代碼工具來偷偷懶。誰說 CRUD 工程師就沒有技術?哼,咱偷懶也要有水平。寫代碼的過程中,你要遵循一定的規(guī)范,不斷地將重復的代碼進行抽象、封裝和復用,可以利用一些設計模式,并且要多多編寫注釋,提高代碼的可讀性和可維護性。關于代碼規(guī)范,建議參考 Google 開源的 Java 代碼規(guī)范或者阿里巴巴的 Java 代碼規(guī)范,非常專業(yè)!寫好代碼后,你要再次檢查自己的代碼,可以利用一些代碼格式化和代碼檢查工具來提前發(fā)現一些規(guī)范問題以及 bug,還要在本地編寫單元測試來最細粒度地保證代碼的可運行性和正確性。Java 的單元測試類庫一般用 JUnit 就行了,本地自己測試請求接口的話可以直接用 IDEA 自帶的測試插件,也可以選用 Swagger 或者 YAPI、Postman 等接口管理工具,甚至還可以直接使用命令行 curl 等。測試在寫完代碼之后,要經過非常非常非常充分的測試才能提交代碼!這個階段也是非常花時間的,需要配合測試同學,提供一些測試的細節(jié)和補充說明,并且對測試中發(fā)現的問題進行修復。很多程序員應該都有這種感受:寫 bug 一分鐘,改 bug 一小時!這些就是我目前在鵝廠的日常工作,其實和其他公司不會什么區(qū)別,無非就是你負責的業(yè)務量級越大,你在設計、測試等環(huán)節(jié)上投入的時間和精力就要更多;業(yè)務團隊越大,你在需求溝通和合作上也要花更多的時間。這些工作看似和寫代碼關系不大,但對于程序員的經驗積累以及職業(yè)素養(yǎng)、工程能力的提升是至關重要的!優(yōu)秀的程序員,不只是有能力寫得一手好代碼,更多的是需要具備一些工程師素養(yǎng),比如:對技術有獨特的興趣和追求,持續(xù)學習有全局觀,總能站在一個更高、更全局的視角去考慮問題處理事情小心謹慎,而不是憑直覺和過去的經驗主觀臆斷溝通能力強,能夠用方便他人理解的方式來描述問題強大的設計架構能力刨根問題,深究問題本質代碼潔癖,精益求精不止技術,還注重業(yè)務底層邏輯,關心用戶執(zhí)行力強,有責任心懂得利用自動化工具提升效率善用繪圖、圖表來描述技術架構和問題樂于分享,積極為他人指路在工作之余,我也在朝著成為一名優(yōu)秀工程師的路上而努力。因此,我會利用公司提供的知識平臺、問答平臺和技術資源進行學習,并且多和身邊的技術大牛們交流。大公司技術好,大佬多,提供的資源也真的非常多,這是我認為很多同學應該去大廠的一個原因,而身在大廠的同學更應該利用好這些資源。我還會積極參與一些公司內外的開源項目,和優(yōu)秀的程序員朋友一起合作,互相學習進步,提升代碼的水平。這里也建議大家多看 GitHub 上的開源項目,先在本地運行并熟練使用它,然后嘗試分析源碼和貢獻代碼。不會找開源項目?我之前分享過一篇文章,能幫到大家:【硬核干貨】如何高效找到優(yōu)質編程項目?此外,提升個人影響力也是很重要的,我認識很多 Java 開發(fā)工作者都喜歡寫技術文章,并且一些朋友開通了自己的自媒體平臺來分享文章,甚至有一些大??孔悦襟w收入還實現了財富自由!在寫文章的過程中,我進一步鍛煉了自己的文筆,向很多朋友學到了知識,也督促我來不斷輸入知識、提升自己。以上就是我的 Java 開發(fā)日常,你可能會好奇,魚皮在哪家小微公司待過呢?這是個秘密!Java 開發(fā)者的工作看似平淡,但只要你愛好編程,愛好這個行業(yè),每一天都能過的充實而有意義!
2.*荒廢三年,大四自學7個月Java,找到了12K的工作
通過這個故事我希望學弟們不要像我一樣,等到臨近畢業(yè)后才醒悟要學習知識學習技術的重要性,能趁早盡量要趁早,過去應該做的事情沒有去做,后面都需要你加倍補回來。我是一個二本院校,專業(yè)是機械工程,當時以為考上了*就可以高枕無憂放開了玩,可以說我整個*期間都是打LOL過來的。到了大四才發(fā)現,同學們都陸續(xù)去找了實習,有的做機械工作,有的在大三的時候就自學了Java或者web前端技術,然后他們通過秋招找到了一份實習的工作,實習的工資基本都在5K左右。從那個時候我開始慌了,但還是沒有具體的行動,一直拖到了去年的8月份,也就是大四的上學期,這個時候學校已經要求我們實習,很多就到了畢業(yè)的時間。從去年8月份我開始自學Java,因為要面臨就業(yè),我這個機械專業(yè)的很多同學都是轉行學習的軟件開發(fā),他們說這行發(fā)展的比較好,信息軟件技術以后的空間會更大,各種薪資待遇也都不錯。有的人建議我去學Java,說Java的崗位需求是*的,一二三城市都可以就業(yè)。我從去年8月份自學Java到現在就業(yè)一共是用了7個月左右的時間,現在是在重慶的一家軟件公司做產品的維護,技術部大約是50多人。薪資是12K,五險一金。我覺得自己還算幸運,畢竟*荒廢了那么多時間,臨陣磨槍畢業(yè)還能找到一份月入過萬的工作,真的是運氣爆棚。所以我想告訴大家什么時候學習都不晚,但一定是越早越好。給還在*的學弟們的忠實建議:出了社會才知道錢能掙屎難吃,在學?;烊兆舆^來的人,沒有一個不后悔的。當你有一天在這個社會生存都成了問題的時候,你會發(fā)現自己所有的一切都是灰暗的,窮生奸計富長良心,我體會到了這句話的含義。所以奉勸那些還在上學的學弟們,抓緊在學校的日子學會一個順應這個時代發(fā)展的技術,選擇一個有發(fā)展空間的行業(yè),畢業(yè)后能找到一份不錯的工作,可以讓自己有較高的起點,然后不斷的向上發(fā)展。下面是我學習Java的一些小心得分享給大家:1、 千萬別自己一個人閉門造車,不要認為自己可以解決所有問題,學習編程很抽象,尤其是在剛開始學的時候,很多時候你是無從下手的,所以我建議大家一定要懂得借力,找一些學的比較好的同學,或者你認識的朋友帶帶你,有人真的是事半功倍,效率會提高非常多?;蛘呒右恍W習氛圍不錯的Java交流學習群,跟有經驗的人交流可以學到很多好的學習方法和技巧,提高我們的學習效率。如果大家找不到好的Java學習群,可以添加下方這個QQ群 工欲利其事,必先利其器。在確定了要學習Java前,你一定要有一個非常完整的Java技術棧的大綱體系以及還不錯的學習教程,如果我們連一套完整的學習教程都沒有,根本不可能學會Java。而很多人在開始時用的教程非常老,很多技術都已經過時,企業(yè)并不用這些技術,所以學了也是白耽誤工夫。如果大家找不到合適的Java教程,可以添上面我推薦的Java交流群,那些大佬會定期分享一些比較新的學習教程給大家免費試用。3、 實踐是檢驗真理的*標準,學習編程一定要記得多動手寫代碼,視頻只需要看一兩遍即可。有很多同學不懂得如何學習編程,盲目無腦的一直刷視頻看,但你看完視頻后很快就會忘記,其實是在浪費你的時間。學習編程的主要目的是能做出好的互聯網軟件產品。這是一個需要動手的工作,所以我們學編程一定要注重動手寫代碼。而很多人學習編程都是只看視頻,這樣的學習方式是非常錯誤的,所以大家對于這點一定要牢記在心。4、 項目作品是展現我們水平的重要因素,我們在學完一個階段后,一定要記得針對這個階段去完成一個項目實戰(zhàn)。真正能讓我們印象深刻,加深理解的學習方式就是參與到項目的開發(fā)中。項目才能檢驗我們這個階段到底學的怎么樣,所以大家在學習的過程中切記項目的重要性,很多人學習Java*卻不能獨立完成一個項目模塊,如果你達不到這個水平,那么你是不可能找到Java開發(fā)工作的。我認為新手在學習Java的過程中常見的誤區(qū):1.沒有詳細系統的學習規(guī)劃,越學越迷茫,不知道應該往哪里走,特別有想放棄的想法。2.學習的技術并不是現在企業(yè)需要的技術,跟不上時代,不具備競爭力。3.學習效率非常低,遇到一個小問題解決起來很費時間,甚至有的時候會卡幾個小時,導致信心受挫,對自己適不適合產生懷疑。4.沒有掌握學習Java的方法和技巧,導致走的彎路特別多,鉆進程序的死胡同出不來。如果你也有以上的學習困惑,覺得自己無從下手,學習的效率很低,學了后面就把前面的忘記這些問題,基本都是因為自己的學習方法不對。所以我建議你一定要找有經驗的人多溝通,這些問題都是可以得到很好解決的。我強烈推薦大家加入到這個Java交流學習群
3.學習Java到底能做什么
本篇文章由檸檬研發(fā)部整理,*原創(chuàng),謝絕轉載。學前了解計算機硬件和軟件系統:萌新怎樣快速了解電腦?形成一個體系(? ??_??)?求大神解答?檸檬李偉:什么是JAVA(原創(chuàng))檸檬李偉:各編程語言用途及分類對于一個初學者來說,看完了上面四篇文章可能對Java就有了一個大概的印象,但肯定還不清楚學了Java到底能干什么。Java可以用來做網站,可以做軟件,還可以做安卓,做游戲,超過三十億的設備在使用Java。學習Java可以做網站Java可以用來編寫網站,現在很多大型網站都用Jsp寫的,JSP全名Java Server Pages它是一種動態(tài)網頁技術,比如我們熟悉的163,一些*網站都是采用JSP編寫的。所以學習Java的同學可以找開發(fā)網站方面的工作,而且現在找這方面的崗位比較多。比如:網站開發(fā),當然就是JSP+Servlet+JavaBean,一直以來都相當流行。學習Java可以做是一種基于Linux的自由及開放源代碼的操作系統,其源代碼是Java。所以市場上見到的手機系統例如MIUI ,阿里云,樂蛙等,都是修改源代碼再發(fā)行的。Java做安卓不單單是指系統,還有APP對于更多的開發(fā)人員來說,他們更多的時間是花在開發(fā)APP上面。學習Java可以做游戲或者你不知道,在以前諾基亞還很流行的時候,你玩的手機游戲有90%以上都是Java開發(fā)的。當然現在已經很少人再去開發(fā)了,都轉到安卓上去了。電腦上也有Java開發(fā)的游戲,最經典的是:《我的世界》(minecraft ,簡稱MC),當今世界*人氣和影響力的網絡游戲之一《英雄聯盟》(簡稱lol)。 一直以來都相當流行。學習Java可以做軟件一般編程語言都可以做軟件的,Java 也不例外,例如Eclipse,MyEclipse等*Java開發(fā)工具.有關開發(fā)軟件組件,可以了解Java Swing編程 或者 awt 相關知識。比如:企業(yè)級應用開發(fā),這里是JAVA的天地,大到*聯網的系統,小到中小企業(yè)的應用解決方案,Java都占有極為重要的地位。另外還有移動領域,典型的應用是手機游戲(國內主要是這方面),這里是J2ME的天地,其實應用范圍是很廣的。Java已成為當今市面上*的編程軟件,對于處于信息高速發(fā)達的今天,Java技術已經無處不在,手機軟件、手機JAVA游戲、電腦軟件等等。可以這樣說,只要你使用手機、電腦等電子產品,你就會用到跟Java有關的東西。由此可見,對于我們這些將要面臨巨大就業(yè)壓力的*生來說,掌握這樣一款*的編程語言是多么重要。嵌入式:Write Once,Run Anywhere。嵌入式領域仿佛為Java量身打造。大數據:Hadoop以及其他大數據處理技術很多都是用Java??茖W應用:Java的安全性、便攜性讓Java在科學應用、金融服務、空間巨大。以企業(yè)級網站(JavaEE)為例,描述一下Java的實際應用:Java EE 是 J2EE的一個新的名稱,之所以改名,目的還是讓大家清楚J2EE只是Java企業(yè)應用。簡而言之:JavaEE是一個由JVM + API +大規(guī)模+多層的+可擴展的+可靠+安全+網絡組成 的應用程序。這樣的描述對于初學者來說并不友好,我們再形象地描述一下。假如在一家電商公司,需要一個軟件來管理客戶,這個軟件的數據要統一存放在服務器上,大家通過客戶端瀏覽器登錄操作。如上圖所示,每個人都可以通過客戶端電腦訪問服務器,可以查找、增加、修改、刪除客戶信息??蛻舳耸且砸晥D(網頁)的形式展示內容,這一塊稱為表示層。服務器是進行運算處理的,針對表示層傳來的指令進行判斷,再去操作數據庫,這是應用曾。這種基于客戶端瀏覽器/服務器的結構成為B/S架構。如下圖,用戶可以通過瀏覽器登錄系統通過瀏覽器后臺登錄系統登錄系統后可以對客戶信息進行增刪改查的操作。視頻演示 Java零基礎權威入學寶典Java構架師專題:Java架構師/微服務/分布式/高并發(fā)/性能優(yōu)化/源碼解析-學習視頻
4.自學5個月Java找到了9K的工作,我的方式值得大家借鑒
我是去年9月22日才正式學習Java的,因為在國營單位工作了4年,在天津一個月工資只有5000塊,而且看不到任何晉升的希望,如果想要往上走,那背后就一定要有關系才行。而且國營單位的氣氛是你干的多了,領導覺得你有野心,你干的不多,領導卻覺得你這個人不錯。我才26周歲,實在的受不了這種工作氛圍,情緒已經壓制了很多久,一心想著要跳出來,卻一直找不到合適的機會。因為身邊的朋友有在北京做Java開發(fā)的,他工作了四五年的時間,可以在北京拿到3萬的月薪,說心里話我是真的羨慕,這遠超出了我的認知范圍。所以經過朋友的推薦,我開始學習Java,一共學了大概5個多月的時間,今年的3月6號在天津找到了一份Java開發(fā)的工作,我包裝了一年的工作經驗,月薪9K五險一金,這算是成功上岸了。在剛開始學習的時候我考慮過去線下培訓班,但是我朋友不建議去,因為他就是培訓出來的,他和我說去培訓班幾乎沒作用,你去了之后會發(fā)現全程都是靠自己自學,老師上完課就走,不如自己看視頻學有效率,如果再有一次機會,我絕對不會花3萬塊錢去培訓。因為朋友是過來人,他的建議我不得不聽,而且我在網上查了一下,培訓班的口碑似乎都不好,這就讓我直接放棄了培訓的想法。況且3萬的培訓費用是我不吃不喝半年的工資,確實有點舍不得。于是我開始自學,因為有朋友是做這行的,所以自己在開始的時候少走了很多彎路,他給了我很好的建議,所以學習Java有個大佬帶是尤為重要的。因為做軟件研發(fā)的都有一個圈子,所以經過了朋友的引薦,他讓我加了他們那個圈子的Java技術研討群。里面大部分都是自學成功的大佬,在整個學習期間,我在他們這里真的是得到了不少的幫助。因為他們每個人都積累了很多資源,所以平時都是相互分享資源,如果公司有內推就業(yè)的名額也會相互推薦工作機會。當然里面也有一些還在學習中的人,這都是朋友相互推薦聚到一起的。所以我建議那些還在學習Java的初學者,一定要多結識一些行業(yè)內的大佬,可以加一下這個Java交流群,對于一個初學者來說可以獲得非常多的幫助,平時有一些問題發(fā)在群里,他們中有人工作不忙的時候就會出來解答,效率很高而且每個解答都講解的非常透徹。我之所以能在5個月左右的時間自學Java就業(yè),確實是得到了這些大佬不少的幫助。知乎營銷平臺我的學習心得,我認為能不能自學成功的要素有兩點。*點就是自身的問題,雖然想要轉行學習Java的人很多,但是非常強烈的想要轉行學好的人是小部分。而大部分人只是抱著試試的心態(tài)來學習Java,這是完全不可能的。所以能不能學成Java并且就業(yè),最關鍵的一點就是自己的愿望是否強烈。我是屬于非常強烈那種,因為忍受不了現在工作的氛圍,以及羨慕朋友在北京可以拿到3萬的月薪,這些因素都促使我非常拼命的學。在加上自身可以做到從下班就開始看視頻自學,一直學到晚上12點的這股勁,所以才能在5個月的時間內達到就業(yè)的水平。第二點就是有大佬帶你,如果全程都靠自己摸索是非常難的,對于一個不是本專業(yè)的人來說從開始的時候就“無從下手”。更不要說在學習過程中遇到的無數bug問題很難得到解決,因為我們在學習過程中會遇到無數問題,有的時候一個小問題就能困擾我們幾個小時的時間,會導致我們的學習效率很低,這種情況出現多了以后,信心就會受到打擊,覺得自己不適合學編程,最終放棄。而當有一個大佬去給你解答后,你會很快得到答案,并且能理解為什么要這樣做,到底是哪里出現了問題,學習效率會非常高。所以總結就是自身自覺主動學習在加上大佬全程帶你,其實學習就是這么簡單的事情,無非就是這兩個關鍵的要素,少了其中一個都很難成功。自學Java必須注意的問題:(1)代碼規(guī)范初學者一定要注意培養(yǎng)自己的代碼規(guī)范,每行代碼必須要注釋,我之所以只學了5個月就能拿到9K的薪資,就是因為我代碼規(guī)范很好。其實一個初學者在開始的時候能培養(yǎng)出好的代碼規(guī)范很難,這源于在整個學習過程中有大佬帶我的原因。(2)交流溝通切記不要認為自己可以摸索自學成功,能達到一定高度的水平,一定離不開很多專業(yè)人的指導,所以多認識一些大佬尤為重要,圈子真的可以決定我們可以達到什么水平。如果大家找不到合適的圈子,我強烈建議大家添加下面的Java技術研討群,多認識幾個大佬對于職業(yè)生涯有好處。知乎營銷平臺(3)效率:能快盡量快,如果你已經決定要轉行學習Java,就千萬別拖泥帶水,把大部分的精力都投入進來,如果你是那種三天打魚兩天曬網的情況,我勸你盡早的放棄不要浪費時間,有這個時間去鍛煉鍛煉身體不好嗎?(4)學習心態(tài)一定要抱著決心轉行的心態(tài)來學,自身的意愿強度決定了你是否能轉行成功。給自學Java的初學者的學習建議:1.了解如今的市場,都需要掌握哪些主要技術就可以快速就業(yè),目前的企業(yè)都需要什么人才,這是你學習的方向和目標。2.系統的學習規(guī)劃:有一個整體學習大綱,要知道自己每天學習什么,做什么練習進行知識鞏固,一個階段學完后應該完成什么項目實戰(zhàn),進行循序漸進的學習,不可以盲目的瞎學。3.一個大佬的指導:作為一個初學者一定要記得找大佬指導你,即使是花點錢也沒關系,只要你能把技術學好就行。自己摸索基本都是彎路,很多人為什么學了一兩個月就放棄了,因為他不知道路在哪里,整個人都是迷茫的,自然容易放棄。但如果你有了一個大佬帶你,他就會給你做詳細的學習計劃,給你安排好一切,在整個學習過程中給你解答疑問,你學習起來就會思路清晰,簡單效率。 Java主要的學習內容:一、JavaSE基礎篇JavaSE就是一種標準版,是Java語言的基礎部分,Java衍生出來的各種框架(如Spring系列)各種產品都是基于JavaSE標準,JavaSE是Java向上發(fā)展的基礎,Java任何高級產品的底層基礎都是JavaSE,通俗來講這是所有孩子的”爹“。JavaSE如果學不好,理解不透徹,后面學習框架時就有如天書一般,所以JavaSE這部分的重要性是不言而喻的,希望各位初學者銘記。主要包含內容:數據類型、基礎語法、運算符、流程控制、數組、面向對象、常用類、異常處理、集合、IO流、多線程、反射、注解、解析、網絡編程。二、數據庫篇數據庫是學習Java語言必學的一項內容,常見的數據庫就是MySQL和Oracle這兩種,作為初學者一般都是學習MySQL為主,一般情況下中小型企業(yè)都會選擇MySQL數據庫,比較大型的互聯網公司會選擇用Oracle,而學習Oracle相對于MySQL也要復雜一些,建議是主要學習MySQL數據庫,Oracle作為了解即可。學習數據庫較為簡單,基本的操作就是增刪改查。三、Web開發(fā)Web前端內容:HTML/CSS//(前端頁面)注意:Java后端開發(fā)可以不用過多關注HTML頁面及CSS的處理,但是最起碼要會用簡單的HTML,是必需要會的,因為Javaweb后端程序員畢竟要接觸使用AJAX方式處理數據及顯示。當然如果只關注服務器端實現而不考慮任何用戶界面,則HTML、CSS、都不用關注,但是完全脫離前端的開發(fā)現在雖然也不少,但是絕對不關心前端是不可能,尤其是,但是前端卻可以完全不關心服務器后臺的任何實現。JavaEE內容:Servlet/JSP雖然現在網上在傳JSP很少用了,可能是被一些模板或JS AJAX方式代替了一些,但是我認為還是應該接觸一下,萬一要用到不會怎么辦,而且它是Java EE的動態(tài)網頁實現標準組件。學習JSP過程也能更好的幫助我們理解web會話的過程,掌握web會話都有哪些我們必需知道的。如果學習Javaweb、JSP都不接觸那就相當于學習使用而一點不接觸一樣,豈不是稀里糊涂。包括開發(fā)Javaweb 我們必需知道的概念諸如Web應用上下文,請求對象,響應對象,,Cookie等都是在接觸學習JSP和Servelt中體現的,還有一些比較少見的EJB JSF JMS 以及 Java Felix等。一些初學者不清楚這些難免會有誤區(qū),尤其是有些較成熟的工程師也這么說,我只能說他們很無知,只是代碼機器而已,其實對于應用開發(fā)設計也就稀里糊涂,人云亦云罷了。永遠沒有被淘汰的技術也沒有永遠流行萬能的技術,要看在什么環(huán)境和場合應用,符合我需求的技術和工具就是好的,就是對的。四、高級框架1、 核心IOC容器2、Spring boot 在Spring基礎上的更全面提升效率的Spring工具3、ORM 框架當今流行使用較多的是Mybatis 和 MP(Mybatis插件),Hibernate是可選性學習的4、模板技術,比較成熟的、Spring Cloud 微服務框架,Spring Cloud提供的全套的分布式系統解決方案。五、工具maven 是構建管理項目的工具,svn 和git是團隊協作開發(fā)的項目源代碼及相關文檔資料管理工具,需要學習者初步掌握其應用。像Tomcat,jetty ,resin,JBoss,GlassFish 等都是部署運行Java web應用的服務器。以上就是初學者大概學習的內容,我是盡量站在初學者的角度來說的,沒有寫得特別復雜,怕初學者看不懂,沒有實質性的幫助。所以我盡量用白話把話說的簡單一些,給大家羅列出主要學習的Java知識點。Java學習 - 知乎有任何關于Java相關的疑問,隨時私聊我。
上述文章了解到關于Java 程序員每天都在做什么?,*荒廢三年,大四自學7個月Java,找到了12K的工作,學習Java到底能做什么,自學5個月Java找到了9K的工作,我的方式值得大家借鑒?? ,讓我們對java是做什么的 有一個直觀的認知。我們發(fā)現,作為一個優(yōu)秀的Java程序員是多么的自豪。