修訂版說明什么的
嗯,時間過得很快~轉(zhuǎn)眼間,《腦洞大開—C語言另類攻略》第一版已經(jīng)面世一年了。在這里感謝大家對本書的支持
沒錯,在大家的支持下,第一版賣完了。
在此加印之際,在編輯陳婷和馬樂惠老師的大力支持和不懈努力下,我們重新修改完善了書稿的不足,總結了第一版排版的不足,重新推出了《腦洞大開—C語言另類攻略(修訂版)》。
此次完善內(nèi)容如下:
(1)修改第一版中的大量代碼排版錯誤,糾正第一版中因排版問題導致的錯誤代碼。
(2)增加小貼士,對部分知識內(nèi)容增加如何進一步學習引導小貼士或推薦進一步學習的技術資料,方便大家因人而異對感興趣的內(nèi)容進行進一步的獨立學習。
(3)優(yōu)化版面及排版設計,優(yōu)化書籍尺寸,完善排版,美化視覺效果,內(nèi)容一目了然,并增加書側(cè)空白,方便大家進行知識總結和記錄。畢竟,把知識變成自己的,理解才能更加深刻。同時對書中代碼增加了二維碼,大家可以通過掃描二維碼獲得書中例子代碼的電子版,從而更好地利用書中資源
希望更新后的版本能夠給大家更加完美的閱讀和學習體驗。
當然,還是那句話,畢竟金無足赤,人無完人,更何況我自己也還遠遠達不到真正的高手水平……所以書中一定還會有所不足和眾多這樣那樣的問題,所以大家如果發(fā)現(xiàn)了什么瑕疵或者對這本書有更好的建議,隨時歡迎溝通交流指(gou)教(da)~
序
知識學習應愉悅輕松,知識傳授應以學生為本。
C程序設計語言誕生至今已有四十多年的歷史,對其研究介紹的著作和教材數(shù)不勝數(shù)。當前,C程序設計語言教材大多是以傳授者的視角編寫的,內(nèi)容也大都專注于語法規(guī)則的講解,偏重于知識的灌輸。就知識講解而言,教材或者工具書采取這樣的編寫方式確有好處,但對于信息時代的學習者來說,學習難免枯燥乏味。因此,當一位老師向我推薦杭州電子科技大學一名在讀大學生于大一時憑興趣寫的一本“很有趣、很有特點”的C語言教材時,我實在難以想象出他會寫出什么新意來—直到瀏覽了其全部書稿。本書的作者捕捉了大量被其他書籍忽略但在實踐中非常重要的細節(jié)內(nèi)容,以一種與讀者互動的姿態(tài)和語言娓娓道來,答疑解惑。同時我也非常贊賞其敘述的獨特視角,認為確有理由向大眾推薦和分享這本好書。
此書作者劉雋良同學是杭州電子科技大學信息安全專業(yè)的本科在讀學生,在學習C語言程序設計課程時,感覺教材“刻板無趣”。他認為,如果不能以自己的方式準確地闡釋所學的內(nèi)容,就不能算是真正地掌握知識。為此,在學習過程中,劉雋良開始描繪自己心中的C語言面貌。經(jīng)過兩年的思索和積累,完成了這本書的初稿。有趣的是,這本書稿只是個開始。在學習數(shù)據(jù)結構和密碼學課程的時候,劉雋良又以同樣的方式完成了其他兩本書稿的創(chuàng)作。更難得的是,在完成這三本書稿的過程中,他從未向他人透露過自己的創(chuàng)作歷程。直到一個偶然的機會—他參加杭州電子科技大學華為企業(yè)獎學金評比,將這三本書稿的寫作經(jīng)歷展示給評委老師時,師生們才知曉此事。
劉雋良同學特立獨行的想法和堅持不懈的毅力,深深觸動了我。作為一名教育工作者,我認為應該讓更多的學生分享他這些有益的學習經(jīng)驗,并請專業(yè)老師輔助他完善了三本書稿。經(jīng)過努力,西安電子科技大學出版社正式出版了本書。
本書以一個曾經(jīng)的學習者的視角,從計算機硬件運行方式、軟件執(zhí)行方式、編程語言以及編譯技術等多個層面展示了C語言,以詼諧幽默的語言生動形象地向讀者描述了C語言的精彩世界。
如前所述,本書的新穎之處在于以一種學習者的姿態(tài)與讀者互動,并通過大量圖片和逐步圖解來輔助理解,將學習C語言變成一種享受。書中收錄了大量被其他書籍忽略的但在實踐中必須掌握的細節(jié),巧妙地展現(xiàn)出C語言不常為人關注的一面,讓讀者在輕松愉快的氛圍中,能夠“知其然,后而知其所以然”。全書集C語言入門、進階以及C++面向?qū)ο笕腴T于一體,邏輯清晰,語言流暢,深入淺出,細節(jié)翔實,既通俗易懂又不失嚴謹。可以說,這本書從以學生為中心的視界與角度,引導學習者形成勤于思考的習慣,鼓勵學習者將所學的知識用自己的見解表達出來,從習慣性地被動接受教材的灌輸中脫離出來,這對我們反思教育教學改革不無裨益。
在此,讓我們向劉雋良同學表示熱烈祝賀!期待他再接再厲,在今后的人生中綻放更多的精彩!
胡華
2016年春于杭州電子科技大學
閱讀易誤導,實踐出真知
—前言什么的
貌似每本書都需要有個叫做前言的東西。嗯,寫點什么好呢?
一、一點點不算感悟的感悟
閱讀易誤導,這個聽起來有點匪夷所思啊~不都說書是人類進步的階梯嘛~你怎么又說閱讀易誤導咧?
不假,對于編程書籍而言,聆聽大師教誨的確很有必要,第一次看這類書的感覺的確是醍醐灌頂。不過,當看的書多了,你就會發(fā)現(xiàn)雖然大家說的都有道理,但是又各有差異。畢竟每個人對同一個問題的看法和見解都不一樣,而書就是他們各自見解的合集,他們將自己的理解寫出來供別人參考,然后看過這些感悟的人又有了自己的見解,便又可能另立新作,以此類推周而復始。
然后,麻煩就來了。
當你需要知道某個內(nèi)容的時候,相應著作百花齊放,良莠不齊,它們或?qū)蝈e,這都不重要,重要的是在這個過程中,你會不知不覺忘掉你自己的見解。這點就可怕了,你開始變得人云亦云,變得知其然而不知其所以然,你會覺得你所想出的一切都只不過是在翻版別人的感悟,而不是自己發(fā)自內(nèi)心最想表達出來的東西。
這就麻煩了,畢竟學習編程最重要的不是你看過多少本書,而是你能夠悟出多少奧義,你能將多少知識用自己的見解表達出來而不再只是因為教材就是這么寫的所以你就這
么做。
所以,從這個層面上來說,在編程方面,閱讀易誤導。
領悟,靠的是自己。書,永遠只是輔助。或許,背下書中的知識可以考試不掛科(事實也確實如此),不過要是真想將這些內(nèi)容變成自己的東西,只有躬親實踐自己領悟,別無他法。
所以在寫這本書時,我更多的是希望讀者能夠?qū)W會獨立思考感悟,而不是單純的死記知識。編程是一門藝術,所以,很多東西,只可意會,不可言傳,若欲意會,唯有躬親。這也許就是我在寫這本書時最大的感悟吧。
二、寫作緣由與經(jīng)歷
這本書的初稿完成于2014年8月,是我第一次在學校學習完C語言課程的暑假。起初的原因是對所使用的教材的知識講述方法有點“怨念”,覺得知識不應該是這樣的枯燥,應該是立體且很有趣的,覺得如果不能把所學的東西以自己的方式描述出來,就并不能算是真正的理解,因此,這本書的初稿就誕生了……作為第一次嘗試,現(xiàn)在看當年的初稿不禁感嘆自己的毅力。雖然初稿內(nèi)容很淺,錯誤在所難免,但是作為當時自己的最高水平,真的已經(jīng)是極限了;而且書中的語言風格和行文方式以及內(nèi)容編排都有自己的特點,這也直接決定了這本書的與眾不同。而后來由于機緣巧合獲得此次出版機會后,我再次使用了近半年時間重新對初稿進行了多輪“骨灰級”修改—將原有初稿頁數(shù)增加了近一倍,修改完善N多的錯誤和不足,使得內(nèi)容更加準確嚴謹,更加符合最新標準。
由于本書的出發(fā)點不是作為一本“傳統(tǒng)”的教材,所以全書的框架設計、內(nèi)容邏輯相對于教材有較大區(qū)別。為了能夠讓大家更容易輕松地領悟C語言,我對本書的知識框架做了較大的調(diào)整—首先我們會從計算機體系結構入手,從計算機硬件運行方式、軟件執(zhí)行方式、編程語言以及編譯技術等多個層面結合起來全方位立體展示,以便于更好理解語言本身,同時輔以大量圖片輔助理解并搭配各種小問題一起研究,較好地擺脫了傳統(tǒng)書籍的說教式知識傳授過程。此外,在本書中我們將更加注重細節(jié),對大量不被提及的細節(jié)不再人云亦云而是告訴你為什么會是這樣,讓你能夠更好地理解和掌握語言本身。
希望這樣的設計能給大家?guī)砀玫膶W習體驗。
三、致謝
感謝父母的支持,讓我能夠盡情做自己喜歡的事情。在本書的成書過程中,杭州電子科技大學胡華副校長和李萬清老師對書稿進行過多次審核,提出了很多很有價值的修改意見,非常感謝他們的付出,使得這本書能夠以更為完善的姿態(tài)展現(xiàn)在讀者面前;同時要感謝西安電子科技大學出版社的出版支持,尤其感謝編輯陳婷老師和馬樂惠老師在本書出版過程中提供的諸多幫助(尤其像我這種“不守規(guī)矩”的,真是辛苦她們了……)。最后還要感謝某神秘人士K,作為最初版本的原始讀者,是你向我提供了最初動筆的動力,從而才誕生了這本書。
四、本書結構
本書主要分成了5章:
第1章是一個開頭總結和引導,簡單介紹了計算機硬件運行方式、軟件執(zhí)行方式以及C語言代碼從預處理到最終編譯成可執(zhí)行文件的過程,并總結了在C和C++中普遍通用的規(guī)范代碼模式以及一些要注意的點。
第2~4章是對C語言的總結,作為一門歷經(jīng)40多年依然經(jīng)典而堅挺的編程語言,它自然有著與眾不同的魅力與風格,這三章分別從關鍵字、函數(shù)以及數(shù)組和指針等方面對C語言進行了多方面的剖析,并深入細節(jié)細化理解,讓讀者能夠?qū)毠?jié)做到知其然又知其所以然,讓讀者在多問些為什么的過程中進階C語言水平。這部分內(nèi)容適合C語言初學者快速入門,讓入門者快速進階,也適合初級進階者查漏補缺。
第5章則是基于C++的面向?qū)ο竽P涂焖龠^渡與理解,幫助讀者在理解C語言面向過程思維后向面向?qū)ο蟮娜腴T級過渡,以一章的內(nèi)容將C++中最主要的子集以最好理解的狀態(tài)展現(xiàn)在讀者面前,適合作為C++的初學入門指導。
五、求“勾搭”
當然,畢竟金無足赤,人無完人,更何況我自己也還遠遠達不到真正的高手水平……所以書中一定還會有不足和眾多這樣那樣的問題,大家如果發(fā)現(xiàn)了什么瑕疵或者對這本書有更好的建議,隨時歡迎溝通交流指(gou)教(da)。
最后希望這本書能對你有所啟發(fā)哦。
劉雋良
2016/5/14
杭州電子科技大學