java學習之路

(一)
從事軟件行業工做已經近7年了,實際Java開發也就是近4年.真正從怎麼會用Eclipse開始學起. 問過同事一個對象爲何能夠幾個類共用 ...到如今4年後的今天,也不敢說Java學的有多好,相反以爲有不少東西要去學習. 只想就我我的的一些心得,給初學者一點可資借鑑的意見吧.
今天先說說學習Java的必備條件,
其一,興趣. "興趣是最好的老師",很熟也很俗,但倒是事實, 沒興趣根本就不可能學好,寫程序是個費腦子的事情,進步的惟一辦法就是受挫折,想破腦殼然後豁然開朗才真正有實質的進步. 若是你只想學個Hello Word,那又何須學編程呢?
其二,思想, Java編程思想 使我第一次知道了編程須要思想, 多年過去,我我的體會與其說編程思想,還不如說是解決問題的思想; 因此我想要說的思想就是如何解決問題的想法, 不僅是編程的問題. 實際工做中, 太多拙劣的代碼其實反映是思想的缺失,常常把簡單的問題複雜化,或是找不到問題的關鍵所在。這些都不是編程的問題,是廣義的思想的問題,因此有人說:「編 程時聰明者的遊戲」。
其三,追求卓越的精神,不管什麼時候,老是用本身能想到的最好的辦法去解決問題,老是試圖改進本身之前的想法。程序員是一個職業,是一個謀生的手段,可是要把 這份職業作好,只是向老闆交差是不行的,這樣對的住老闆,可是對不住本身,一段段垃圾代碼正象徵着你不斷地退步,不僅是技術,更是思想;不斷的追求卓越, 接力想最好的辦法。
其四,求根問底的精神。知道這樣能夠,也要知道爲何這樣能夠,若是確實沒辦法搞清楚,記下一個問號,也許某天當你學了更多東西后,忽然明白了。拒絕淺嘗 輒止,前面已經說了,挫折是進步的惟一最好的途徑,略過了挫折也就丟失了更進一步的機會。新來一個兄弟愛抱怨程序看不懂,其緣由是程序寫的太爛;程序爛不 爛暫且不說,可是程序爛與不爛都不是你看不懂理由;爛點就花點時間,多調試,能夠運行的代碼都是能夠看懂的;我我的以爲從爛程序中受益不淺,這麼爛的我都 看得懂,還怕不爛的嗎?搞清楚爛在哪裏,並把它改進一下,收穫時很大的。
其五,虛心。不要輕易說這個很簡單,你這樣不對。可是若是你成竹在胸,請勇敢的說出口。虛心的去學習,當心的探索。也許從別人的錯誤中,你會獲得某些頓悟般的啓示。
其餘,忌好高騖遠,忌捨本逐末。
(二)
前面說過學習java的必備條件,或是說學習編程的必備條件,今天就把我我的的學習歷程列出來與你們分享。
推薦入門書,Think in java,就是Java編程思想。若是英文好的話,儘可能看英文的,由於再怎麼厲害的人,因爲文化差別,不可能徹底能表達做者的那個「味」。就「面向對象」 這個機率來講,英文其實很好理解,可這中文翻譯卻很讓人糊塗,並且你還真找不到更好的翻譯辦法。因此看英文書,最好看原版,能很好的體會做者的意境。有人 說這本書入門太難,我不這麼認爲,相反它只是把每一個知識點都說得很透徹,不是要人死記硬背,而是從道理上說透,好比爲何入口的main方法要 public,要static.
有書了,咱們怎麼學習呢?先講學習內容。
我以爲有其餘程序語言基礎的,能夠把程序結構那章略過,基本數據類型也不要花主要功夫。重要是講類,接口,重載,覆蓋,異常,Collection的那幾章,而後是線程,內部類這部分能夠等有必定基礎了再看也行,開始你可能根本不知道爲何要用它,因此也不會用。還有就是IO, 我以爲到不用花不少時間,大體先了解就行了。
就學習方法而言,書上的例子是要看的,並且要親自敲到電腦上調試下,光看書只能是半生不熟,似懂非懂的。有問題隨時用筆記下來,並在之後的學習中試圖找到答案。
學習的過程當中,不要去學習什麼流行的框架怎麼用,如struts,spring等,先學好基礎再說,不要好高騖遠。而後能夠本身想個小玩意作作,練練手。 好比雙機的聊天工具,擴張成客戶端服務器模式啦。我的以爲不要急於上手Web程序,它可能會讓你忽略了基礎的學習與掌握,甚至寫程序的興趣。
等自覺學的差很少了,再把書從頭過一遍,之前理解的也許有更多感悟,之前不懂的,說不定已經搞清楚了。書讀百遍,其意自現。
有空到論壇上別人都什麼問題,試圖解決下。碰到問題google下,不要輕易發問,先試圖本身想辦法解決問題。
以上是我我的一點感覺,錯誤之處敬請批評指正。另外Think in java目前最新的是第四版,在網上能夠找到pdf格式的電子版。各位若是須要請留下電子郵箱。
(三)
副標題, 積極主動地學習。 剛開始工做那年,公司培訓說「吃虧就是佔便宜」,「比顧客要求的作的更好」,當時以爲純屬愚人思想。但這兩句話確實對我影響深遠,由於這兩句「愚人」的言論,我收穫了不少。 爲何要吃虧呢?老闆給多少錢我就作多少事!彷佛頗有道理,可是在一樣的時間內你作了較差的事情,就是在浪費本身的時間。一樣是8個小時,我爲老闆把事情作到最好,老闆確實爲此得到了好處,可是你本身也充分利用了本身的時間。因此我說「作事就要作好,跟別人給你多少錢沒有關係;以爲錢少不值得,就直接不要作;既然作就要盡心。」可能還有人不一樣意,說我能夠節約出上班時間盡心做本身的事情,不也是進步了嗎?這其實有兩個誤區,第一,違法紀律的事情不要作,就算作估計也有點提心吊膽,要防着領導冷不防站在你背後,試想這樣的緊張狀態下,你能很好的發揮本身嗎?第二,本身的項目因爲沒有任何實質的壓力,或說沒有被檢驗的壓力,每每多缺斤少兩,或是進展緩慢,不具有很好的持續性。因此請用公司的項目練手就很好,不要怕誰佔了你便宜;說不定領導看你作的好,還獎你點錢,也算是意外之財。
說個我本身的事情,因爲本人學歷不高,也不是什麼名校畢業,一個讓公司爲難的意外我作的個組長。而後在至關一段長時間內,一個作事情比我少,責任比我 輕,代碼質量比我差不少的下屬工資比我高。幾年過去了,我也一直位置上努力着,學習着,終於超越了他一點點。這裏我並非想說我不爭待遇,多麼假清高,因 爲我一直都在學習,既然錢爭不到,就爭點能力吧,能力老是永遠用得上的,還好最後待遇終於有了點小小進步。
爲何要比顧客要求的作的更好?誰是顧客?「下一站就是顧客。」因此顧客是你的郵件接受者,是你的上司,也是你的下屬,還有QA的同志們,一切跟你有關聯 的人其實都是你的顧客。我想說還有一個顧客,這個顧客就是你本身,不斷地作超出你預期的事情,不斷地超越昨天的自我;多研究下開源項目的代碼,注意我說的 是看源碼,不是學怎麼配置使用;這個過程有時候很痛苦,看不懂啊,可是一旦看懂了,你領悟的別人編程的思想,解決問題的思路,在你從此的工做你也會不經意 的用上,並且你看到很好的代碼,就會反感本身曾經認爲很好如今看來是垃圾的代碼。你看的源碼越多,看更多其餘的代碼越簡單,由於好的程序員老是對好的代碼 有比較一致的見解,因此他們解決特定問題都趨向於某總一樣的模式,就是所謂的設計模式。因此不只要經過嚴格要求本身及,還要多多經過學習別人的經驗來豐富 本身。
最後該篇以那句總被忘記、卻在失敗反省中容易想起的名言做結。「書山有路勤爲徑,學海無涯苦做舟。」
(拾遺)
學習最大的天敵就是忘記,因此我想把我這幾年的學習的東西,一點一點拾起來,算是複習,主要是對Java基礎知識再回首,包括經常使用設計模式再內。具體計劃大體以下: 第一階段,以Thinking in java做爲複習教材,一章一章的過,包括部分原文轉載,而後翻譯,寫下本身的心得。 第二階段,找一個本身徹底全新開源項目,進行源代碼分析學習,一步一步寫下學習筆記,也同時跟大夥交流心得。具體項目如今還沒想,不能太大的,也不能太微小的,找個比較流行的吧。 這個過程可能歷時會比較長,也不知道是否能堅持下來。不管如何,一步一步來吧。java

相關文章
相關標籤/搜索