程序員修煉之道——程序設計入門30講( 簡體 字) | |
作者:呂云翔、傅義 | 類別:1. -> 程式設計 -> 綜合 |
出版社:清華大學出版社 | 3dWoo書號: 49488 詢問書籍請說出此書號! 有庫存 NT售價: 350 元 |
出版日:7/1/2018 | |
頁數:161 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302499282 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
一、入門學堂 1
1.#include,usingnamespacestd,intmain分別是什么意思?我的 第一個C程序 1 2.import,publicstaticvoidmain,String[]args分別是什么意思? 我的第一個Java程序 5 3.什么是數據類型? 9 4.如何閱讀項目源碼? 14 5.如何調試程序? 16 二、內存模型 24 6.變量和對象存儲在哪里?理解棧和堆 24 7.什么是stackoverflow異常? 30 8.指針究竟是什么? 34 9.Java中的引用與C中的指針有什么區別? 39 10.為什么C++中new之后要delete,Java中卻不需要? 42 11.明明是值傳遞,可對象為什么發生了變化? 48 三、初窺算法 51 12.如何編寫鏈表? 51 13.從斐波那契到漢諾塔,如何編寫遞歸算法? 56 14.從深度優先到廣度優先,如何編寫搜索算法? 61 15.什么是位運算?位運算究竟有什么用? 67 四、面向對象 74 16.為什么要編寫類?這么做是不是使問題更復雜了? 74 17.組合還是繼承?如何選擇? 81 18.為什么靜態方法不能調用非靜態成員? 90 19.Java為什么不支持多繼承? 94 20.為什么要定義接口?接口有什么用? 97 五、認識程序 105 21.Java中的異常處理機制有什么優點? 105 22.throws還是try…catch?異常處理原則 109 23.什么是輸入流和輸出流?裝飾器模式的應用 113 24.為什么需要多線程編程? 121 25.修改同時發生該聽誰的?鎖 126 26.編譯、鏈接、運行,程序是怎樣跑起來的? 132 27.為什么我寫的都是黑框程序?圖形界面是怎樣寫出來的? 137 28.什么是回調函數? 142 六、編程之道 149 29.如何正確地編寫注釋? 149 30.應該培養哪些良好的編程習慣? 155 參考文獻 161 本書收錄了與程序設計基礎知識相關的30個問題。它們是大部分初次接觸編程的讀者共有的問題。這些問題的答案并不復雜,但是消化吸收它們卻不是一個簡單的過程。這需要讀者培養計算思維,學習從程序的視角看問題。當你可以回答本書所有的問題時,相信你已經越過了程序設計的第一道門檻。
本書分為6部分,分別是:入門學堂、內存模型、初窺算法、面向對象、認識程序、編程之道。在入門學堂這部分中,主要介紹程序設計最基礎的知識,例如如何編寫第一個Java程序、第一個C++程序,學習調試程序等。在內存模型這部分中,我們將學習指針、引用、棧和堆、參數傳遞等內存相關的知識。初窺算法部分圍繞基礎的數據結構和算法展開,如鏈表、遞歸算法、搜索算法等。在面向對象這部分中,我們將圍繞面向對象程序設計的三大特性展開學習。認識程序部分則介紹更多程序設計方面的知識,如異常處理機制、輸入輸出流、多線程編程等。編程之道部分講述提升代碼質量的方法,編程不僅是一項工程性的工作,更是一項藝術工作,這一部分就圍繞程序設計的藝術性來展開。 本書面向所有計算機相關專業的學生,也面向所有對程序設計感興趣的入門學習者,只要對本書中的任何問題感到疑惑,并且想知道背后答案的讀者,都可以閱讀本書。 計算機科學是一門專業性很強的學科,該學科思考問題、解決問題的獨特方式將很多初學者攔在了門外。還記得高中剛接觸力學的時候,很多題目讓筆者望而卻步,經過了反復琢磨,筆者才領悟到受力分析這一根本方法的訣竅,在此之后,所有的題目仿佛一下子變得簡單了許多。相比物理,計算機的概念顯得更為抽象,入門門檻也因此更高。不同的初學者因天賦不同,在入門這一過程中花費的時間長短不一。然而天才畢竟是少數,很多讀者在建立計算思維的過程中遭遇重重困難,一部分讀者甚至中途放棄。
當筆者在越過了阻礙初學者入門的這道門檻之后,回過頭來看那些當初困擾筆者的問題,似乎并沒有什么特別難的地方。筆者認為,大部分困難并非在于問題本身,難的是通過這些問題培養計算機獨特的思維方式。 我們通過對北京航空航天大學大一大二軟件工程專業學生的調研,搜集了他們在學習過程中遇到的困擾他們的問題。本書收錄了其中出現頻率最高的大部分問題,例如:什么是指針?對象是如何傳遞的?為什么靜態方法不能調用非靜態成員?編譯和鏈接階段發生了什么?等等。本書分為六部分,分別是:入門學堂、內存模型、初窺算法、面向對象、認識程序、編程之道。在入門學堂這一部分中,我們將學習程序的基本概念,掌握編程的基本方法。內存模型部分則涉及計算機體系結構中較 為重要的一部分——內存的知識,程序運行背后的內存模型是學習編程所需修煉的內功之一。初窺算法部分則介紹編程中常見的算法與數據結構,這是學習編程所需修煉的又一大內功。面向對象部分介紹當下最常見的軟件開發方法。認識程序部分是關于程序設計更多的知識介紹,例如多線程編程、異常處理、輸入輸出等。編程之道部分介紹了編程之道,這些方法更多地是為了幫助我們寫出高質量的代碼。 本書共收錄了30個常見的問題,我們認為這些問題是極具代表性的,相信大部分的初學者在遇到這些問題的時候都會想看到這些問題最通俗易懂的解答,而這正是我們撰寫本書的目的。無論你是初學者還是已經具備了一定的編程能力的學習者,如果你對本書列出的某些問題還存有疑惑,不妨去閱讀一下相應的解答,由于每一個問題都相對獨立,讀者可以挑選感興趣的問題進行閱讀,而不一定按照順序從頭讀到尾。我們希望所有的初學者在閱讀完本書之后,能對程序形成一個系統而清晰的認識,成功跨越學習編程的第一道門檻,發現編程的樂趣。 本書具有以下幾個方面的特點。 目標性強:本書針對剛剛接觸編程的計算機、軟件工程相關專業的學生,旨在幫助讀者建立計算機專業的思考方式,培養程序員的思維方式。書中收集了大部分初學者都會遇到的問題,通過形象生動的語言進行解答,幫助初學者跨越編程的第一道門檻。 問題典型,回答生動:本書采用一問一答的編寫形式,行文類似《十萬個為什么》。問題選取計算機相關專業學生在初學編程時最容易遇到的典型問題,范圍涵蓋內存模型、算法與數據結構、程序設計語言等多個方面。回答采用生動形象的語言,以盡可能多的類比讓讀者輕松理解問題答案。 受眾廣泛:本書適合剛接觸編程的初學者,包括計算機、軟件工程專業大一大二的學生以及熱愛編程的自學者。本書也適合學習了編程一段時間的讀者,幫助其梳理思路,溫故知新。 章節獨立:由于本書各章節的問題相對獨立,讀者可以任意選擇感興趣的章節進行閱讀,而不一定要按順序從頭讀到尾,增強了閱讀的靈活性和針對性。 本書的作者為呂云翔、傅義,另外,曾洪立、呂彼佳、姜彥華參與了部分內容的寫作與資料整理的工作。 由于我們的水平和能力有限,本書難免有疏漏之處。懇請各位同仁和廣大讀者給予批評指正,也希望各位能將實踐過程中的經驗和心得分享給我們。 編 者 2018年3月 |