java學(xué)習(xí)之路_篇超好的文章第1/3頁(yè)
軟件開(kāi)發(fā)之路是充滿荊棘與挑戰(zhàn)之路,也是充滿希望之路。JAVA學(xué)習(xí)也是如此,沒(méi)有捷徑可走。夢(mèng)想像《天龍八部》中虛竹一樣被無(wú)崖子醍醐灌頂而輕松獲得一甲子功力,是很不現(xiàn)實(shí)的。每天仰天大叫"天神啊,請(qǐng)賜給我一本葵花寶典吧",殊不知即使你獲得了葵花寶典,除了受自宮其身之苦外,你也不一定成得了"東方不敗",倒是成"西方失敗"的幾率高一點(diǎn)。
"不走彎路,就是捷徑",佛經(jīng)說(shuō)的不無(wú)道理。
1.如何學(xué)習(xí)程序設(shè)計(jì)?
JAVA是一種平臺(tái),也是一種程序設(shè)計(jì)語(yǔ)言,如何學(xué)好程序設(shè)計(jì)不僅僅適用于JAVA,對(duì)C++等其他程序設(shè)計(jì)語(yǔ)言也一樣管用。有編程高手認(rèn)為,JAVA也好C也好沒(méi)什么分別,拿來(lái)就用。為什么他們能達(dá)到如此境界?我想是因?yàn)榫幊陶Z(yǔ)言之間有共通之處,領(lǐng)會(huì)了編程的精髓,自然能夠做到一通百通。如何學(xué)習(xí)程序設(shè)計(jì)理所當(dāng)然也有許多共通的地方。
1.1 培養(yǎng)興趣
興趣是能夠讓你堅(jiān)持下去的動(dòng)力。如果只是把寫(xiě)程序作為謀生的手段的話,你會(huì)活的很累,也太對(duì)不起自己了。多關(guān)心一些行業(yè)趣事,多想想蓋茨。不是提倡天天做白日夢(mèng),但人要是沒(méi)有了夢(mèng)想,你覺(jué)得有味道嗎?可能像許多深圳本地農(nóng)民一樣,打打麻將,喝喝功夫茶,拜拜財(cái)神爺;每個(gè)月就有幾萬(wàn)十幾萬(wàn)甚至更多的進(jìn)帳,憑空多出個(gè)"食利階層"。你認(rèn)為,這樣有味道嗎?有空多到一些程序員論壇轉(zhuǎn)轉(zhuǎn),你會(huì)發(fā)現(xiàn),他們其實(shí)很樂(lè)觀幽默,時(shí)不時(shí)會(huì)冒出智慧的火花。
1.2 慎選程序設(shè)計(jì)語(yǔ)言
男怕入錯(cuò)行,女怕嫁錯(cuò)郎。初學(xué)者選擇程序設(shè)計(jì)語(yǔ)言需要謹(jǐn)慎對(duì)待。軟件開(kāi)發(fā)不僅僅是掌握一門(mén)編程語(yǔ)言了事,它還需要其他很多方面的背景知識(shí)。軟件開(kāi)發(fā)也不僅僅局限于某幾個(gè)領(lǐng)域,而是已經(jīng)滲透到了各行各業(yè)幾乎每一個(gè)角落。
如果你對(duì)硬件比較感興趣,你可以學(xué)習(xí)C語(yǔ)言/匯編語(yǔ)言,進(jìn)入硬件開(kāi)發(fā)領(lǐng)域。如果你對(duì)電信的行業(yè)知識(shí)及網(wǎng)絡(luò)比較熟悉,你可以在C/C++等之上多花時(shí)間,以期進(jìn)入電信軟件開(kāi)發(fā)領(lǐng)域。如果你對(duì)操作系統(tǒng)比較熟悉,你可以學(xué)習(xí)C/Linux等等,為L(zhǎng)inux內(nèi)核開(kāi)發(fā)/驅(qū)動(dòng)程序開(kāi)發(fā)/嵌入式開(kāi)發(fā)打基礎(chǔ)。如果你想介入到應(yīng)用范圍最廣泛的應(yīng)用軟件開(kāi)發(fā)(包括電子商務(wù)電子政務(wù)系統(tǒng))的話,你可以選擇J2EE或.NET,甚至LAMP組合。每個(gè)領(lǐng)域要求的背景知識(shí)不一樣。做應(yīng)用軟件需要對(duì)數(shù)據(jù)庫(kù)等很熟悉??傊?,你需要根據(jù)自己的特點(diǎn)來(lái)選擇合適你的編程語(yǔ)言。
1.3 要腳踏實(shí)地,快餐式的學(xué)習(xí)不可取
先分享一個(gè)故事。
有一個(gè)小朋友,他很喜歡研究生物學(xué),很想知道那些蝴蝶如何從蛹?xì)だ锍鰜?lái),變成蝴蝶便會(huì)飛。 有一次,他走到草原上面看見(jiàn)一個(gè)蛹,便取了回家,然后看著,過(guò)了幾天以后,這個(gè)蛹出了一條裂痕,看見(jiàn)里面的蝴蝶開(kāi)始掙扎,想抓破蛹?xì)わw出來(lái)。 這個(gè)過(guò)程達(dá)數(shù)小時(shí)之久,蝴蝶在蛹里面很辛苦地拼命掙扎,怎么也沒(méi)法子走出來(lái)。這個(gè)小孩看著看著不忍心,就想不如讓我?guī)蛶退桑汶S手拿起剪刀在蛹上剪開(kāi),使蝴蝶破蛹而出。 但蝴蝶出來(lái)以后,因?yàn)槌岚虿粔蛄?,變得很臃腫,飛不起來(lái)。
這個(gè)故事給我們的啟示是:欲速則不達(dá)。
就拿筆者比較熟悉的深圳IT培訓(xùn)行業(yè)來(lái)說(shuō)吧,居然有的打廣告宣稱(chēng)"參加培訓(xùn),100%就業(yè)",居然報(bào)名的學(xué)生不少,簡(jiǎn)直是藐視天下程序員。社會(huì)環(huán)境如是,我們不能改變,只能改變自己,鬧市中的安寧,彌足珍貴。許多初學(xué)者C++/JAVA沒(méi)開(kāi)始學(xué),立馬使用VC/JBuilder,會(huì)使用VC/JBuilder開(kāi)發(fā)一個(gè)Hello World程序,就忙不迭的向世界宣告,"我會(huì)軟件開(kāi)發(fā)了",簡(jiǎn)歷上也大言不慚地寫(xiě)上"精通VC/JAVA"。結(jié)果到軟件公司面試時(shí)要么被三兩下打發(fā)走了,要么被駁的體無(wú)完膚,無(wú)地自容。到處碰壁之后才知道捧起《C++編程思想》《JAVA編程思想》仔細(xì)鉆研,早知如此何必當(dāng)初呀。
"你現(xiàn)在講究簡(jiǎn)單方便,你以后的路就長(zhǎng)了",好象也是佛經(jīng)中的勸戒。
1.4 多實(shí)踐,快實(shí)踐
彭端淑的《為學(xué)一首示子侄》中有窮和尚與富和尚的故事。
從前,四川邊境有兩個(gè)和尚,一個(gè)貧窮,一個(gè)有錢(qián)。一天,窮和尚對(duì)富和尚說(shuō):"我打算去南海朝圣,你看怎么樣?"富和尚說(shuō):"這里離南海有幾千里遠(yuǎn),你靠什么去呢?"窮和尚說(shuō):"我只要一個(gè)水缽,一個(gè)飯碗就夠了。"富和尚為難地說(shuō):"幾年前我就打算買(mǎi)條船去南海,可至今沒(méi)去成,你還是別去吧!" 一年以后,富和尚還在為租賃船只籌錢(qián),窮和尚卻已經(jīng)從南海朝圣回來(lái)了。
這個(gè)故事可解讀為:任何事情,一旦考慮好了,就要馬上上路,不要等到準(zhǔn)備周全之后,再去干事情。假如事情準(zhǔn)備考慮周全了再上路的話,別人恐怕捷足先登了。軟件開(kāi)發(fā)是一門(mén)工程學(xué)科,注重的就是實(shí)踐,"君子動(dòng)口不動(dòng)手"對(duì)軟件開(kāi)發(fā)人員來(lái)講根本就是錯(cuò)誤的,他們提倡"動(dòng)手至上",但別害怕,他們大多溫文爾雅,沒(méi)有暴力傾向,雖然有時(shí)候蓬頭垢面的一副"比爾蓋茨"樣。有前輩高人認(rèn)為,學(xué)習(xí)編程的秘訣是:編程、編程、再編程,筆者深表贊同。不僅要多實(shí)踐,而且要快實(shí)踐。我們?cè)诳磿?shū)的時(shí)候,不要等到你完全理解了才動(dòng)手敲代碼,而是應(yīng)該在看書(shū)的同時(shí)敲代碼,程序運(yùn)行的各種情況可以讓你更快更牢固的掌握知識(shí)點(diǎn)。
1.5 多參考程序代碼
程序代碼是軟件開(kāi)發(fā)最重要的成果之一,其中滲透了程序員的思想與靈魂。許多人被《仙劍奇?zhèn)b傳》中凄美的愛(ài)情故事感動(dòng),悲劇的結(jié)局更有一種缺憾美。為什么要以悲劇結(jié)尾?據(jù)說(shuō)是因?yàn)閷?xiě)《仙劍奇?zhèn)b傳》的程序員失戀而安排了這樣的結(jié)局,他把自己的感覺(jué)融入到游戲中,卻讓眾多的仙劍迷扼腕嘆息。
多多參考代碼例子,對(duì)JAVA而言有參考文獻(xiàn)[4.3],有API類(lèi)的源代碼(JDK安裝目錄下的src.zip文件),也可以研究一些開(kāi)源的軟件或框架。
1.6 加強(qiáng)英文閱讀能力
對(duì)學(xué)習(xí)編程來(lái)說(shuō),不要求英語(yǔ), 但不能一點(diǎn)不會(huì),。最起碼像JAVA API文檔(參考文獻(xiàn)[4.4])這些東西還是要能看懂的,連猜帶懵都可以;旁邊再開(kāi)啟一個(gè)"金山詞霸"。看多了就會(huì)越來(lái)越熟練。在學(xué)JAVA的同時(shí)學(xué)習(xí)英文,一箭雙雕多好。另外好多軟件需要到英文網(wǎng)站下載,你要能夠找到它們,這些是最基本的要求。英語(yǔ)好對(duì)你學(xué)習(xí)有很大的幫助??谡Z(yǔ)好的話更有機(jī)會(huì)進(jìn)入管理層,進(jìn)而可以成為剝削程序員的"周扒皮"。
相關(guān)文章
eclipse導(dǎo)入工程報(bào)錯(cuò)問(wèn)題項(xiàng)目或者文件有紅叉的解決方案
這篇文章主要介紹了eclipse導(dǎo)入工程報(bào)錯(cuò)問(wèn)題項(xiàng)目或者文件有紅叉的解決方案,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Java Thread之Sleep()使用方法及總結(jié)
這篇文章主要介紹了Java Thread之Sleep()使用方法及總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11maven導(dǎo)入本地倉(cāng)庫(kù)jar包,報(bào):Could?not?find?artifact的解決
這篇文章主要介紹了maven導(dǎo)入本地倉(cāng)庫(kù)jar包,報(bào):Could?not?find?artifact的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Java中transient關(guān)鍵字的詳細(xì)總結(jié)
本文要介紹的是Java中的transient關(guān)鍵字,transient是短暫的意思。對(duì)于transient 修飾的成員變量,在類(lèi)的實(shí)例對(duì)象的序列化處理過(guò)程中會(huì)被忽略,感興趣的朋友可以參考閱讀2023-04-04Spring Boot 中的 @PutMapping 注解原理及使用小結(jié)
在本文中,我們介紹了 Spring Boot 中的 @PutMapping 注解,它可以將 HTTP PUT 請(qǐng)求映射到指定的處理方法上,我們還介紹了 @PutMapping 注解的原理以及如何在 Spring Boot 中使用它,感興趣的朋友跟隨小編一起看看吧2023-12-12mybatis如何使用Criteria的and和or進(jìn)行聯(lián)合查詢(xún)
這篇文章主要介紹了mybatis如何使用Criteria的and和or進(jìn)行聯(lián)合查詢(xún),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12Java?離線中文語(yǔ)音文字識(shí)別功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了Java?離線中文語(yǔ)音文字識(shí)別,本次使用springboot?+maven實(shí)現(xiàn),官方demo為springboot+gradle,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07