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