官术网_书友最值得收藏!

  • 代碼揭秘
  • 左飛
  • 2895字
  • 2018-12-27 13:20:09

前言

算下來這本書應該是我奉獻給讀者的第三本書了。一路寫下來,自己也感覺非常慶幸,慶幸有許多讀者如此地厚愛于我!更高興地看到廣大讀者能夠從我的書里汲取知識,獲得啟迪。在計算機圖書的創作過程中,我不禁感慨:寫一本好書不容易!更何況千里馬常有,而伯樂不常有,能夠讓一本書找到它真正的讀者同樣有難度。因此我寫下了后面的文字,希望這些介紹性的東西能夠幫助讀者理解本書要旨,明確所述內容。

本書緣起

我想有一個問題,很多讀者都非常關心,那就是如何成為一名編程高手。這是以往很多讀者向我寫信討教的話題。關于方法學上的問題本書附錄中談了很多,這里不再贅述。但是這里我想告訴讀者的是本書能夠幫助你做些什么。

通常認為一個計算機程序設計高手應當具備的條件是熟練掌握至少一門計算機程序設計語言,然后有比較扎實的數據結構與算法功底。這樣,基本上他已經可以從一種比較高的視角來抽象現實問題并運用計算機來進行模擬和求解了。但是,這其實還不夠,一個高效的計算機程序需要“內外兼修”。內功就是程序所使用的數據結構和算法,這是決定程序效率的根本因素;而外功就是程序編碼是否符合計算機系統的口味,是否能夠最大程度地調動和運用系統的資源。

這一點的作用是不容忽視的。但是由于目前很多程序員都是半路出家,沒有接受過系統的計算機科學理論教育,因為他們不知道有這么回事,所以無法給予足夠的重視就無可厚非了。就像古代人們不知道有細菌和病毒的存在,所以那時也就沒有消毒的概念一樣。

另外,我需要指出的是,很多計算機專業科班出身的學生也未必能夠領悟這項“外功”的奧義。就目前中國的計算機教育來說,學校的課程設置僅僅是將各項知識獨立地對待,這樣對于悟性不是非常高的學生來說,在沒有被點化的情況下就沒有辦法有機地將這么多課程串接起來。一個不能形成完整系統性的知識結構是空洞和脆弱的結構。

國外先進的計算機教育已經注意到了這一點,很多國外的大學都開設了這樣一門從程序設計角度來讓學生真切感受計算機組織機制和原理的課程。慶幸的是,國內很多人也已經意識到了這個問題,所以相關的課程和有關的書籍也在被逐步引入到國內。但是目前存在的一個問題是,原封不動地將國外的課程和教材搬到國內明顯讓這洋學問顯得有點“水土不服”。

這種水土不服主要表現在三個方面。首先,這些書籍往往都是國外大學的教材,這些教材面向專業學生,這無疑將廣大非專業學生和讀者拒之門外了。其次,這些書是以國外大學的情況為參照而寫作的,沒有充分考慮中國的情況——當然,人家干嘛要考慮呀?這就讓中國讀者學起來非常不順手。比如,某些例子可能是以UNIX或者Linux下的編程為基礎設計的,中國絕大多數使用Windows的讀者就很難完成這些實驗。這極大地打擊了他們繼續學習的積極性和后勁。最后,引進版的書明顯要比實際技術的發展老幾代。現在都是多核時代了,書里可能還在講奔騰2,這就讓中國的讀者只能在后面跟著人家跑,卻永遠沒辦法超越。

核心內容

基于上面的考慮我寫了這樣一本《代碼揭秘》。或許很多人對這個名字感到困惑并充滿疑問,因為直觀上好像不能確定這本書的具體內容是什么。接下來我就要告訴讀者這本書到底是寫什么的。本書從程序設計角度出發(因為這是廣大讀者最熟悉、最容易接受的出發點),以C/C++為描述語言(因為這是目前最廣為使用的計算機語言,另外,C/C++中像指針這樣的底層特性也非常適合用來揭示系統深處的東西),以Visual C++為形式工具(因為它也是中國程序員所習慣使用的開發環境),將隱藏在代碼背后的關于計算機組成原理、計算機操作系統等方面的原理和知識娓娓道來,不僅讓讀者知其然,更要讓讀者知其所以然。并讓這些知識再反作用于編程實踐,從而幫助讀者寫出更適合機器優化的高質量代碼。揭開代碼背后鮮為人知的秘密,讓代碼開口說話,告訴你一個真實的計算機,從而讓你能夠寫出適合與計算機交流的優秀代碼,這就是本書所能為你做到的。

讀者對象

接下來我要回答的問題是本書為誰而寫。

如果你是一名渴望在編程技藝上有所精進的程序設計愛好者,那么這本書就是助你成為編程高手的制勝法寶;

如果你是一名正苦于無法突破編程瓶頸的程序員,那么這本書就是幫你打通任督二脈的武林秘籍;

如果你是一名感覺書本知識仍然無法內化的計算機專業學生,那么本書就是替你撥云開霧、指點迷津的通天燈塔。

閱讀建議

最后,我還希望和讀者談談閱讀及學習本書的建議。

第一,從整體上看全書共分9章,章節之間相互關聯、層層遞進,本著循序漸進的原則逐漸展開,因此閱讀本書時切不可跳躍式地選讀,這樣非但不能領悟整個體系間的精髓,更會為進一步的閱讀帶來困難。特別是第2~7章尤不可拆分閱讀,務必按其順序來學習。

第二,為了幫助讀者理解,書中繪制了大量圖表。這些圖表的作用不可小視,如果在文字理解上遇到困難,可以參照圖表來學習。為了幫助讀者加深理解,書中還設計了大量的實驗,盡管書中給出了實驗結果,但也請讀者務必親自動手實踐一下這些例子,這樣才能讓知識凝固在你的腦中。

第三,本書所涉及的知識面比較廣,在某些時候限于篇幅的考慮而未能把所有問題都展開來深入探究。對于那些并不是非常深入的知識點,如果讀者有興趣,建議讀者多多查閱有關方面的資料,這樣學習才能更加博文通識。

關于本書

排除前期構思和素材準備的時間,本書的寫作時長也將近有一年之久。在這個過程中,筆者力求精益求精,對很多知識點再三推敲,并翻閱了大量資料和文獻。這些工作和努力無非是希望能夠寫一本對得起讀者的書。

在早先的兩本書出版之后,我也收到了許多熱心讀者的來信,一部分人表達了對我作品的充分肯定,這當然是我所樂于見到的,能夠獲得來自讀者的認可對于一個負責任的作者來說無疑是莫大的榮耀。而更多的人則向我問詢了書中的一些問題,主要是他們在閱讀過程中遇到的困難。這也是我非常高興見到的事情,因為這讓我真切地感知到確實有很多人在讀我寫的書。很多讀者同問的一個問題是如何能夠學好編程。為了回答這個問題,我特別撰寫了一篇題為《淺談編程能力的培養與提高》的文章附在本書正文之后,希望對那些仍處在迷茫之中的讀者能夠起到一定的幫助作用。

寫一本好書真的很難,寫一本沒有錯誤的好書更是難如登天。我聞聽計算機科學大師Knuth在《計算機程序設計藝術》叢書出版后也提出如果誰能夠從他書中找到一個錯誤,就能夠獲得256美分的獎勵,事實證明獲得這項獎勵的人還是大有人在的。這也客觀地說明了即使作者很牛,即使作者很用心,書中出現紕漏和欠缺也的確是在所難免的事情,所以我也真心地希望廣大讀者能夠不吝賜教和批評。不過以往的經驗著實有點讓我失望。給我寫信的讀者大有人在,但是指出我書中錯誤的讀者卻寥寥無幾。我想這其中的一個非常重要的原因在于中國的教育更多的是讓我們學會一味接受,而非大膽地思辨!我們太過盲從而迷信權威,只會聆聽高人教誨,卻不想自己思考。這對于學習來說不是一個好現象。古人云:盡信書則不如無書。我也希望廣大讀者能夠以思辨的態度來看書,這樣你將會獲得更多。如果在這個過程中,讀者有什么感想或者問題希望和作者交流的,歡迎給我寫信,聯系信箱:fzuo@yahoo.cn。

最后誠摯地祝愿每位讀者都能夠真正感受到編程的快樂,并在編程的路上行得更穩健,走得更長遠!

主站蜘蛛池模板: 肇州县| 林芝县| 迁安市| 拜泉县| 额济纳旗| 盐池县| 修文县| 咸丰县| 嘉义县| 乃东县| 新建县| 尼玛县| 应城市| 苗栗县| 洞头县| 满洲里市| 常熟市| 无棣县| 怀仁县| 沅陵县| 嘉黎县| 芦溪县| 威海市| 揭西县| 盈江县| 阿鲁科尔沁旗| 垫江县| 儋州市| 通海县| 信宜市| 东阳市| 读书| 酒泉市| 类乌齐县| 蓬溪县| 都江堰市| 崇仁县| 准格尔旗| 湄潭县| 长兴县| 靖远县|