怎么才能學(xué)好Java?月薪35K阿里P9程序員給出了這樣的建議!
正在學(xué)習(xí)Java 計(jì)算機(jī)語言并且打算作為自己今后的發(fā)展方向,不幸的是你在學(xué)習(xí)中遇到了比較困惑而又不能解決的問題, 你必需要明確以下幾個(gè)很重要的問題和掌握相對(duì)正確和適合自己學(xué)習(xí)編程的方法,從而為自己解惑并不斷的提高自己,最終達(dá)到一個(gè)多數(shù)企業(yè)入職的基本標(biāo)準(zhǔn)。
首先,你要清楚自己學(xué)習(xí)Java的真正目標(biāo)是否明確,學(xué)習(xí)Java的想法是否是成熟的。對(duì)于這個(gè)問題可能很多人都會(huì)不屑一顧,憑借我多年從事Java開發(fā)及在工作中接觸的多數(shù)搞Java開發(fā)的人經(jīng)驗(yàn)而言,最終能夠把Java 語言學(xué)好,多數(shù)人都是將Java作為自己以后從事此項(xiàng)工作為目標(biāo),這個(gè)目標(biāo)一旦明確則給與自己無盡的動(dòng)力和壓力,沒有動(dòng)力和壓力人就有各種借口遇到困難而退縮甚至放棄。
其次,在你有了非常明確的目標(biāo)后,而為之努力學(xué)習(xí)過程中,你必需清楚多數(shù)企業(yè)對(duì)于Java 開發(fā)人員的基本入職要求和需要掌握哪些常用技術(shù)。當(dāng)然不同企業(yè)要求是由些差異的,不過對(duì)于一個(gè)初學(xué)Java的人而言,通常應(yīng)該知道以下是大多數(shù)企業(yè)對(duì)于初級(jí)程序員的基本要求,可以從以下幾個(gè)技術(shù)方面審核自己的技術(shù)水平。
一、任何Java開發(fā)方向都必需要將Java SE基礎(chǔ)核心理論知識(shí)及實(shí)用技術(shù)牢牢掌握,從Java角度講無論什么樣的所謂高級(jí)Java技術(shù)都建立在Java SE核心基礎(chǔ)之上,譬如Jsp 動(dòng)態(tài)網(wǎng)頁技術(shù),Servlet Java EE標(biāo)準(zhǔn)核心控制器, freemarker 模板技術(shù), 還是MVC模式的框架(Spring [主流IOC容器],Struts2) , 還是ORM中間件 mybatis, hibernate ,openjpa, 都基于Java SE核心技術(shù), 而Java SE的核心技術(shù),重中之重就是Java 面向?qū)ο蟮暮诵木幊淘O(shè)計(jì)思想及實(shí)現(xiàn),也就是Java 面向?qū)ο笳Z言三大特點(diǎn)(封裝,繼承,多態(tài)), 如果這里掌握的有很大問題,后面在使用Java語言設(shè)計(jì)及編碼時(shí)以及學(xué)習(xí)后續(xù)Java web 及各種Java 框架時(shí)不會(huì)順利, 所以這個(gè)地方要下大工夫, 更多的時(shí)間應(yīng)該用到這部分內(nèi)容的學(xué)習(xí)理解及大量代碼實(shí)踐, 有很多培訓(xùn)機(jī)構(gòu)為了吸引學(xué)員,讓學(xué)員有短暫的成就感,會(huì)花費(fèi)一定時(shí)間(甚至比較長)講解GUI部分內(nèi)容,從而讓你做出一個(gè)圖形界面或小游戲之類的東西,憑我多年的工作經(jīng)驗(yàn)來看,這幾乎是沒必要的。因?yàn)檫@部分內(nèi)容幾乎在99%的Java開發(fā)的企業(yè)中都是用不到的雞肋內(nèi)容,完全沒必要花費(fèi)時(shí)間去學(xué)習(xí)。所以一個(gè)Java 從業(yè)人員如果不能很好掌握J(rèn)ava SE核心理論和基礎(chǔ)并熟練應(yīng)用,你第一時(shí)間就被企業(yè)入職門檻擋在了外面。我曾無數(shù)次強(qiáng)調(diào)Java SE有多么的重要,一旦Java SE學(xué)好,以后學(xué)習(xí)任何內(nèi)容都會(huì)非常輕松。
二、真正的企業(yè)級(jí)Java項(xiàng)目是100%要有企業(yè)數(shù)據(jù)處理的,而且是及其重要的一塊,因?yàn)橛涗浫魏问挛镌谟?jì)算機(jī)中都體現(xiàn)為數(shù)據(jù),而數(shù)據(jù)的永久存儲(chǔ)最基本常用的軟件設(shè)備就是數(shù)據(jù)庫, 那么對(duì)于數(shù)據(jù)庫的操作就顯得尤其重要, 有資歷的Java 程序員甚至有這樣一個(gè)比喻:”Java SE核心技術(shù)牢牢掌握你就如同像孫悟空有了筋斗云,而具備非常出色的數(shù)據(jù)庫技術(shù)就像又擁有了如意金箍棒”,這樣你就有了大鬧天空的本事, 如果有興趣搜索信息,,PL/SQL 數(shù)據(jù)庫開發(fā)語言排名很多時(shí)候都在前20名, 有很多人掌握了PL/SQL 從而找到薪水很高的工作的比比皆是。當(dāng)然,如果從Java 角度說數(shù)據(jù)庫操作,那你必需要深入理解掌握并熟練使用JDBC, 在后期你無論使用什么類似于hibernate、mybatis ORM數(shù)據(jù)庫操作的中間件都是對(duì)JDBC的封裝,這個(gè)搞不懂,你也就邁不過第二道企業(yè)入職門檻。
三、說到Java 企業(yè)級(jí)開發(fā),通常都是web 應(yīng)用, 那就有個(gè)繞不開的話題,也就是前端開發(fā), 這自然就是JS的掌握,其實(shí)這部分從邏輯方面及復(fù)雜性都和Java 有一定差距,也就是說著部分技術(shù)并不難掌握,但是必需充分重視, 因?yàn)镴ava web項(xiàng)目,尤其是企業(yè)管理系統(tǒng)的后臺(tái)管理應(yīng)用JS實(shí)現(xiàn)或JS框架構(gòu)建管理界面及實(shí)現(xiàn)異步請(qǐng)求處理數(shù)據(jù)都是很重的任務(wù),一個(gè)JS文件一至二千行代碼都是常見的,如果是數(shù)據(jù)處理,JS框架當(dāng)然就是jQuery 及相關(guān)jQuery插件了,不容忽視,必需努力熟練掌握。
四、 企業(yè)級(jí)Java項(xiàng)目常用的框架,我個(gè)人認(rèn)為,這部分內(nèi)容的掌握和技術(shù)應(yīng)用并不難,只要你牢牢掌握J(rèn)ava 核心技術(shù),在Servlet Java EE 標(biāo)準(zhǔn)控制器掌握的基礎(chǔ)上,學(xué)習(xí)都是不難的,一個(gè)構(gòu)建Java Web項(xiàng)目的工具而已,多用幾次,自然慢慢掌握。
順便在這里說一下,我目前是在職Java開發(fā),如果在入門學(xué)習(xí)Java的過程當(dāng)中有遇見任何關(guān)于學(xué)習(xí)方法,學(xué)習(xí)路線,學(xué)習(xí)效率等方面的問題,你都可以申請(qǐng)加入我的Java新手交流群:798844620,這里面聚集了很多正在學(xué)習(xí)Java技術(shù)的初學(xué)者,缺乏基礎(chǔ)入門的視頻教程也可以直接來找我,我這里有最新的Java基礎(chǔ)精講視頻教程,群文件里面還有我做Java技術(shù)這段時(shí)間整理的一些學(xué)習(xí)手冊(cè),面試題,開發(fā)工具,PDF文檔書籍教程。
當(dāng)你知道以上企業(yè)的基本入職要求和什么是重要的,而你要努力學(xué)習(xí)掌握的技術(shù)后,你應(yīng)該知道如何找到適合自己的學(xué)習(xí)方法從而使自己不走或少走彎路。
1 無論多高水平的程序員,在什么樣的企業(yè),你必須是一個(gè)代碼規(guī)范的程序員,否則你將與人格格不入,甚至被上司開掉都是有可能的。 印度之所以被稱為工程師王國,就因?yàn)橛《痊F(xiàn)在小學(xué)就有編程課程設(shè)置,而且嚴(yán)格規(guī)范編程標(biāo)準(zhǔn),軟件開發(fā)是團(tuán)隊(duì)合作的產(chǎn)物。必需是一個(gè)整體,這樣要求代碼要統(tǒng)一規(guī)范,這里啰嗦幾句(不過很多人不重視從而被罵), 標(biāo)識(shí)符命名絕對(duì)要規(guī)范,一定要有標(biāo)準(zhǔn)的注釋,合理換行,包命名準(zhǔn)確,重用功能再簡(jiǎn)單也要封裝為類或方法,多余的代碼必需刪除,別亂用靜態(tài)變量及方法,循環(huán)別嵌套太多等等,如果這個(gè)你在最初不重視,你將在以后付出代價(jià),也就是你曾經(jīng)走了很長而且你不知道的彎路。
2 不要盲目模仿代碼,在很多培訓(xùn)機(jī)構(gòu)或老師為了讓本來問題很大的你找到平衡和虛榮心,往往告訴你,先照著我的代碼敲一遍再說,我這里告訴你,這個(gè)老師在坑你,俗話說:明其理而為之行,你幾乎對(duì)此一無所知就盲目模仿,即使敲出來又有什么收獲呢,如果遇到這樣的問題,你應(yīng)該遵循以下方式逐步解決。先想想我要做的是什么,最終是什么結(jié)果,可能用到我學(xué)過的哪些知識(shí)點(diǎn),縷清思路,找到可能遇到的問題,確定實(shí)現(xiàn)順序和初步的方案,寫一連串的注釋標(biāo)明每步要做什么,然后再試著動(dòng)手, 在實(shí)現(xiàn)中如果遇到問題再想多種途徑解決問題, 這樣你就會(huì)積累需求的分析能力,設(shè)計(jì)能力,確定解決方式的多種途徑能力,這樣你才能進(jìn)步,千萬不要盲目模仿代碼,千萬千萬哦。
3 明確重點(diǎn)不要面面俱到,這是學(xué)習(xí)很忌諱的,多數(shù)Java開發(fā)中我們只會(huì)用到20%不到的Java最重要的常用技術(shù)而解決80% 的企業(yè)開發(fā)遇到的問題,所以你不要什么技術(shù)點(diǎn)都用同樣的時(shí)間去學(xué)習(xí)和實(shí)踐,比如你用了20多天的時(shí)間搞GUI來滿足你的虛榮心,你非要使用多重for循環(huán)賣弄你邏輯能力,醒醒吧,你只需要牢牢掌握核心面向?qū)ο蟮某绦蚍治鲈O(shè)計(jì),常用SE類庫, 理解多線程,熟練使用IO讀寫,JBDC必需的… 切記哦。
4 先思、再查、三問、后動(dòng)手。我認(rèn)為這是學(xué)習(xí)Java以及任何計(jì)算機(jī)編程語言比較好的方式,所謂先思就是遇到問題要讓自己認(rèn)真思考,想其中是什么問題,如何解決,為什么解決不了,最好確定初步思路,在最終想不通時(shí),再查找資料(任何載體手段你都可以用);查也沒有解決問題就去問,問老師,問同學(xué),問Java先行者給你思路給你啟示幫你解決問題,弄明白了別猶豫馬上動(dòng)手吧,你的收獲不少也擴(kuò)充了朋友圈。
5 找一個(gè)能促進(jìn)你的人和真正幫助你的人。學(xué)習(xí)本是枯燥的,一個(gè)人總是孤獨(dú),你最好有個(gè)伙伴,他能夠刺激你上進(jìn),對(duì)比著學(xué),你強(qiáng)我就要比你更強(qiáng);真正幫助你的人往往不一定是經(jīng)常贊美你的人,對(duì)你學(xué)習(xí)如果經(jīng)常指出問題和詬病,那他肯定是你的良師益友。
6 代碼量,代碼量,這個(gè)一定要保證,別為生活中的花花綠綠分你的心,你既然把它作為你的今后目標(biāo)請(qǐng)對(duì)得起它,大量的敲代碼吧,熟能生巧,Java SE 你少于5萬行代碼,你還想做程序員,天下沒有那么便宜的事,未吃三天素,就想上西天,別做夢(mèng)了。
好了,說的夠多了,如果你能夠充分理解我上面所說的并思考后正視自己,重新給自己一個(gè)定位,堅(jiān)持下去你會(huì)有希望的,我在Java的戰(zhàn)場(chǎng)等你… …
Java 開發(fā)者 數(shù)據(jù)庫
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。