引言
前段時間失業了,找工作的時候最深的兩點體會是:
1、雖然做過大項目,做過很多復雜業務功能,涉及過很多知識領域。但是都很難表達清楚。
2、筆試遇到很多算法題,做得都比較頭疼(糟糕),很多都直接影響了面試結果。
第一點我明白是需要不斷總結和積累的,第二點勾起了我對算法學習的興趣。大學學算法的時候,脫離實踐,只談時間、空間復雜度和實現難度,學完了就忘了,那樣枯燥的算法我肯定不想再碰一遍。
偶然看到了Coursera的算法導論課程,遇到了大牛老師Robert Sedgewick,他的視頻在網上下下來看了,雖然沒有中文字幕,但看起來非常易懂(比大學老師說中文都容易懂。。。)
在寫這篇文章的時候已經大約花了一個月時間,學到了字符串處理。算法第一部分(前三章)的Coursera題目已經在網上做完了,應該說例題也是非常經典。如果廣大苦手算法的同學可以考慮去看看,真心不錯。
這里簡單介紹下Algorithm這門課的習題方式和做習題可能遇到的問題,具體習題解答在之后的博客更新:
1、語言用JAVA,但是基本上C#上手很容易,我本人以前用過JAVA,現在主要用C#,基本感覺不到區別。
2、作業上傳zip包,只需包含要求的java類文件即可,上傳無次數限制,上傳后會自動編譯測試,測試結果會過幾分鍾顯示。測試結果基本不會很難懂,這個之后我會舉例的。
3、官方推薦的開發環境是DrJava,雖然我用的是這個,但不是很推薦,因為默認版本好像是不能設置斷點的。調試很麻煩,對新手來說有點難用,我還是推薦用eclipse,但我會介紹怎么用DrJava。
4、每個作業有Specification和Checklist,前者是題目正文,后者是提示和常見問題,做題目第一個就足夠了,如果看不懂題目、做不來或者過不了測試,可以求助第二個。
5、官方提供的algs4.jar import包類似C#中的include,相關的源碼和接口文檔在Specification和Checklist都有,可以查看,每個項目都要用到,其它的JAVA數據結構我也不知道,所以我也沒有引用。
6、實在苦手做不來的童鞋也可以去Coursera論壇上求助,盡量不要太丟人就行。。。
關於DrJava
第一步、下載安裝就不說了。打開以后新建項目,和VS里一樣,不然無法import jar包。
第二步、選擇編譯路徑引入外部類,最重要的是要把algs4.jar文件的路徑添加到Extra Classpath,這點搞了我好久。不然你代碼里不能import。
第三步、寫Class,一個Class一個文件
第四步、編譯執行,先編譯成中間文件,我理解和IL類似;只要有main函數,基本上都可以按以下方式執行,注意大小寫敏感。
高級功能:單元測試JUNIT
以前比較熟悉NUNIT,JUNIT的話差不多,但是DrJava支持的斷言異常少,建議還是不要用了。。基本上手工測測也夠了