Java系統程序員修煉之道-筆記

    在googleReader中訂閱的blog中閱讀到了一篇很好的blog,於是將其閱讀筆記整理如下: 
   一,java語言學習
  對線程(thread),串行化,反射,網絡編程,JNI技術,容器(Map,List, Iterator), 類加載器(ClassLoader),輸入輸出流,垃圾回收機制, 有比較深入的瞭解,最起碼做過項目應用。有過Java項目的性能優化經驗,最起碼掌握一種性能監視工具的使用,熟悉JVM參數,最起碼知道可以在JVM啓動時指定不同垃圾回收機制,以及不同垃圾回收機制之間的差別,熟悉JVM參數優化。
  二,J2EE方面
    最好知道JDBC規範是怎麼回事情,面對Oracle數據庫如果告訴你JDBC驅動不能用了,你還知道有OCI驅動可以。掌握常見的SQL語句,熟悉JMS, JNDI等組件,掌握一套web開發模式,從前臺到後臺,有能力整合好這樣的框架。理解並掌握MVC思想,像SSH已經實現了MVC的分層,幾乎不需要你自己再實現,假設你開發一個簡單的Swing程序,你能MVC就說明你真的掌握了MVC的精髓。有能力在J2EE前端開發中構建自己的MVC模式,知道什麼是WEB2.0,知道什麼是SOA, SaaS, SaaP等含義。
三,理解並運用設計模式
知道並理解設計模式中蘊含的幾種基本原則如:里氏替換原則, 開閉原則,合成複用原則,依賴倒置原則有很好的理解,並能舉例說明。對常用的設計模式如工廠模式,單例模式,觀察者模式,責任鏈模式,橋接模式等知道靈活運用,明白什麼是回調(Callback)。最後用一位高人話來總結設計模式,它是爲了讓軟件更容易被別人讀懂,更容易維護而產生,設計模式本質是程序員之間的交流,如果A用工廠模式設計一個模塊B來接替,A只要說該模塊是工廠模式實現,B維護起來應該容易得多,所以設計模式是關於交流,不關於代碼。切忌濫用設計模式。學會使用UML建模工具至少熟悉一種URL建模工具。
四:注重用戶體驗,掌握KISS原則,知道歐卡姆剃刀原則
顧客就是上帝這個口號我們已經喊了N年了,程序員的勞動成果最終也需要轉換爲服務提供給客戶,用戶體驗至關重要,常常看到的場景是功能實現了,軟件很難使用,程序員有個很充足的理由我不是美工,其實注重用戶體驗跟美工八杆子也打不到一起,FoxMail的成功在很大程度是用戶體驗的成功,友好,清晰的用戶提示,強的容錯與糾錯設計是獲得好的用戶體驗的不二法門。傻瓜相機顧名思義傻子都會使用,這個就著名的KISS原則(Keep it simple and stupid)意思是UI設計要簡單明瞭,傻子一看就知道怎麼用,想想我們做出來的東西,對照說明書都不知道怎麼用。另外一個就是最著名的例子IPhone手機外觀設計,是典型的歐卡姆剃刀設計原則來完成人機交互。
五:熟悉常見的網絡通信協議
對HTTP協議,知道POST, GET的區別是什麼,閱讀過HTTP相關的RFC文檔。學會使用sniffer工具查看數據包,幫助查找與調試程序,知道TCP與UDP的區別,知道並理解E-Mail發送與接受的協議如SMTP, POP3,IMAP等協議,瞭解MIME與Base64編碼。知道組播是怎麼回事情。
上學的時候老師常讓寫小結,也沒總結出來所以然,以至於工作以後再也不提這檔子事情,建議每個項目做完以後對自己都有個小結,總結自己在項目裏面學到了什麼,反問自己能不能完成在不需要別人幫助的情況下自己完成這樣的系統搭建,是否熟悉與掌握項目中所用到的技術,即使有些東西不是你負責完成的但是什麼也不能阻擋一顆求知的心,總結要儘量詳細記錄你遇到那些難題是怎麼一個一個的解決的,下次再遇到你是否可以很快解決或者避免這樣的問題。有總結纔有提高,孔子曰:學而不思則罔,如果我們只是coding到吐血,不思考,不總結提高,永遠不可能有能有本質提高,秦相李斯有云:“泰山不讓土壤,故能成其大,河海不擇細流,故能就其深”,點滴積累不斷總結方能量變導致質變。
六:重視基礎
《算法導論》,《編程珠璣》等書絕對值得讀十遍。微軟亞洲研究院視覺計算組負責人在一次演講中說到他們招人的標準是“三好學生– 數學好,編程好,態度好”。可是現實的普遍情況卻是 - 微機原理鬧危機,彙編語言不會變,實變函數學十遍。計算機基礎知識被大家普遍忽視。從今天開始好好學習吧……
面對漫長的職業生涯,要想不被淘汰,必須具備一招鮮吃遍天下的能力,選擇自己感興趣的方向,努力而深入的研究,計算機技術發展到今天已經細分很細,努力研究一種Java開源框架或者開源HTTP服務器源碼或者研究過網絡爬蟲源碼或者WEBKIT內核,不愁沒有人要你。如果你是非常瞭解金融,企業ERP,證券,保險,移動應用行業的應用開發業務的人,一樣不用愁工作。這些知識不隨語言而改變,努力做一個有核心競爭力的Java程序員。 
文檔與語言表達能力是最好的向外界展現自己能力的方式,很多程序員編程能力很高,表達能力一般,Linux能夠成功,除了歸功於網絡社區的力量之外,也得益於Linux作者本人給各大基金會寫信,宣傳推廣,試想如果沒有良好的書面語言表達能力,即使Linux系統再優秀,卻無法被準確表達,失去各大基金會的支持,Linux還會像今天這麼好的局面嘛。所以重視文檔,重視提升溝通與表達能力,纔有可能成爲Java系統程序員。掌握基本的2/8原則,學會將模塊細化分配給不同的人,預見並控制項目風險,把握項目進度,優化流程,合理的時間管理,瞭解TDD,熟悉敏捷開發模式,常規軟件開發模式。
英語是計算機的母語,掌握好英語對於閱讀英文資料學習新技術大有幫助,我的建議是儘量讀英文原版書,如果是算法方面的可能會困難一點,但是其它像設計模式,軟件工程,OO編程思想等儘量讀原版,提高自己的英文水平,多多訪問開發者,code project,程序員天堂,Pc-magazine等英文IT網站。英語絕對是你必須修煉與提高的技能。此外英語好在外資企業尤其重要,只有外語足夠好纔可能在外資企業中突破職業瓶頸,向上發展。
發佈了88 篇原創文章 · 獲贊 435 · 訪問量 126萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章