框架編程教材
⑴ 周立功教授新書《面向AMetal框架與介面的編程(上)》簡介
書本前言
產品的 BOM 成本很低,而毛利又很高,為何很多上市公司的年利潤卻買不起一套房?房子到底被誰買走了,這個問題值得我們反思!
1、大膽的推測
追求代碼復用和跨平台,這是開發者夢寐以求的奮斗目標,但現實很殘酷,幾乎無法成為現實。原因何在?MCU 有 M0、M4、M7、ARM9、A5、A7、A8 內核、DSP......有些項目不需要操作系統,有些項目可能選擇 FreeRTOS 或μC/OS-II 或 sysBIOS,另一些項目可能選擇 linux 或 Windows,因為不同的半導體公司支持的平台不一樣。
基於此,我們不妨做一個大膽的假設。雖然 PCF85063、RX8025T 和 DS1302 來自不同的半導體的公司,但其共性都是 RTC 實時日歷時鍾晶元,即可高度抽象共用相同的驅動介面,其差異性用特殊的驅動介面應對。雖然 FreeRTOS 或μC/OS-II 或 sysBIOS、Linux、Windows 各不相同,但它們都是 OS,多線程、信號量、消息、郵箱、隊列等是其特有的共性,顯然 QT 和 emWin 同樣可以高度抽象為 GUI 框架。也就是說,不管什麼 MCU,也不管是否使用操作系統,只要修改相應的頭文件,即可復用應用代碼,這就是平台的雛形。
2、核心域與非核心域
其實一個軟體系統封裝了若干領域的知識,其中一個領域知識代表了系統的核心競爭力,這個領域被稱為「核心域」,其它領域稱為「非核心域」。雖然更通俗的說法是「業務」和「技術」,但使用「核心域」和「非核心域」更嚴謹。
非核心域就是別人的領域,比如,底層驅動、操作系統和組件,即便你有一些優勢,那也是暫時的,競爭對手也能通過其它渠道獲得。雖然非核心域的改進是必要的,但不充分,還是要在核心域上深入挖掘,讓競爭對手無法輕易從第三方獲得。因為在核心域上深入挖掘,達到基於核心域的復用,這是獲得和保持競爭力的根本手段。
要達到基於核心域的復用,有必要將核心域和非核心域分開考慮。因為過早地將各個領域的知識混雜,會增加不必要的負擔,從而導致開發人員騰不出腦力思考核心域中更深刻的問題。由於待解決的問題的規模一旦變大,而人腦的容量和運算能力有限,因此必須分而治之,因為核心域與非核心域的知識都是獨立的。
3、思維差異決定收益
Yourdon 和 Constantine 在《結構化設計》一書中,將經濟學作為軟體設計的底層驅動力,軟體設計應該致力於降低整體成本。人們發現軟體的維護成本遠遠高於它的初始成本,因為理解現有代碼需要花費時間,而且容易出錯。同時改動之後,還要進行測試和部署。Apple之所以成為全球最賺錢的手機公司,關鍵在於產品的性能超越了用戶的預期,且因為大量可重用的核心領域知識,綜合成本做到了極致。
更多的時候,程序員不是在編碼,而是在閱讀程序。由於閱讀程序需要從細節和概念上理解,因此修改程序的投入會遠遠大於最初編程的投入。基於這樣的共識,讓我們操心的一系列事情,需要不斷地思考和總結使之可以重用,這就是方法論的源起。
通過財務數據分析,由於早期決策失誤和缺乏科學的軟體工程方法,我們開發了一些周期長、技術難度大且回報率極低的產品,不僅軟體難以重用,而且擴展和維護難度很大,從而導致開發成本居高不下。
顯而易見,從軟體開發來看,軟體工程與計算機科學是完全不同的兩個領域的知識。其主要區別在於人,因為軟體開發是以人為中心的過程。如果考慮人的因素,軟體工程更接近經濟學,而非計算機科學。如果不改變思維方式,則很難開發出既好賣且成本低的產品。
雖然大多數開發者都很勤奮,但其奮斗目標不是企業和個人收益最大化,而是以學習基礎技術為樂趣,極少與市場人員和用戶交流,不注重提升個人挖掘用戶需求的創造力,而是將精力用錯了地方,這是很多人一輩子也沒有認識到的深刻問題。只是表面地嘆息自己懷才不遇,甚至將自己失敗的責任推給他人。由此可見,人與人之間的差別不在於知識和經驗,而是思維方面的差異決定了每個人的未來。
4、解決之道
代碼的優劣不僅直接決定了軟體的質量,還將直接影響軟體成本。軟體成本是由開發成本和維護成本組成的,而維護成本卻遠高於開發成本,蠻力開發的現象比比皆是,大量來之不易的資金被無聲無息地吞沒,整個社會的資源浪費嚴重。
為何不將復雜的技術高度抽象呢?如果實現就能做到讓專業的人做專業的事,AWorks就是在這樣的背景下誕生的。由於其中融入了更多的軟體工程技術方法,因此就能做到將程序員徹底從非核心域中釋放出來聚焦於核心競爭力。
無論你選擇什麼晶元和任何 OS,比如,Linux 和其它任何 RTOS,只要 AWorks 支持它,就可以在目標板上實現跨平台運行。因為無論什麼 OS,它只是 AWorks 的一個組件,針對不同的 OS,AWorks 都會提供相應的適配器,那麼所有的組件都可以根據需要更換。
由於 AWorks 制定了統一的介面規范,並對各種微處理器內置的功能部件與外圍器件進行了高度的抽象,因此無論你選用的是 ARM 還是 DSP,通過「按需定製」的外設驅動軟體和相關組件,以高度復用的軟體設計原則和只針對介面編程的思想為前提,則應用軟體均可實現「一次編程、終生使用和跨平台」。基於此,進一步擴大了 AWorks 使用范圍,又發展出了代碼更小的 AMetal,AWorks 能給你帶來的最大價值就是不需要重新發明輪子。
5、叢書簡介
《面向AMetal框架與介面的編程(上)》是《嵌入式軟體工程方法與實踐叢書》中的第一套第二本書,叢書共含四套:
第一套
《程序設計與數據結構》
《面向 AMetal 框架與介面的編程》(上)
《面向對象的分析與設計》
第二套
《面向 AWorks 框架與介面的編程》(適用於各種 MCU)
《面向對象的分析與設計》
第三套
《面向 AWorks 框架與介面的編程——基於 Linux》(適用於 ARM9 以上內核)
《面向對象的分析與設計》
第四套
《C++現代程序設計》
《面向 AWorks 框架與介面的編程——基於 C++》(適用於 ARM9 以上內核)
《面向對象的分析與設計》
還在寫作中的內容包括測試與持續集成,書籍均由周立功團隊從理論知識到實踐應用的精華匯編,將來會陸續與大家見面,共同學習與探討。
⑵ 來大神 幫我介紹兩本關於(java三大框架)的書籍
先學習j2se 要學習j2ee就要先學習j2se,剛開始學習j2se先建議不要使用IDE,然後漸漸的過渡到使用IDE開發,畢竟用它方便嘛。學習j2se推薦兩本書,《java2核心技術一二卷》,《java編程思想》,《java模式》。其中《java編程思想》要研讀,精讀。這一段時間是基本功學習,時間會很長,也可能很短,這要看學習者自身水平而定。 學習j2eeAPI和學習伺服器應該是一個迭代的過程。 先學習jsp和servlet編程,這方面的書很多,我建立看oreilly公司的兩本《jsp設計》和《java servlet編程》,oreilly出的書總是那本優秀,不得不佩服。 學習jdbc資料庫編程,j2ee項目大多都是MIS系統,訪問資料庫是核心。這本應屬於j2se學習中,這里拿出來強調一下。 學習jndi api,它和學習ejb可以結合起來。 學習ejb api,推薦書《精通ejb》 經過上面的這些的學習,大概可以對付一般的應用了。 有人說跟著sun公司的《j2ee tutorial》一路學下來,當然也可以
⑶ 編程書籍經典的有哪些
先從VB開始,VB是比較好的入門語言,可視化的,比較簡單,是非常好的入門語言。書籍最少應該准備兩本,不可能一本書籍會包含VB的所有內容,在看書的時候,可以交叉的看,一本書籍中沒有講到的內容可以在另一本中看到,這樣對學習是很有好處的,也能保證所學知識的完整性。學編程是一個很漫長的過程,不要著急,要理論與實踐想結合,常式書籍也是很重要的,看源代碼對學習也是很有幫助的,等你學完這門VB語言之後,學習別的語言是非常簡單,可以嘗試C語言,按照C——C++——VC的順序學習,有助於知識的連貫性,我也希望你能學好的。 學習C語言,譚浩強的《C程序設計》是一部非常好的C語言書籍,學習程序設計是一個非常漫長的過程,不要著急,一本書多看兩遍三遍,學會交叉學習法,在學習C的過程中,可以看看數據結構,編譯原理,操作系統等書籍,對編成都是很有幫助的。最開始學習的時候,先不要編一些比較大的程序,多編一些小程序,比如數組運算,字元組合等等,指針是C語言的精華,是比較復雜的部分。如果有一天你能熟練駕馭指針的操作了,我相信你,你一定能學習好C語言的。 我是2001年接觸編程的,剛開始只是大概了解一下,並沒有進行比較深入的學習,我是從VB開始入門的,學了1年多,然後轉入C語言,按照C——C++——VC的順序學習,C學了兩年,現在開始學習C++,C++的學習是很有難度的,類,標准庫,多態,繼承等等比較抽象難道懂的概念,雖然他秉承了C語言的風格,但是有很多很多是C語言不具備的,要多看書,上機實踐也是必不可少的。《C++編程思想》,《C++標准庫》,這些書都非常好,內容也很全面,常式書籍也是必不可少的,多看源代碼對編程是很有幫助的,也會少走很多彎路。總之,C++的學習是一個比較漫長的過程,大概需要兩年的時間,這只是底限,如果想學通,學精,還需要更多的時間。 我向你推薦一些C++經典書籍: c++程序設計教程 c++編程思想 c++大學教程 c++程序設計語言 數據結構演算法與應用c++語言描述 c++標准模板庫------自修教程與參考手冊 泛型編程與STL 深度探索c++對象模型 設計模式---可復用面向對象軟體的基礎 重構---改善既有代碼的設計 Essential c++ Effective c++ More Effctive c++ C++ primer 前五本應該屬於入門書籍,後面的屬於學習難度比較大的,想提高C++的編程能力,看看這些書籍有好處。建議你把編程思想這本書多看看。多做練習題,對提高編程水平的幫助是很大的。 其實語言是相通的,一門語言學會了,學習其他語言就比較容易了。 業界有這樣一種說法,因為JAVA這門語言包含了C++的一些特性,掌握了C++,就等於掌握了JAVA的80%, 在掌握了C++之後(我說的掌握指的是,可以熟練用C++編程序了,並沒有要求你完全掌握C++的所有部分,沒有人能達到這一點,因為C++太龐大了,如果能堅持不懈的學習C++兩年到三年的時間了,你就可以學習其他的語言了)可以試著學習一些其他的語言,如JAVA,VC++等等比較復雜的語言. 這時候可以說你已經對程序設計語言有個大體的認識了,可以明確自己學習的方向,根據自己的學習情況而定,是學習一些自己比較感興趣的語言啊(從興趣出發),還是為了找工作啊,開始進行更深入的學習.比如學習windows下的框架編程和.net編程等等比較復雜的語言. 如果是為了找工作的話我建議你學好C,C++,JAVA三門語言. 在我國目前的軟體開發行業中,北方C,C++,JAVA的需求量是非常大的.南方以VB為主. 關於英語對學習程序設計有沒有幫助的文章這個話題已經有很多人議論過了,我個人建議把計算機專業術語弄明白了就可以了,你可以買一本計算機英語教程看一看,對程序設計是有幫助的。其實程序設計當中的英文都是一些非常簡單的,如for,else,while.......並沒有太高深的,而且學習程序設計不像學習網路,如CCNA這類認證需要掌握大量的英文。但是在學習程序設計的時候身邊有兩個工具應該足夠了-----------金山詞霸,計算機詞典。相信你一定能學好程序設計的。 學習數學和學習程序設計有一個共同點------鍛煉邏輯思維能力。在程序設計的學習中涉及到數學的地方並不多,所以也沒有必要去認真的學習數學也可以學好程序設計的。 如果你是一個肯吃苦,肯用心學習程序設計的人,具有堅持不懈的精神的人,我相信,只要你認認真真去學,即使你的英語數學水平再差,你也一定能夠學好程序設計的。 我是一名大三的學生,我也正在學習C++這門語言,一年多的時間,學習的感覺真的很累的,希望能和你成為朋友! 好了,說了這么多,可以參考一下,為自己做個學習計劃,要對自己有信心,最後祝你在學習編程的道路上走的更好更遠,祝你學有所成!!
⑷ 有關計算機編程,網路基礎知識的書籍
建議你從C語言開始學,學好了它以後學其他語言會很容易上手
推薦你先看譚浩強的《C語言程序設計》先,這是一部非常好的C語言書籍,慢慢來學習程序設計是一個非常漫長的過程,不要著急,一本書多看兩遍三遍,學會交叉學習法,在學習C的過程中,可以看看數據結構,編譯原理,操作系統等書籍,對編成都是很有幫助的。最開始學習的時候,先不要編一些比較大的程序,多編一些小程序,比如數組運算,字元組合等等,指針是C語言的精華,是比較復雜的部分。如果指針這部分都可以熟練的應用,那麼C語言里你還有什麼不明白的嗎,我相信你,你一定能學習好C語言的。
可以按照C——C++——JAVA的順序學習,C++的學習是很有難度的,類,標准庫,多態,繼承等等比較抽象難道懂的概念,雖然他秉承了C語言的風格,但是有很多很多是C語言不具備的,要多看書,上機實踐也是必不可少的。《C++編程思想》,《C++標准庫》,這些書都非常好,內容也很全面,常式書籍也是必不可少的,多看源代碼對編程是很有幫助的,也會少走很多彎路。總之,C++的學習是一個比較漫長的過程,大概需要兩年的時間,這只是底限,如果想學通,學精,還需要更多的時間。
我向你推薦一些C++經典書籍:
c++程序設計教程
c++編程思想
c++大學教程
c++程序設計語言
數據結構演算法與應用c++語言描述
c++標准模板庫------自修教程與參考手冊
泛型編程與STL
深度探索c++對象模型
設計模式---可復用面向對象軟體的基礎
重構---改善既有代碼的設計
Essential c++
Effective c++
More Effctive c++
C++ primer
前五本應該屬於入門書籍,後面的屬於學習難度比較大的,想提高C++的編程能力,看看這些書籍有好處。建議你把編程思想這本書多看看。多做練習題,對提高編程水平的幫助是很大的。
其實語言是相通的,一門語言學會了,學習其他語言就比較容易了。
業界有這樣一種說法,因為JAVA這門語言包含了C++的一些特性,掌握了C++,就等於掌握了JAVA的80%,
在掌握了C++之後(我說的掌握指的是,可以熟練用C++編程序了,並沒有要求你完全掌握C++的所有部分,沒有人能達到這一點,因為C++太龐大了,如果能堅持不懈的學習C++兩年到三年的時間了,你就可以學習其他的語言了)可以試著學習一些其他的語言,如JAVA,VC++等等比較復雜的語言.
這時候可以說你已經對程序設計語言有個大體的認識了,可以明確自己學習的方向,根據自己的學習情況而定,是學習一些自己比較感興趣的語言啊(從興趣出發),還是為了找工作啊,開始進行更深入的學習.比如學習windows下的框架編程和.net編程等等比較復雜的語言.
如果是為了找工作的話你一定學好C,C++,JAVA三門語言.
在我國目前的軟體開發行業中,C,C++,JAVA的需求量是非常大的.
好了,說了這么多,可以參考一下,為自己做個學習計劃,要對自己有信心,最後祝你在學習編程的道路上走的更好更遠,祝你學有所成!!
⑸ 計算機軟體開發編程必備知識買些什麼書比較好
希望對你有幫助!
一、為何要學編程?
每個人的動機不一樣。大致有:
1、為了找個好工作;或為了有更好的機會和更好的發展。
2、看到別人超厲害,所以也想學。
3、實際工作中很多場合需要。
4、從小就立志做個程序員,做軟體工程師。
5、振興中國的軟體事業。
。。。。。。
================================================
二、如何學編程?
1、多看好書。
差書誤人子弟,不但浪費時間和精力,而且打擊人的信心,差書使人很久都不會,讓會讓人懷疑自已的學習能力。
現在的書很多,但好書很少,特別是被大家公認很有價值的好書,更是少之又少。歷經多年時間考驗和市場風雨不殘酷洗禮而僅存的巨著,更是極其稀少。中國歷史上文學小說類書本多如牛毛,但僅存的巨著,也只不過<<紅樓夢>>等四本名著而已,編程方面也是如此。
2、多動手。
這一點很重要。而且特別重要。「紙上得來終覺淺,絕知此事要躬行。」陸游的千古名句說的就是這個道理,並且同樣適合於編程方面。
================================================
三、用什麼語言最好?
這主要取決於應用領域,每種語言都有自已的長處和不足。
1、匯編語言和C語言在單片機及工控領域用較多。另外C語言也是一種通用語言,是學C++/c#的起點。
2、C++系統編程等多個方面,最常用的編譯器是VC。
3、C#/java網路編程方面新興的。
4、VB通用。
5、還有Delphi等。。。。。。
個人建議:從未編過程的,就從學vb開始。有基礎的可直接學c++/VC。
===================================================
四、有什麼好書?
幾年前,台灣著名技術作家侯捷先生曾經寫過一篇影響很大的書評文章,叫做《MFC四大天王》。文章的意思是說在MFC的浩瀚書海中,只要認真研讀和學習其中四本,就可以「五嶽歸來不看山」。侯先生雖以MFC為例,但是這個道理卻同樣適合於MFC之外的很多具體技術領域,這不能不說是一個有趣的統計現象。
通常在某一個具體細分的技術領域,會自然而然地出現3-5本頂級著作,它們彼此互相配合,形成一個完整的體系。對於學習者來說,只需要認真研讀這幾本書,就足以升堂入室。我樂於將這種現稱為「四書五經現象」。對於讀者來說,如果能夠找到該領域中的「四書五經」,則無論在時間上還是金錢上都是最經濟的選擇。好書幾本,勝過爛書幾捆,這個體會想必大家都有。在此,幫助大家遴選各個技術領域里的「四書五經」。
編程的書可謂汗牛充棟,其中經典也是不泛其數,但絕大多數的過來人,都一致認為,要想很快的入門並盡快的投入到編程實踐中,只要其中的四到五本也就夠了,即只看經典中的經典,聖經級的書就可以了。
所謂活到老學到老,程序員是個終身學習的職業,要不斷的看書,直到放棄編程的那一天。所以,您要讀的好書也絕非以下推薦的這些書喲,呵呵。
一句話,由於我們的時間、精力、金錢都是有限的,如何以最小的代價換得最大的收獲。
================================================================
五、經典好書分類熱銷榜
1、java
java編程語言(第三版)---java四大名著----James Gosling(java之父)
java編程思想(第2版)----java四大名著----Bruce Eckel
java編程思想(第3版)----java四大名著----------------Bruce Eckel
java 2核心技術 卷I:基礎知識(原書第7版)---java四大名著-----Cay Horstmann
java 2核心技術 卷II:高級特性(原書第7版)----java四大名著-----Cay Horstmann
Effective java中文版------java四大名著--------Joshua Bloch
精通Struts:基於MVC的java Web設計與開發---孫衛琴
精通Hibernate:java對象持久化技術詳解---孫衛琴
Tomcat與java Web開發技術詳解------------孫衛琴
java與模式------------------------------閻宏
2、c#
C#程序設計-------Charles Petzold「windows編程泰山北斗」---C#語言「倚天屠龍雙劍」
C# Primer中文版--------Stanley B.Lippman---C#語言「倚天屠龍雙劍」
.NET框架程序設計(修訂版)--------Jeffrey Richter「windows編程泰山北斗」---.NET平台四大天王
C# Windows程序設計----------Charles Petzold「windows編程泰山北斗」------.NET平台四大天王
.NET程序設計技術內幕-------------Jeff Prosise---.NET平台四大天王
.NET本質論--第1卷:公共語言運行庫(中文版)--------Chris Sells---.NET平台四大天王
3、C++
C++程序設計語言(特別版)---c++八大金剛----Bjarne Stroustrup「C++之父」
C++ Primer (第3版)中文版----c++八大金剛---Stanley B.Lippman
C++ Primer (第4版)中文版----c++八大金剛---Stanley B.Lippman
C++標准程序庫—自修教程與參考手冊--c++八大金剛--Nicolai M.Josuttis
C++語言的設計和演化-----c++八大金剛----Bjarne Stroustrup「C++之父」
深度探索C++對象模型---c++八大金剛----Stanley B.Lippman
Essential C++中文版---c++八大金剛---Stanley B.Lippman
Effective C++中文版 2nd Edition-----c++八大金剛------Scott Meyers
More Effective C++中文版----c++八大金剛------Scott Meyers
C++編程思想(第2版) 第1卷:標准C++導引--------Bruce Eckel
C++編程思想(第2版)第2卷:實用編程技術 --------Bruce Eckel
C++程序設計--------------------------譚浩強
C++ 程序設計教程(第2版)--------------錢能
C++ Primer Plus(第五版)中文版---Stephen Prata
廣博如四庫全書The c++ programming language、c++ Primer
深奧如山重水復Inside the c++ object model
程序庫大全The c++ standard libray
工程經驗之積累Effective c++、More Effective c++、Exceptional c++
c++八大金剛:
1、Essentital c++---lippman---C++之父,旁枝暫略,主攻核心,輕薄短小,初學者
2、The c++ programming language----C++之父,技術權威,用詞深峻,思想深遠,c++網路全書代表,聖經。
3、c++ Primer----lippman---縱橫書市十數年,c++最佳教本,c++網路全書代表。
4、Inside the c++ object model-----lippman----揭示c++底層,非常好,非常難。
5、Effective c++-----通過50個編程實例,展示專家經驗,行文有趣,深處淺出。
6、More Effective c++----通過35個編程實例,展示專家經驗,行文有趣,深處淺出。
7、The c++ standard libray---c++標准庫的網路全書。
8、設計模式:可復用面向對象軟體的基礎------good!
4、c
C程序設計語言(第2版·新版)---C語言「倚天屠龍雙劍」---Brian W.Kernighan「C語言之父」
C Primer Plus中文版(第五版)--------C語言「倚天屠龍雙劍」---Stephen Prata
C程序設計(第三版)---------------------------譚浩強
C語言大全(第四版)---------------------------HERBERT SCHILDT
C語言介面與實現:創建可重用軟體的技術-------------DAVID R.HANSON
C語言參考手冊(原書第5版)--------------------------Samuel P.Harbison
C程序設計教程---------------------------------H.M.Deitel/P.J.Deitel
C陷阱與缺陷-----------------------------------Andrew Koenig
5、VB
Visual Basic .NET技術內幕-----VB編程三劍客-----------Francesco Balena「vb首席大師」
Windows程序設計-Visual Basic.NET語言描述--VB編程三劍客-----Charles Petzold「windows編程泰山北斗」---
.NET框架程序設計:Visual Basic.NET語言描述--VB編程三劍客--Jeffrey Richter「windows編程泰山北斗」---
Visual Basic 6編程技術大全------------------------Francesco Balena「vb首席大師」
Visual Basic.NET 從入門到精通-------------------------Petroutsos,E.
高級VISUAL BASIC編程-----------------------------------MATTHEW CURLAND
6、Delphi
Inside VCL(深入核心——VCL架構剖析)----------李維
Delphi 7高效資料庫程序設計--------------李維
面向對象開發實踐之路(Delphi版)----------李維
7、VC
Windows 程序設計(第5版)-----Charles Petzold「windows編程泰山北斗」---
Windows核心編程----------Jeffrey Richter「windows編程泰山北斗」---
Windows高級編程指南---------Jeffrey Richter「windows編程泰山北斗」---
深入淺出MFC(第二版)-----「MFC四大天王」-------侯捷
MFC Windows程序設計(第2版)---MFC四大天王」---------Jeff Prosise
Visual C++ 技術內幕(第4版)--MFC四大天王」--------David Kruglinski
深入解析MFC-------------MFC四大天王」-----------George Shepherd
Visual C++.NET 技術內幕(第6版)-MFC四大天王」------------David Kruglinski
8、vf
Visual Foxpro程序設計參考手冊-------------------張洪舉
專家門診——Visual FoxPro開發答疑160問-------------------張洪舉
Visual FoxPro 6.0/9.0解決方案與範例大全-------------------張洪舉
Visual FoxPro軟體開發模式與應用案例-------------------張洪舉
9、黑客
應用密碼學(協議演算法與C源程序-----------Bruce Schneier
網路信息安全的真相-----------Bruce Schneier
黑客大曝光:網路安全機密與解決方案(第5版)--------STUART MCCLURE
軟體加密技術內幕------------看雪學院
加密與解密——軟體保護技術與完全解決方案------------看雪學院
加密與解密(第二版)--------段鋼
10、匯編
Intel微處理器結構、編程與介面(第六版)---------Barry B. Brey
80*86、奔騰機匯編語言程序設計---------Barry B. Brey
Windows環境下32位匯編語言程序設計(第2版)-----------羅雲彬
IBM-PC匯編語言程序設計(第2版) 本書是國內優秀教材--------沈美明 溫冬嬋
IBM PC匯編語言程序設計(第五版) 這本書籍是國外優秀教材-------PETER ABEL著,沈美明 溫冬蟬譯
11、驅動開發
Windows WDM設備驅動程序開發指南------------------------------------ Chris Cant
Windows 2000/XP WDM設備驅動程序開發(第2版)--------------------------武安河
WINDOWS 2000/XP WDM設備驅動程序開發-------------------------------- 武安河
12、網路
計算機網路第四版中文版----網路編程三劍客--------------Andrew S.Tanenbaum
TCP/IP詳解3卷本--------------------Richard Stevens----網路編程三劍客
UNIX網路編程2卷本--------------------Richard Stevens----網路編程三劍客
用TCP/IP進行網際互聯-----------Douglas E. Comer
高級TCP/IP編程-------------------Jon C. Snader
C++網路編程-----------------------Douglas Schmidt
UNIX環境高級編程(第2版)--------------------Richard Stevens
13、演算法
計算機程序設計藝術-------Donald.E.Knuth----------演算法「倚天屠龍」雙劍
演算法導論-----------------Thomas H. Cormen--------演算法「倚天屠龍」雙劍
離散數學及其應用----------Kenneth H.Rosen
具體數學—計算機科學基礎--------Donald.E.Knuth
14、圖形編程
Windows 圖形編程----------------FENG YUAN --圖形編程界的Charles Petzold之書
15、數據結構
數據結構 C++語言描述》58.00(Data Structures C++) William Ford,William Topp 劉衛東 沈官林
數據結構演算法與應用-C++語言描述》49.00Sartej Sahni 汪詩林 孫曉東等機械工業出版社
16、軟體工程
設計模式--可復用面向對象軟體的基礎
重構—改善既有代碼的設計
17、操作系統
深入理解計算機系統(修訂版)-------RANDAL E.BRYANT
18、Unix
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版
UNIX 編程藝術
UNIX環境高級編程(英文影印第2版-----UNIX編程「聖經
UNIX環境高級編程(英文影印版)(第2版)
UNIX環境高級編程(第2版)
UNIX環境高級編程(第2版)---UNIX編程「聖經
UNIX網路編程 第1卷:套介面API(第3版)
UNIX網路編程卷2:進程間通信(第2版)(英文影印版)
UNIX 網路編程(第二版)第2卷:進程間通信
UNIX編程環境
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版
UNIX系統編程
UNIX環境高級編程
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版)
UNIX網路編程 第1卷:套介面API(第3版)
UNIX 網路編程(第二版)第2卷:進程間通信
UNIX網路編程卷2:進程間通信(第2版)(英文影印版)
UNIX 網路編程(第2版)第1卷:套介面API和X/Open 傳輸介面API
UNIX網路編程(卷1):連網的APLS:套接字與XTI(第二版)(英文影印版)
UNIX環境高級編程
Unix技術手冊
19、Linux
Linux內核設計與實現
Linux內核完全注釋
LINUX內核分析及編程
GNU/Linux 編程指南(第二版)
Linux設備驅動程序(第三版)
嵌入式設計及Linux驅動開發指南——基於ARM 9處理器
Linux設備驅動程序 第三版(英文影印版)
Linux內核設計與實現(第2版)
Linux內核設計與實現(英文影印版)(第2版)
linux技術手冊
20、游戲編程
Windows游戲編程大師技巧(第二版
游戲之旅--我的編程感悟
OpenGL超級寶典:第三版
OpenGL編程指南(第四版)
java 游戲高級編程
J2ME手機游戲編程入門
游戲之旅——我的編程感悟
游戲開發中的人工智慧(英文影印版)
3D游戲:卷2 動畫與高級實時渲染技術
面向對象的游戲開發
java 游戲高級編程
3D游戲編程大師技巧
游戲編程精粹
面向對象的游戲開發
3D游戲 卷1:實時渲染與軟體技術
3D游戲:卷2 動畫與高級實時渲染技…
J2ME手機游戲編程入門
Direct3D游戲編程入門教程(第二版…
21、移動開發
Windows Mobile手機應用開發
SYMBIAN OS C++手機應用開發
Windows Mobile手機應用開發--傅曦 齊宇 徐駿
SYMBIAN OS C++手機應用開發 (第2卷)------------------RICHARD HARRISON著,周良忠 王伯欣譯
SYMBIAN OS C++手機應用開發---------------RICHARD HARRISON著,周良忠譯
Windows CE.net內核定製及應用程序開發---------周毓林 寧楊 陸貴強 付林林
嵌入式系統Windows CE 開發技巧與實例--傅曦
Palm OS編程實踐---絕版
22、單片機
單片機輕松入門----------------------------------周堅(平凡老師)
單片機典型模塊設計實例導航-----------------------求是科技
例說8051----------------------------------------張義和 陳敵北
KEIL CX51 V7.0單片機高級語言編程與ΜVISION2應用實踐-----徐愛鈞
單片機應用程序設計技術(修訂版)--------------------周航慈
8051單片機實踐與應用-------------------------------吳金戎
MCS-51系列單片機實用介面技術---------------------李華
23、串並口通訊
Visual C++/Turbo C串口通信編程實踐------------------龔建偉
VISUAL BASIC與RS-232串列通信控制(最新版)----------范逸之
24、電子
無線電識圖與電路故障分析輕松入門(第二版) -------------------胡斌
無線電元器件檢測與修理技術輕松入門(第二版) -------------------胡斌
圖表細說電子技術識圖-------------------胡斌
圖表細說電子元器件-------------------胡斌
圖表細說元器件及實用電路-------------------胡斌
================================================================
六、怎樣成為一名程序員
通過以下4個階段的訓練, 沒有任何編程基礎人就可以成為一名普通的程序員。
第一階段:掌握一種編程語言
學習內容:學習任意一種主流的編程語言。例如C++語言。
學習目標:熟練掌握一種語言的語法和基本的編程技巧。
學習時間:3個月左右
注意事項:編程語言和編程工具是兩回事情,編程語言是指C++、Basic、Object Pascal等程序設計語言,它們是像漢語、英語一樣的抽象的語法規則,編程工具是指Visual C++ 6.0、Visual Basic 6.0、Delphi 7.0等包括了源代碼編輯器、程序編譯器在內的集成化、可視化的軟體開發工具。C++源程序可以在Visual C++ 6.0里編寫,也可以在記事本里編寫,而同一個C++源程序可以用Visual C++ 6.0編譯、執行,也可以用C++ Builder 5.0 編譯、執行,所以: C++ 不等於 Visual C++ 6.0
第二階段:掌握一種編程工具
學習內容:學習任意一種主流的編程工具。注意編程工具要和第一階段學習的編程語言一致,例如你學習的編程語言是C++,那麼編程工具要選Visual C++ 6.0或者C++ Builder 5.0。
學習目標:熟練掌握這種編程工具基本用法,例如:菜單、組件、程序跟蹤調試、編寫Windows程序等。
學習時間:3個月左右
注意事項:這個階段側重編程工具的使用,同時進一步熟習編程語言,最後達到能熟練編寫各種基本的Windows程序。
第三階段:掌握「演算法與數據結構」這門課程
學習內容:演算法與數據結構,推薦許卓群的《數據結構》,高等教育出版社出版。
學習目標:熟練掌握各種常用的演算法與數據結構
學習時間:4個月左右
注意事項:這是一門不可或缺的軟體開發課程,曾經有一本經典計算機專業書籍叫做《數據結構+演算法=程序》,這說明了數據結構和演算法的重要性。它能幫我們建立良好的程序分析與設計能力。
第四階段:實現一個模擬的小型軟體項目
學習內容:軟體項目的開發過程
學習目標:掌握軟體項目的基本開發過程和方法
學習時間:4個月左右
注意事項:自己完成一個模擬的小型軟體項目,強烈推薦做一個MIS(管理信息系統)軟體,參考用書推薦「中小型信息管理系統開發實例系列叢書」,人民郵電出版社,它的例子詳實有效,以它為基礎再加以擴展,就可以做出實用的MIS軟體來。此叢書包括多種開發工具,大家可以選擇適合自己的:《VISUAL FOXPRO6.0 資料庫系統開發實例導航》 《java資料庫系統開發實例導航》 《VISUAL BASIC資料庫系統開發實例導航》《VISUAL C++6.0資料庫系統開發實例導航》 《ASP.NET資料庫管理系統開發實例導航》 《DELPHI資料庫系統開發實例導航》《POWERBUILDER 8.0資料庫系統開發實例導航》。
最後將完成的模擬軟體刻成光碟,作為自己的作品去面試,以此踏上自己光輝的職業程序員之路!
⑹ c#開發有什麼好書推薦,本人有一定基礎,框架類的書籍!網路編程等。最好有框架開發例子!
既然有基礎,建議你買一本實例書。但是項目一定不要太小。把整個項目做一遍所有的東西就都明白了。光看理論不實踐,看再多的書也沒用,坐在電腦前什麼都寫不出來。如果你堅定C#這條路。那建議你買一本MVC模式的實例書和一本三層的實例書。這樣就足夠了。當然前提是。你對基本語法,定義不同類型的變數。不同類型循環和常用函數、資料庫都要有一定了解。
⑺ 學編程推薦一些書籍,標明作者
ava編程語言(第三版)---Java四大名著----James Gosling(Java之父)
Java編程思想(第2版)----Java四大名著----Bruce Eckel
Java編程思想(第3版)----Java四大名著----------------Bruce Eckel
C#程序設計-------Charles Petzold「windows編程泰山北斗」---C#語言「倚天屠龍雙劍」
C# Primer中文版--------Stanley B.Lippman---C#語言「倚天屠龍雙劍」
.NET框架程序設計(修訂版)--------Jeffrey Richter「windows編程泰山北斗」---.NET平台四大天王
C++程序設計語言(特別版)---c++八大金剛----Bjarne Stroustrup「C++之父」
C++ Primer (第3版)中文版----c++八大金剛---Stanley B.Lippman
C++ Primer (第4版)中文版----c++八大金剛---Stanley B.Lippman
⑻ 學習Java框架有什麼好的書籍推薦一下!
THINK IN JAVA讀熟了么?不推薦直接讀框架,框架的東西,其實就是基本的東西的應用。把基礎弄好了,其他也就好了
當然,硬要看:
java web方面的可以看一下《王者歸來》裡面從Servlet一直介紹到了struts,hibernate,Spring都有,extjs方面的可以看一下《深入淺出Extjs》
⑼ java編程經典書籍有哪些
以下詳細介紹了如何學習Java,如果樓主有耐心的話,建議仔細看一下~
學習一門新的知識,不可能指望只看一本,或者兩本書就能夠完全掌握。需要有一個循序漸進的閱讀過程。我推薦Oreilly出版的Java系列書籍。
在這里我只想補充一點看法,很多人學習Java是從《Thinking in Java》這本書入手的,但是我認為這本書是不適合初學者的。我認為正確的使用這本書的方法應該是作為輔助的讀物。《Thinking in Java》並不是在完整的介紹Java的整個體系,而是一種跳躍式的寫作方法,是一種類似tips的方法來對Java很多知識點進行了深入的分析和解釋。
對於初學者來說,最好是找一本Java入門的書籍,但是比較完整的循序的介紹Java的語法,面向對象的特性,核心類庫等等,在看這本書的同時,可以同步來看《Thinking in Java》,來加深對Java的理解和原理的運用,同時又可以完整的了解Java的整個體系。
對於Java的入門書籍,蔡學鏞推薦的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(針對C++背景)》,我並沒有看過這兩本書。其實我覺得電子工業出版社的《Java 2編程詳解》或者《Java 2從入門到精通》就很不錯。
在所有的Java書籍當中,其實最最有用的,並不是O'reilly的 Java Serials,真正最最有用處是JDK的Documentation!幾乎你想獲得的所有的知識在Documentation裡面全部都有,其中最主要的部分當然是Java基礎類庫的API文檔,是按照package來組織的,對於每一個class都有詳細的解釋,它的繼承關系,是否實現了某個介面,通常用在哪些場合,還可以查到它所有的public的屬性和方法,每個屬性的解釋,意義,每個方法的用途,調用的參數,參數的意義,返回值的類型,以及方法可能拋出的異常等等。可以這樣來說,所有關於Java編程方面的書籍其實都不過是在用比較通俗易懂的語言,和良好的組織方式來介紹Documentation裡面的某個package裡麵包含的一些類的用法而已。所以萬變不離其宗,如果你有足夠的能力來直接通過Documentation來學習Java的類庫,那麼基本上就不需要看其他的書籍了。除此之外,Documentation也是編程必備的手冊,我的桌面上有三個Documentation的快捷方式,分別是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了這個三個Documentation,什麼其他的書籍都不需要了。
對於Java Web 編程來說,最核心的是要熟悉和掌握HTTP協議,這個就和Java無關了,在熟悉HTTP協議之後,就需要熟悉Java的實現HTTP協議的類庫,也就是Servlet API,所以最重要的東西就是Servlet API。當然對於初學者而言,直接通過Servlet API來學習Web編程有很大的難度,我推薦O'reilly的《Java Server Pages 》這本書來學習Web 編程。
EJB的書籍當中,《Enterprise JavaBeans, 2nd Edition》是一本很不錯的書, EJB的學習門檻是比較高,入門很難,但是這本書完全降低了學習的難度,特別重要的一點是,EJB的學習需要結合一種App Server的具體實現,所以在學習EJB的同時,必須同步的學習某種App Server,而這本書相關的出了三本書,分別是Weblogic6.1,Websphere4.0和JBoss3.0上面部署書中例子的實做。真是既有理論,又有實踐。在學習EJB的同時,可以邊看邊做,EJB的學習會變得很輕松。
但是這本書也有一個問題,就是版本比較舊,主要講EJB1.1規范和部分EJB2.0的規范。而Ed Roman寫的《Mastering EJB 2.0》這本書完全是根據EJB2.0規范寫的,深入淺出,覆蓋了EJB編程的各個方面,並且還有很多編程經驗tips,也是學習EJB非常推薦的書籍之一。
如果是結合Weblogic來學習J2EE的話,《J2EE應用與BEA Weblogic Server》絕對是首選讀物,雖然是講述的Weblogic6.0,仍然值得購買,這本書是BEA官方推薦的教材,作者也是BEA公司的工程師。現在中文版已經隨處可見了。這本書結合Weblogic介紹了J2EE各個方面的技術在Weblogic平台上的開發和部署,實踐指導意義非常強。
在掌握了Java平台基礎知識和J2EE方面的知識以後,更進一步的是學習如何運用OO的方法進行軟體的設計,那麼就一定要學習「設計模式」。Sun公司出版了一本《J2EE核心模式》,是每個開發Java企業平台軟體的架構師必備的書籍。這本書全面的介紹了J2EE體系架構的各種設計模式,是設計師的必讀書籍。
Java Learning Path(三)過程篇
每個人的學習方法是不同的,一個人的方法不見得適合另一個人,我只能是談自己的學習方法。因為我學習Java是完全自學的,從來沒有問過別人,所以學習的過程基本上完全是自己摸索出來的。我也不知道這種方法是否是比較好的方法,只能給大家提供一點參考了。
學習Java的第一步是安裝好JDK,寫一個Hello World, 其實JDK的學習沒有那麼簡單,關於JDK有兩個問題是很容易一直困擾Java程序員的地方:一個是CLASSPATH的問題,其實從原理上來說,是要搞清楚JRE的ClassLoader是如何載入Class的;另一個問題是package和import問題,如何來尋找類的路徑問題。把這兩個問題摸索清楚了,就掃除了學習Java和使用JDK的最大障礙。推薦看一下王森的《Java深度歷險》,對這兩個問題進行了深入的探討。
第二步是學習Java的語法。Java的語法是類C++的,基本上主流的編程語言不是類C,就是類C++的,沒有什麼新東西,所以語法的學習,大概就是半天的時間足夠了。唯一需要注意的是有幾個不容易搞清楚的關鍵字的用法,public,protected,private,static,什麼時候用,為什麼要用,怎麼用,這可能需要有人來指點一下,我當初是完全自己琢磨出來的,花了很久的時間。不過後來我看到《Thinking in Java》這本書上面是講了這些概念的。
第三步是學習Java的面向對象的編程語言的特性的地方。比如繼承,構造器,抽象類,介面,方法的多態,重載,覆蓋,Java的異常處理機制。對於一個沒有面向對象語言背景的人來說,我覺得這個過程需要花很長很長時間,因為學習Java之前沒有C++的經驗,只有C的經驗,我是大概花了一個月左右吧,才徹底把這些概念都搞清楚,把書上面的例子反復的揣摩,修改,嘗試,把那幾章內容反復的看過來,看過去,看了不下5遍,才徹底領悟了。不過我想如果有C++經驗的話,應該一兩天時間足夠了。那麼在這個過程中,可以多看看《Thinking in Java》這本書,對面向對象的講解非常透徹。可惜的是我學習的時候,並沒有看到這本書,所以自己花了大量的時間,通過自己的嘗試和揣摩來學會的。
第四步就是開始熟悉Java的類庫。Java的基礎類庫其實就是JDK安裝目錄下面jre\lib\rt.jar這個包。學習基礎類庫就是學習rt.jar。基礎類庫裡面的類非常非常多。據說有3000多個,我沒有統計過。但是真正對於我們來說最核心的只有4個,分別是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;
這四個包的學習,每個包的學習都可以寫成一本厚厚的教材,而O'reilly也確實是這樣做的。我覺得如果時間比較緊,是不可能通過讀四本書來學習。我覺得比較好的學習方法是這樣的:
首先要通讀整個package的框架,了解整個package的class,interface,exception的構成,最好是能夠找到介紹整個包框架的文章。這些專門介紹包的書籍的前幾章應該就是這些總體的框架內容介紹。
對包整體框架的把握並不是要熟悉每個類的用法,記住它有哪些屬性,方法。想記也記不住的。而是要知道包有哪些方面的類構成的,這些類的用途是什麼,最核心的幾個類分別是完成什麼功能的。我在給人培訓的時候一般是一次課講一個包,所以不可能詳細的介紹每個類的用法,但是我反復強調,我給你們講這些包的不是要告訴你們類的方法是怎麼調用的,也不要求你們記住類的方法調用,而是要你們了解,Java給我們提供了哪些類,每個類是用在什麼場合,當我遇到問題的時候,我知道哪個類,或者哪幾個類的組合可以解決我的問題,That'all!,當我們具體寫程序的時候,只要你知道該用哪個類來完成你的工作就足夠了。編碼的時候,具體的方法調用,是邊寫代碼,邊查Documentation,所有的東西都在Documentation裡面,不要求你一定記住,實際你也記不住3000多個類的總共將近10萬個方法調用。所以對每個包的總體框架的把握就變得極為重要。
第五步,通過上面的學習,如果學的比較扎實的話,就打好了Java的基礎了,剩下要做的工作是掃清Documentation裡面除了上面4個包之外的其他一些比較有用處的類。相信進展到這一步,Java的自學能力已經被培養出來了,可以到了直接學習Documentation的水平了。除了要做GUI編程之外,JDK裡面其他會有用處的包是這些:
java.text.*;
java.net.*;
javax.naming.*;
這些包裡面真正用的比較多的類其實很少,只有幾個,所以不需要花很多時間。
第六步,Java Web 編程
Web編程的核心是HTTP協議,HTTP協議和Java無關,如果不熟悉HTTP協議的話,雖然也可以學好Servlet/JSP編程,但是達不到舉一反三,一通百通的境界。所以HTTP協議的學習是必備的。如果熟悉了HTTP協議的話,又有了Java編程的良好的基礎,學習Servlet/JSP簡直易如反掌,我學習Servlet/JSP就用了不到一周的時間,然後就開始用JSP來做項目了。
在Servlet/JSP的學習中,重頭仍然是Servlet Documentation。Servlet API最常用的類很少,花比較少的時間就可以掌握了。把這些類都看一遍,多寫幾個例子試試。Servlet/JSP編程本質就是在反復調用這些類來通過HTTP協議在Web Server和Brower之間交談。另外對JSP,還需要熟悉幾個常用JSP的標記,具體的寫法記不住的話,臨時查就是了。
此外Java Web編程學習的重點要放在Web Application的設計模式上,如何進行業務邏輯的分析,並且進行合理的設計,按照MVC設計模式的要求,運用Servlet和JSP分別完成不同的邏輯層,掌握如何在Servlet和JSP之間進行流程的控制和數據的共享,以及Web Application應該如何配置和部署。
第七步,J2EE編程
以上的學習過程如果是比較順利的話,進行到這一步,難度又陡然提高。因為上面的知識內容都是只涉及一個方面,而像EJB,JMS,JTA等核心的J2EE規范往往是幾種Java技術的綜合運用的結晶,所以掌握起來難度比較大。
首先一定要學習好JNDI,JNDI是App Server定位伺服器資源(EJB組件,Datasouce,JMS)查找方法,如果對JNDI不熟悉的話,EJB,JMS這些東西幾乎學不下去。JNDI其實就是javax.naming.*這個包,運用起來很簡單。難點在於伺服器資源文件的配置。對於伺服器資源文件的配置,就需要看看專門的文檔規范了,比如web.xml的寫法,ejb-jar.xml的寫法等等。針對每種不同的App Server,還有自己的服務資源配置文件,也是需要熟悉的。
然後可以學習JTA,主要是要理解JTA對於事務的控制的方法,以及該在什麼場合使用JTA。這里可以簡單的舉個例子,我們知道一般情況可以對於一個資料庫連接進行事務控制(conn.setAutoCommit(false),....,conn.commit()),做為一個原子操作,但是假設我的業務需求是要把對兩個不同資料庫的操作做為一個原子操作,你能做的到嗎?這時候只能用JTA了。假設操作過程是先往A資料庫插一條記錄,然後刪除B資料庫另一個記錄,我們自己寫代碼是控制不了把整個操作做為一個原子操作的。用JTA的話,由App Server來完成控制。
在學習EJB之前要學習對象序列化和RMI,RMI是EJB的基礎。接著學習JMS和EJB,對於EJB來說,最關鍵是要理解EJB是如何通過RMI來實現對遠端對象的調用的,以及在什麼情況下要用到EJB。
在學習完EJB,JMS這些東西之後,你可能會意識到要急不可待學習兩個領域的知識,一個是UML,另一個是Design Pattern。Java企業軟體的設計非常重視框架(Framework)的設計,一個好的軟體框架是軟體開發成功的必要條件。在這個時候,應該開始把學習的重點放在設計模式和框架的學習上,通過學習和實際的編程經驗來掌握EJB的設計模式和J2EE的核心模式。
J2EE規范裡面,除了EJB,JMS,JTA,Servlet/JSP,JDBC之外還有很多很多的企業技術,這里不一一進行介紹了。
另外還有一個最新領域Web Services。Web Services也完全沒有任何新東西,它像是一種黏合劑,可以把不同的服務統一起來提供一個統一的調用介面,作為使用者來說,我只要獲得服務提供者給我的WSDL(對服務的描述),就夠了,我完全不知道伺服器提供者提供的服務究竟是EJB組件,還是.Net組件,還是什麼CORBA組件,還是其他的什麼實現,我也不需要知道。Web Services最偉大的地方就在於通過統一的服務提供方式和調用方式,實現了整個Internet服務的共享,是一個非常令人激動的技術領域。Web Services好像目前還沒有什麼很好的書籍,但是可以通過在網路上面查資料的方式來學習。
Java Learning Path(四) 方法篇
Java作為一門編程語言,最好的學習方法就是寫代碼。當你學習一個類以後,你就可以自己寫個簡單的例子程序來運行一下,看看有什麼結果,然後再多調用幾個類的方法,看看運行結果,這樣非常直觀的把類給學會了,而且記憶非常深刻。然後不應該滿足把代碼調通,你應該想想看如果我不這樣寫,換個方式,再試試行不行。記得哪個高人說過學習編程就是個破壞的過程,把書上的例子,自己學習Documentation編寫的例子在運行通過以後,不斷的嘗試著用不同的方法實現,不斷的嘗試破壞代碼的結構,看看它會有什麼結果。通過這樣的方式,你會很徹底的很精通的掌握Java。
舉個例子,我們都編過Hello World
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
很多初學者不是很理解為什麼main方法一定要這樣來定義public static void main(String[] args),能不能不這樣寫?包括我剛學習Java的時候也有這樣的疑問。想知道答案嗎?很簡單,你把main改個名字運行一下,看看報什麼錯誤,然後根據出錯信息進行分析;把main的public取掉,在試試看,報什麼錯誤;static去掉還能不能運行;不知道main方法是否一定要傳一個String[]數組的,把String[]改掉,改成int[],或者String試試看;不知道是否必須寫args參數名稱的,也可以把args改成別的名字,看看運行結果如何。
我當初學習Java的時候就是這樣做的,把Hello World程序反復改了七八次,不斷運行,分析運行結果,最後就徹底明白為什麼了main方法是這樣定義的了。
此外,我對於staic,public,private,Exception,try{ }catch {}finally{}等等等等一開始都不是很懂,都是把參考書上面的例子運行成功,然後就開始破壞它,不斷的根據自己心裏面的疑問來重新改寫程序,看看能不能運行,運行出來是個什麼樣子,是否可以得到預期的結果。這樣雖然比較費時間,不過一個例子程序這樣反復破壞幾次之後。我就對這個相關的知識徹底學通了。有時候甚至故意寫一些錯誤的代碼來運行,看看能否得到預期的運行錯誤。這樣對於編程的掌握是及其深刻的。
其中特別值得一提的是JDK有一個非常棒的調試功能,-verbose
java –verbose
javac –verbose 以及其它很多JDK工具都有這個選項
-verbose 可以顯示在命令執行的過程中,JVM都依次載入哪裡Class,通過這些寶貴的調試信息,可以幫助我們分析出JVM在執行的過程中都幹了些什麼。
另外,自己在學習過程中,寫的很多的這種破壞常式,應該有意識的分門別類的保存下來,在工作中積累的典型常式也應該定期整理,日積月累,自己就有了一個代碼庫了。遇到類似的問題,到代碼庫裡面 Copy & Paste ,Search & Replace,就好了,極大提高了開發速度。最理想的情況是把一些通用的常式自己再抽象一層,形成一個通用的類庫,封裝好。那麼可復用性就更強了。
所以我覺得其實不是特別需要常式的,自己寫的破壞常式就是最好的例子,如果你實在對自己寫的代碼不放心的話,我強烈推薦你看看JDK基礎類庫的Java源代碼。在JDK安裝目錄下面會有一個src.zip,解開來就可以完整的看到整個JDK基礎類庫,也就是rt.jar的Java源代碼,你可以參考一下Sun是怎麼寫Java程序的,規范是什麼樣子的。我自己在學習Java的類庫的時候,當有些地方理解的不是很清楚的時候,或者想更加清晰的理解運作的細節的時候,往往會打開相應的類的源代碼,通過看源代碼,所有的問題都會一掃而空。
Java Learning Path(五)資源篇
1、 http://java.sun.com/ (英文)
Sun的Java網站,是一個應該經常去看的地方。不用多說。
2、http://www-900.ibm.com/developerWorks/cn/
IBM的developerWorks網站,英語好的直接去英文主站點看。這里不但是一個極好的面向對象的分析設計網站,也是Web Services,Java,Linux極好的網站。強烈推薦!!!
3、http://www.javaworld.com/ (英文)
關於Java很多新技術的討論和新聞。想多了解Java的方方面面的應用,這里比較好。
4、http://dev2dev.bea.com.cn/index.jsp
BEA的開發者園地,BEA作為最重要的App Server廠商,有很多獨到的技術,在Weblogic上做開發的朋友不容錯過。
5、http://www.huihoo.com/
灰狐動力網站,一個專業的中間件網站,雖然不是專業的Java網站,但是在J2EE企業應用技術方面有深厚的造詣。
6、http://www.theserverside.com/home/ (英文)
TheServerSide是一個著名的專門面向Java Server端應用的網站。
7、http://www.javaresearch.org/
Java研究組織,有很多優秀的Java方面的文章和教程,特別是在JDO方面的文章比較豐富。
8、http://www.cnjsp.org/
JSP技術網站,有相當多的Java方面的文章和資源。
9、http://www.jdon.com/
Jdon論壇,是一個個人性質的中文J2EE專業技術論壇,在眾多的Java的中文論壇中,Jdon一個是技術含量非常高,帖子質量非常好的論壇。
10、http://sourceforge.net/
SourgeForge是一個開放源代碼軟體的大本營,其中也有非常非常豐富的Java的開放源代碼的著名的軟體。
參考資料:http://www.itpub.net/showthread.php?threadid=159803&pagenumber=
參考資料:http://..com/question/751730.html
⑽ java web 框架書籍 SSM、SSH等等 或者一個系統的書籍推薦
初級:
軟體開發視頻大講堂:Java從入門到精通(第3版 附光碟)
中高級:
Java Web高級編程:涵蓋WebSockets、Spring Framework、JPA