今天在論壇裡看到了一位工作10年的java大牛總結的java程式員修鍊之道,看完後給出的評價是:字字璣珠,深入人心,猛回頭,自己一無是處···
大牛告訴我們應該好好學習與修鍊以下知識與技能
- 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等含義)
- 理解並能合理運用設計模式,UML建模(知道並理解設計模式中蘊含的幾種基本原則如:裡氏替換原則,
開閉原則,合成複用原則,依賴倒置原則有很好的理解,並能舉例說明。對常用的設計模式如原廠模式,單例模式,觀察者模式,責任鏈模式,橋接模式等知道靈活運用,明白什麼是回調(Callback)。最後用一位高人話來總結設計模式,它是為了讓軟體更容易被別人讀懂,更容易維護而產生,設計模式本質是程式員之間的交流,如果A用原廠模式設計一個模組B來接替,A只要說該模組是原廠模式實現,B維護起來應該容易得多,所以設計模式是關於交流,不關於代碼。切忌濫用設計模式。學會使用UML建模工具至少熟悉一種URL建模工具。)
- 注重使用者體驗,掌握KISS原則,知道歐卡姆剃刀原則(顧客就是上帝這個口號我們已經喊了N年了,程式員的勞動成果最終也需要轉換為服務提供給客戶,使用者體驗至關重要,常常看到的情境是功能實現了,軟體很難使用,程式員有個很充足的理由我不是美工,其實注重使用者體驗跟美工八杆子也打不到一起,FoxMail的成功在很大程度是使用者體驗的成功,友好,清晰的使用者提示,強的容錯與錯誤修正設計是獲得好的使用者體驗的不二法門。傻瓜相機顧名思義傻子都會使用,這個就著名的KISS原則(Keep
it simple and stupid)意思是UI設計要簡單明了,傻子一看就知道怎麼用,想想我們做出來的東西,對照說明書都不知道怎麼用。另外一個就是最著名的例子IPhone手機外觀設計,是典型的歐卡姆剃刀設計原則來完成人機互動。)
- 自動化的測試與軟體組態管理(SCM)實現(知道什麼是軟體組態管理,知道Hudson
- http://java.net/projects/hudson/運用該工具SCM,知道怎麼擷取測試程式碼涵蓋範圍, Java有效程式碼數(NCSS),完成firebug, JDepend等工具整合ant/maven。熟悉並注重在開發過程中使用JUnit單元測試,理解白盒測試規範。)
- 熟悉常見的網路通訊協定(對HTTP協議,知道POST,
GET的區別是什麼,閱讀過HTTP相關的RFC文檔。學會使用sniffer工具查看資料包,協助尋找與偵錯工具,知道TCP與UDP的區別,知道並理解E-Mail發送與接受的協議如SMTP, POP3,IMAP等協議,瞭解MIME與Base64編碼。知道組播是怎麼回事情)
- 面向市場,永遠對新技術保持渴望(電腦技術的發展日新月異,做為IT行業的軟體開發人員要不斷的給自己充電,更新自己的技術與時代保持同步,同時還要面向市場,華為總裁任正非說過-“華為的技術革新必須面向市場”,作為程式員同樣要有市場意識,很多人都後悔沒有在android剛出來的時候加以關注學習。那些很早關注android開發技術的很多程式員因此獲得豐厚回報。如今HTML5得到越來越多的瀏覽器廠家支援,你是否已經跟上腳步,開始學習。)
- 保持謙虛,三人行必有我師(喬幫主說他要保持初心,努力學習,我等更應該保持謙虛,IT技術發展日新月異,在你眼中不可能實現的技術,也許別人早已經有思路。保持謙虛就有機會吸取別人身上的長處,古人有云:滿招損,謙受益。一個得道的高人更是說出了”下下人,上上智”的禪語。永遠不要拒絕協助你周圍的人解決難題,解決難題是進步最快途徑。不要放棄任何一次可以提升自己技術與能力的機會。)
- 數學功底與演算法知識(《演算法導論》,《編程珠璣》等書絕對值得讀十遍)
- Java代碼反編譯與代碼保護(Java編譯產生位元組碼,因而可以被輕鬆的逆向工程(反編譯),微軟的C#生產的DLL也一樣可以被輕鬆反編譯。正式由於這個原因產生了許多Java開源的代碼保護工具,而Proguard是其中佼佼者,已經被google整合在android之中用於Java代碼保護,訪問這裡瞭解更多:http://proguard.sourceforge.net/)
- 掌握英語,良好的讀寫能力(外企人員向上晉陞的不二法門)
標記此文,時刻提醒自己:路漫漫其修遠兮,吾將上下而求索。願與君共勉!原帖地址:http://topic.csdn.net/u/20120620/12/f84a3fd1-513f-47ed-959d-c0cdc5d69cb0.html