java教程Java系統程式設計師修煉之道

java妞妞發表於2016-05-18

從2002開始接觸Java學會HelloWorld這麼經典的程式到如今不知不覺已經十年啦,十年中

親耳聽到過不少大牛的演講,見到過專案中的神人在鍵盤上運指如飛的程式設計速度,當時就

被震撼了。當程式設計越來越成體力活,我們還能有自己的思想,還能修煉為Java系統級別的

程式設計師嘛?學習與修煉以下知識與技能,幫你早日達成願望。

 

一:Java語言學習

對執行緒(thread),序列化,反射,網路程式設計,JNI技術,容器(Map,List, Iterator), 類載入器

(ClassLoader),輸入輸出流,垃圾回收機制, 有比較深入的瞭解,最起碼做過專案應用。有

過Java專案的效能優化經驗,最起碼掌握一種效能監視工具的使用,熟悉JVM引數,最起

碼知道可以在JVM啟動時指定不同垃圾回收機制,以及不同垃圾回收機制之間的

差別,熟悉JVM引數優化。

 

二:J2EE方面

還知道有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運用該工具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技術發展日新月異,在你眼中

不可能實現的技術,也許別人早已經有思路。保持謙虛就有機會吸取別人身上的長處,古人

有云:滿招損,謙受益。一個得道的高人更是說出了”下下人,上上智”的禪語。永遠不要拒

絕幫助你周圍的人解決難題,解決難題是進步最快途徑。不要放棄任何一次可以提升自己技

術與能力的機會。

 

九:養成總結的習慣,不斷反思

上學的時候老師常讓寫小結,也沒總結出來所以然,以至於工作以後再也不提這檔子事情,

建議每個專案做完以後對自己都有個小結,總結自己在專案裡面學到了什麼,反問自己能不

能完成在不需要別人幫助的情況下自己完成這樣的系統搭建,是否熟悉與掌握專案中所用到

的技術,即使有些東西不是你負責完成的但是什麼也不能阻擋一顆求知的心,總結要儘量詳

細記錄你遇到那些難題是怎麼一個一個的解決的,下次再遇到你是否可以很快解決或者避免

這樣的問題。有總結才有提高,孔子曰:學而不思則罔,如果我們只是coding到吐血,不

思考,不總結提高,永遠不可能有能有本質提高,秦相李斯有云:“泰山不讓土壤,故能

成其大,河海不擇細流,故能就其深”,點滴積累不斷總結方能量變導致質變。

 

十:數學功底與演算法知識

用任何程式語言開發應用,都離不開核心演算法支援,很多國外的軟體單單從UI上看,恐怕寫

幾年程式的人都可以模仿,但是UI之下的那些真實深淺不一,相信不是你想模仿就可以模

仿的,為什麼我們越來越山寨,因為我們沒有核心競爭力,對於程式設計師來說演算法與數學顯然

是他最重要的核心競爭力之一。《演算法導論》,《程式設計珠璣》等書絕對值得讀十遍。微軟亞洲

研究院視覺計算組負責人在一次演講中說到他們招人的標準是“三好學生– 數學好,程式設計

好,態度好”。可是現實的普遍情況卻是 - 微機原理鬧危機,組合語言不會變,實變函式學

十遍。計算機基礎知識被大家普遍忽視。從今天開始好好學習吧……

 

十一:Java程式碼反編譯與程式碼保護

Java編譯產生位元組碼,因而可以被輕鬆的逆向工程(反編譯),微軟的C#生產的DLL也一樣可

以被輕鬆反編譯。正式由於這個原因產生了許多Java開源的程式碼保護工具,而Proguard是

其中佼佼者,已經被google整合在android之中用於Java程式碼保護,訪問這裡瞭解更多:

十二:努力成為某個行業或者領域骨幹

面對漫長的職業生涯,要想不被淘汰,必須具備一招鮮吃遍天下的能力,選擇自己感興趣的

方向,努力而深入的研究,計算機技術發展到今天已經細分很細,努力研究一種Java開源

框架或者開源HTTP伺服器原始碼或者研究過網路爬蟲原始碼或者WEBKIT核心,不愁沒有人要

你。如果你是非常瞭解金融,企業ERP,證券,保險,移動應用行業的應用開發業務的人,

一樣不用愁工作。這些知識不隨語言而改變,努力做一個有核心競爭力的Java程式設計師。

 

十三:提高語言與書面表達能力,掌握基礎的專案管理知識

文件與語言表達能力是最好的向外界展現自己能力的方式,很多程式設計師程式設計能力很高,表達

能力一般,Linux能夠成功,除了歸功於網路社群的力量之外,也得益於Linux作者本人給各

大基金會寫信,宣傳推廣,試想如果沒有良好的書面語言表達能力,即使Linux系統再優秀,

卻無法被準確表達,失去各大基金會的支援,Linux還會像今天這麼好的局面嘛。所以重視

文件,重視提升溝通與表達能力,才有可能成為Java系統程式設計師。掌握基本的2/8原則,學

會將模組細化分配給不同的人,預見並控制專案風險,把握專案進度,優化流程,合理的時

間管理,瞭解TDD,熟悉敏捷開發模式,常規軟體開發模式。

 

十四:掌握英語,良好的讀寫能力

英語是計算機的母語,掌握好英語對於閱讀英文資料學習新技術大有幫助,我的建議是儘量

讀英文原版書,如果是演算法方面的可能會困難一點,但是其它像設計模式,軟體工程,OO

程式設計思想等儘量讀原版,提高自己的英文水平,多多訪問開發者,code project,程式設計師天堂,

Pc-magazine等英文IT網站。英語絕對是你必須修煉與提高的技能。此外英語好在外資企業

尤其重要,只有外語足夠好才可能在外資企業中突破職業瓶頸,向上發展。

學習有困難不知道該怎麼去做的在做的過程中遇到困難的可以加扣:578024144進行大神的交流同時獲取免費的聽課許可權!!!


相關文章