軟件開發的道路充滿荊棘和挑戰,也充滿希望。JAVA學習也是壹樣,沒有捷徑。夢想像《八龍》裏的虛竹壹樣被五鴨子開導,輕松獲得壹技之長,是不現實的。我每天都對著天哭,“上帝啊,請給我壹本葵花寶典。”我不知道,即使妳拿到了葵花寶典,除了承受自己的尷尬,也不壹定會成為“東方不敗”,但成為“西方失敗者”的概率更高。
“不走彎路,便是捷徑”,佛經中不無道理。
今天就來說說如何學習編程吧。
JAVA是壹個平臺,也是壹種編程語言。如何學好編程不僅適用於JAVA,也適用於C++等其他編程語言。有些程序員覺得JAVA或者C沒什麽區別,就用吧。為什麽他們能達到這樣的境界?我覺得是因為編程語言之間有相似之處,我明白編程的本質,所以自然什麽都能做。當然,如何學習編程也有很大關系。
1培養興趣
興趣是能讓妳堅持下去的動力。如果只是把寫程序當做謀生的手段,會活得很累,會自憐自艾。多關註壹些業內趣事,多想想蓋茨。我不是提倡天天做白日夢,但是妳覺得人沒有夢想有意思嗎?也許像許多當地農民壹樣,他們打麻將,喝功夫茶,崇拜財神。每個月都有幾萬甚至更多的賬戶,憑空產生了壹個“逐利階層”。妳覺得是這個味道嗎?有空去逛逛壹些程序員的論壇,妳會發現他們其實很樂觀很幽默,時不時會有智慧的火花。
2仔細選擇編程語言
男人怕入錯行,女人怕嫁錯人。初學者在選擇編程語言時需要謹慎。軟件開發不僅僅是掌握壹門編程語言,還需要很多其他的背景知識。軟件開發已經不局限於少數領域,幾乎滲透到了各行各業的每個角落。
如果對硬件感興趣,可以學習C語言/匯編語言,進入硬件開發領域。如果熟悉電信行業知識和網絡,可以多花點時間在C/C++上,進入電信軟件開發領域。如果熟悉操作系統,可以學習C/Linux等,為Linux內核開發/驅動開發/嵌入式開發打下基礎。如果想涉足應用最廣泛的應用軟件開發(包括電子商務電子政務系統),可以選擇J2EE或。網,甚至燈的組合。每個領域需要不同的背景知識。做應用軟件需要熟悉數據庫等等。簡而言之,妳需要根據自己的特點選擇合適的編程語言。
腳踏實地,快餐式學習不可取。
先分享壹個故事。
有個小孩很喜歡學生物,想知道那些蝴蝶是怎麽從蛹殼裏出來,變成蝴蝶飛起來的。有壹次,他去草原,看到壹只蛹,就把它帶回家。然後他看著。過了幾天,蛹出現了壹條裂縫,他看到裏面的蝴蝶開始掙紮,想抓破蛹殼飛出去。這個過程持續了幾個小時,蝴蝶在蛹裏非常努力地掙紮,卻怎麽也出不來。孩子看著不忍心,覺得還是我幫他比較好,就拿起剪刀在蛹上剪開,讓蝴蝶破繭而出。但是蝴蝶出來後,因為翅膀不夠有力,變得臃腫,飛不起來。
這個故事的教訓是:欲速則不達。
浮躁是現代人最常見的心態。能怪誰呢?也許是因為貧窮落後了這麽多年,就像大躍進壹樣,大家都想大步走進* * *資本主義社會。現在的軟件公司,客戶,政府,學校,培訓機構等等都充斥著浮躁。以我熟悉的深圳IT培訓行業為例。其實有人標榜“100%的工作會通過培訓獲得”,但實際上很多同學都報名了,這簡直是對全世界程序員的蔑視。如果社會環境就是這樣,我們改變不了,只能改變自己。市中心的寧靜是珍貴的。很多C++/JAVA的初學者沒有開始學習,就馬上用VC/JBuilder,用VC/JBuilder開發了壹個Hello World程序。他們爭先恐後地向世界宣布“我可以開發軟件”,並在簡歷上寫下“精通VC/JAVA”。結果去軟件公司面試,不是被打發走三兩次,就是被駁得體無完膚。直到到處碰壁我才知道,我拿起《C++編程思想》和《JAVA編程思想》認真研究起來。如果我知道這些,我為什麽要知道?
“現在講究簡單方便,以後的路會很長”,這似乎是佛經中的壹句勸誡。
4多練,練的更快。
彭端淑的《示子侄學》講述了壹個窮和尚和壹個富和尚的故事。
從前,在四川的邊境上有兩個和尚。壹個是窮人,另壹個是富人。壹天,窮和尚對富和尚說:“我要去南海朝聖。妳怎麽看?”富和尚說:“這裏離南海有幾千英裏遠。妳怎麽去那裏?”貧僧說:“我只要壹個水碗和壹個飯碗。”富和尚尷尬地說:“幾年前我就打算買艘船去南海,但現在還沒做成。妳最好不要去!”壹年後,富和尚仍然在籌錢租壹艘船,但窮和尚已經從南海朝聖回來了。
這個故事可以解釋為:任何事情,壹旦考慮好了,就應該馬上上路,不要等到準備好了再去做任何事情。如果在上路之前就準備好要考慮的事情,別人可能會捷足先登。軟件開發是壹門工程學科,重在實踐。軟件開發者說“君子動口不動手”是根本錯誤的。他們主張“先下手為強”,但不要怕。他們大多性格溫和,沒有暴力傾向,雖然有時候看起來像“比爾·蓋茨”。有資深專家認為,學習編程的秘訣是:編程、編程、再編程,我深表贊同。不僅要多練,還要練得快。當我們在閱讀壹本書的時候,不要等到妳完全理解了之後才敲代碼。相反,我們應該壹邊看書壹邊打代碼。程序運行的各種情況可以讓妳更快更牢固的掌握知識點。
5多參考程序代碼
程序代碼是軟件開發最重要的成果之壹,它滲透著程序員的思想和靈魂。很多人被《仙劍奇俠傳》中悲情的愛情故事感動,悲劇的結局更是美不勝收。為什麽會以悲劇收場?據說寫仙劍奇俠傳的程序員失戀了,安排了這樣的結局。他把自己的感情融入到了遊戲中,卻讓很多劍迷感嘆。
參考許多代碼示例。對於JAVA,有參考文獻[4.3],API類的源代碼(JDK安裝目錄下的src.zip文件),也可以研究壹些開源軟件或框架。
6加強英語閱讀能力
對於學習編程來說,英語不是必須的,但也不能壹點都不懂。至少像JAVA API文檔(參考文獻[4.4])這樣的東西應該是可以理解的,甚至是猜測和混淆的;打開旁邊壹個“金山詞霸”。妳看得越多,妳就會變得越熟練。邊學JAVA邊學英語,壹舉兩得。另外,很多軟件需要從英文網站下載。妳應該能找到他們。這些都是最基本的要求。好的英語對妳的學習有很大的幫助。如果妳英語說得好,妳就有更好的機會進入管理層,然後妳就可以成為剝削程序員的“周扒手”。
七萬人還得問別人。
在網校在線輔導系統解決學生問題時,筆者發現大部分問題學生只要稍加思考就能解決。在咨詢他人之前,妳應該回答以下問題。
妳在谷歌上搜索解決問題的方法了嗎?
妳查過JAVA API文檔嗎?
妳查過相關書籍嗎?
妳寫過代碼測試嗎?
如果答案是“是”,而且還沒有找到解決辦法,再去問別人也不遲。要知道,獨立思考的能力對妳來說很重要。要知道,程序員的時間是寶貴的。
多讀好書
顏如玉在書中。比爾·蓋茨是壹個博覽群書的人。雖然沒有讀完大學,但比爾·蓋茨九歲的時候就已經讀完了所有的百科全書,所以他精通天文、歷史、地理等等。可以說,比爾·蓋茨不僅是當今世界上金錢上的首富,也是知識上的首富。
我經常在給學生上課的時候給他們推薦書籍。後來有學生不忍心抱怨“天啊,我什麽時候才能看完這麽多書?”以及“學軟件開發讓我覺得自己像個小偷。”這時候我的回答壹般是“別急,我什麽時候給妳看我的書房?到現在,每個月花在技術書上的錢在400元裏,在軟件開發者中也只是中等水平。”學生當場暈倒。(註:這部分學生是剛學軟件開發的)
9使用正確的工具
工欲善其事,必先利其器。軟件開發包括需求收集和分析、建立用例模型、建立分析和設計模型、編程實現、調試程序、自動測試、持續集成等各種活動。沒有工具的幫助,可以說是無法前進的。工具可以提高開發效率,讓軟件質量更高,bug更少。結合雙手的武器。達到飛花摘葉能傷人的境界就很高了。不出招,手裏有劍,心裏有劍,幾乎不可能贏。