我的JAVA之路就是從考SCJP開始。
起源:
一切都是源于CSDN上的SCJP的廣告,那是在國慶長假前幾天看到的。在2006年下半年,學生考SCJP是優惠價450。那時就想著趁著這個時機考個證來傍身,優惠800哦。順便可以開始學習JAVA。
開始學習JAVA:
然后就在網上買了幾本書,都是很多人都推薦的《Thinking in JAVA 3e》,《Core Java 7e》1,2卷,《Effective Java》。那時還完全不懂,不買Effective JAVA早知道買Java Puzzlers,因為其實Puzzlers是Effective的第二版,兩位作者都是就職于Google的JAVA達人。而另外兩本書用來入門還不錯,兩本書都有大量的代碼例子,看代碼來學習也許是最好的學習編程的方法了。TIJ這本書講了很多編程技巧和JAVA的一些原理,而CJ這本書講了很多在應用方面的技巧,兩本書都很生動很有趣。
以前C++上我花了很大的精力在學習,一開始接觸電腦就在學C++,有兩年的C++學習時間。所以對JAVA的語法和面向對象概念能比較好的適應。對C++和JAVA比較直觀的比較就是,JAVA的庫比起C++的標準強大太多太多了,C++只提供了一些常見的數據結構和算法,而Java幾乎提供了所有的基礎功能。還有JAVA的API文檔相當齊全,對方方面面都講得很詳細,而且有中文化,這相對于學習速度有很大提高。
小插曲:
一開始我就計劃好,用一個半月的時間學習JAVA基本的知識,然后用一個月的時間復習考試。如果計劃延誤了就算了,不考了。計劃其實不是很順利,10月份因為學生會很多事要做,而且剛好學校要進行本科評估,抓的比較嚴不可以太常逃課,又剛剛好有朋友拉我去作一些商業活動。這時忽然因為和女朋友吵架了,所以心情很不好,有些自暴自棄,一下子把身邊的事全部推了,把學生會的職務也辭了(在他們的挽留下雖然最后沒有辭成功只是暫時離開學生會),什么都不理,專心地學習。結果進度又拉了上來,大概在十一月底就完成了基本的學習。
復習:
在十一月份買了那本Sun Certified Programmer for Java 5(Exam 310-055),這是對考試有極大幫助的一本書。這本書的作者就是大名鼎鼎倍受好評的《Head First》系列的作者,也是SCJP的出題人。這本書對055考試中每個考點,哪些必考哪些不考,而且對知識做了很細致的整理。里面的題目也出的很好,基本每個考點都有十幾道題目,我基本可以維持在六十多的正確率。隨書還附送一個模擬器,模擬真正的考試環境。之后因為對Lang包中的一些類還有一些疑惑就買了一本《The Java Programming Language 4e》。買來這本書初看上去好像講得很泛很蜻蜓點水式,但是看下去之后發現這正是這本書的最大優點,幾乎對JAVA語言的每個方面都有一個明確的概念,這對理解各個細節有很大作用。
QQ群:
在一次偶然的機會,在一個論壇上看到了有一些準備考SCJP的人組織的QQ群,在里面認識了一些人。有些考過的,有些和我一樣準備考的。在這個群里經常有人提問題,之后就是一大群人在這里熱烈地在討論,氣氛好不熱烈。這可能也是我考試成功的一個因素,不過我倒是在群里經常為人回答問題的那個

。
報名:
在十二月份,就去問了一些通過考試的人,具體怎樣報名,考試時怎樣。最后決定去廣州天河那里考試,因為我爸爸在那里工作。而時間定在十二月份倒數第二個星期五。選在倒數第二個星期是因為為了給自己多點時間準備,而不選最后一個星期是要以防萬一。結果最后一個星期真的發生了很大件事--地震,這次地震使得溝通中國大陸和美洲的光纖斷了,考試中心也因為這樣無法正常考試。
因為這次考試優惠活動sun要求提前一個星期去報名。于是我在女朋友的陪伴下一起去廣州報名。報名時,我就選了055的中文考試。報完名回來之后開始后悔了,聽到有些人說中文是用機器翻譯的有些地方根本看不懂在說什么,還有后悔報了055因為發現知道考scjp的人幾乎都是報035,而有幾個報055的好像都沒有通過。在考試前就這么一直在想來想去,弄到自己很緊張。
最后沖刺:
在最后一個星期里,我一直都很緊張。我把那本scjp考試指南每一章最后的總結都看了一遍,把以前做錯的題又在看了一下研究一下自己為什么錯,哪個方面的知識點不清楚然后再鞏固一下。然后做一下模擬器,感受一下考試時的感覺。做了一次模擬器之后很失望,因為第一次做了之后成績只有百分之四十多而已,離考試通過的分數還有十個百分點。這件事使我自己更加緊張。但最后兩天,女朋友特地跑過來和我聊天開導我,使我自己放松了很多。在倒數第二天因為該看的也看完了,所以沒事看了一下035的TestKing。
決戰考試:
我是提前一天去廣州的,準備第二天早上就去考試。去到廣州之后本來想著在我爸宿舍那里再看一下書,但是下午睡了一覺然后吃了飯后就自己去了購書中心那里逛了幾個鐘。結果腦子里都裝了很多spring,stucts的東西,整個晚上都在思考這些技術。晚上回爸爸宿舍那里,爸爸和一些同事就打邊爐和喝酒,弄到很晚快一點鐘才去睡覺,好像躺了一個鐘左右才睡著。
第二天早上起來之后就發現頭痛,開始有點慌了,怕頭痛等一下考試發揮不好。我就吃了很多薄荷糖,這是一直的習慣,一緊張就要吃薄荷糖。在八點半時就打了輛的去考場那里。到了那里之后,那個招待的人還說:“哇,正好九點,那么準時。”她說完后就去考試那間房間里開電腦下載試卷。考試前還要簽一張考試協議書,保證不能作弊,然后發一張做了標記的草稿紙。有一個人是和我同時考的,他比我晚來了十分鐘左右。和他聊了一下,原來他是從事JAVA開發的。他聽說我只是個大二的學生,就帶有一點嘲諷的口氣對我“SCJP是需要實際開發經驗的。”一聽他這么說,我就懷疑這個人沒什么技術的,之后他就去和招待小姐聊天。而且他還問有沒有api文檔可以看,這時我可以肯定他只是一個白癡。考試是在一間有幾部電腦的房間里進行的,房間里有監視器,考試時只有考生沒有監考人員。
開始考試了,一開始要回答一些關于你對JAVA技術的了解情況,比如你對某個方面的掌握情況如何。有人說這會影響你考試試題的難度,我覺得這不大可能,因為試題一早就下載到考試系統中了。再仔細研究一下,發現windows的一些功能鍵都被攔截了,比如任務管理器和win鍵。回答完那些調查問題就開始答題了,73道題目之外還有幾個調查問題,比如你是在哪里知道sun的scjp考試之類的問題。
我的答題策略是按照SCJP學習指南里講的策略。第一遍先把簡單得可以一下子得出答案的題作完,第二遍把第一遍沒有做的題寫完,第三遍把做了標記的題目再作一次,第四遍檢查。考試中發現中文漢化的還可以,有幾道題翻譯的有點怪,還有一道拖放題,題目竟然因為空間不夠寫了一半,那道題我記得是考線程(Thread)的。還有拖放題有些問題,就是只要打開了之后不管你有沒有回答完系統都認為你已經回答了,而且在回答完之后再次打開,之前填的答案會丟失,所以每道我都做了記號并把答案記下來。完成之后考試時間還剩一個鐘多一點,我狠心地按下了完成按鈕結束考試。從決定按下到走出考試的房間知道結果之前,心一直猛跳,很緊張很緊張。走去考試的房間后,就向那個負責安排考試的那個人說我考完了,她叫我稍等一下,她去拿打印報告。考試答案是發送到一個考試總的中心,然后分析答案,再傳真考試報告到你考試的那個考試中心的,這個過程總的時間只有幾秒。過了一分鐘左右,我看到她拿來了成績報告,她先在上面蓋一些章。我很緊張地問她過了沒有,她輕描淡寫說過了。等到我拿到考試報告時,有點失望,因為只考了67%,只比通過百分率高了9個百分點,我懷疑是我在最后檢查時把很多題目改錯了。走出考試中心后我馬上打電話給我女朋友和媽媽,告訴他們結果。那時真的很興奮。而走出考試那個房間時,另外一個考試那個人才回答到五十幾題,他在考試時在很多題目都是一直拿鼠標在答案選項那里一直猛點。我有點幸災樂禍,估計他是通不過。
收獲體會:
通過這次考試我比較好得掌握了JAVA語言的一些基礎(只是一些而已),其實在一邊學習復習時,寫了很多toy code(比如一些文件操作工具等),充分地理解了一些用法和機制。打下了比較好的JAVA基礎。
不過通過考試之后會更累。因為還有很多很多JAVA知識要學習,就像
讀的書越多,學的東西越多,越會發現自己的無知,然后又去讀更加多的書學習更多的知識。之后馬上就指定新的學習計劃和學習任務,如,JDBC,XML編程,JDNI,JSP和Servlet,EJB,各種框架,等等。
考到這個證之后好像沒什么成功感,因為發現很多人都考了這個證,所以可能之后會考SCEA(SUN認證架構師)。有些人為了SCJP,報了035,然后把時間都用在背題上,之后通過考試之后就到處炫耀。因為035的題庫網上有,而且才只有二百多道題左右,所以很多人都可以通過這個方法輕松的通過這些考試,以致于把SCJP這個認證的可信度真實度都拉低了。055現在還沒有題庫,而且考試范圍比035多了4個考試內容,所以比較少人考。
感謝:
能夠通過這次的考試,除了我自己的努力,也離不開女朋友和爸爸媽媽的支持,謝謝他們。特別是女朋友在我緊張迷茫時開導了我,鼓勵了我,讓我能夠用比較好的心態面對考試。婷婷我愛你。