修订版说明什么的
嗯,时间过得很快~转眼间,《脑洞大开—C语言另类攻略》第一版已经面世一年了。在这里感谢大家对本书的支持
没错,在大家的支持下,第一版卖完了。
在此加印之际,在编辑陈婷和马乐惠老师的大力支持和不懈努力下,我们重新修改完善了书稿的不足,总结了第一版排版的不足,重新推出了《脑洞大开—C语言另类攻略(修订版)》。
此次完善内容如下:
(1)修改第一版中的大量代码排版错误,纠正第一版中因排版问题导致的错误代码。
(2)增加小贴士,对部分知识内容增加如何进一步学习引导小贴士或推荐进一步学习的技术资料,方便大家因人而异对感兴趣的内容进行进一步的独立学习。
(3)优化版面及排版设计,优化书籍尺寸,完善排版,美化视觉效果,内容一目了然,并增加书侧空白,方便大家进行知识总结和记录。毕竟,把知识变成自己的,理解才能更加深刻。同时对书中代码增加了二维码,大家可以通过扫描二维码获得书中例子代码的电子版,从而更好地利用书中资源
希望更新后的版本能够给大家更加完美的阅读和学习体验。
当然,还是那句话,毕竟金无足赤,人无完人,更何况我自己也还远远达不到真正的高手水平……所以书中一定还会有所不足和众多这样那样的问题,所以大家如果发现了什么瑕疵或者对这本书有更好的建议,随时欢迎沟通交流指(gou)教(da)~
序
知识学习应愉悦轻松,知识传授应以学生为本。
C程序设计语言诞生至今已有四十多年的历史,对其研究介绍的著作和教材数不胜数。当前,C程序设计语言教材大多是以传授者的视角编写的,内容也大都专注于语法规则的讲解,偏重于知识的灌输。就知识讲解而言,教材或者工具书采取这样的编写方式确有好处,但对于信息时代的学习者来说,学习难免枯燥乏味。因此,当一位老师向我推荐杭州电子科技大学一名在读大学生于大一时凭兴趣写的一本“很有趣、很有特点”的C语言教材时,我实在难以想象出他会写出什么新意来—直到浏览了其全部书稿。本书的作者捕捉了大量被其他书籍忽略但在实践中非常重要的细节内容,以一种与读者互动的姿态和语言娓娓道来,答疑解惑。同时我也非常赞赏其叙述的独特视角,认为确有理由向大众推荐和分享这本好书。
此书作者刘隽良同学是杭州电子科技大学信息安全专业的本科在读学生,在学习C语言程序设计课程时,感觉教材“刻板无趣”。他认为,如果不能以自己的方式准确地阐释所学的内容,就不能算是真正地掌握知识。为此,在学习过程中,刘隽良开始描绘自己心中的C语言面貌。经过两年的思索和积累,完成了这本书的初稿。有趣的是,这本书稿只是个开始。在学习数据结构和密码学课程的时候,刘隽良又以同样的方式完成了其他两本书稿的创作。更难得的是,在完成这三本书稿的过程中,他从未向他人透露过自己的创作历程。直到一个偶然的机会—他参加杭州电子科技大学华为企业奖学金评比,将这三本书稿的写作经历展示给评委老师时,师生们才知晓此事。
刘隽良同学特立独行的想法和坚持不懈的毅力,深深触动了我。作为一名教育工作者,我认为应该让更多的学生分享他这些有益的学习经验,并请专业老师辅助他完善了三本书稿。经过努力,西安电子科技大学出版社正式出版了本书。
本书以一个曾经的学习者的视角,从计算机硬件运行方式、软件执行方式、编程语言以及编译技术等多个层面展示了C语言,以诙谐幽默的语言生动形象地向读者描述了C语言的精彩世界。
如前所述,本书的新颖之处在于以一种学习者的姿态与读者互动,并通过大量图片和逐步图解来辅助理解,将学习C语言变成一种享受。书中收录了大量被其他书籍忽略的但在实践中必须掌握的细节,巧妙地展现出C语言不常为人关注的一面,让读者在轻松愉快的氛围中,能够“知其然,后而知其所以然”。全书集C语言入门、进阶以及C++面向对象入门于一体,逻辑清晰,语言流畅,深入浅出,细节翔实,既通俗易懂又不失严谨。可以说,这本书从以学生为中心的视界与角度,引导学习者形成勤于思考的习惯,鼓励学习者将所学的知识用自己的见解表达出来,从习惯性地被动接受教材的灌输中脱离出来,这对我们反思教育教学改革不无裨益。
在此,让我们向刘隽良同学表示热烈祝贺!期待他再接再厉,在今后的人生中绽放更多的精彩!
胡华
2016年春于杭州电子科技大学
阅读易误导,实践出真知
—前言什么的
貌似每本书都需要有个叫做前言的东西。嗯,写点什么好呢?
一、一点点不算感悟的感悟
阅读易误导,这个听起来有点匪夷所思啊~不都说书是人类进步的阶梯嘛~你怎么又说阅读易误导咧?
不假,对于编程书籍而言,聆听大师教诲的确很有必要,第一次看这类书的感觉的确是醍醐灌顶。不过,当看的书多了,你就会发现虽然大家说的都有道理,但是又各有差异。毕竟每个人对同一个问题的看法和见解都不一样,而书就是他们各自见解的合集,他们将自己的理解写出来供别人参考,然后看过这些感悟的人又有了自己的见解,便又可能另立新作,以此类推周而复始。
然后,麻烦就来了。
当你需要知道某个内容的时候,相应著作百花齐放,良莠不齐,它们或对或错,这都不重要,重要的是在这个过程中,你会不知不觉忘掉你自己的见解。这点就可怕了,你开始变得人云亦云,变得知其然而不知其所以然,你会觉得你所想出的一切都只不过是在翻版别人的感悟,而不是自己发自内心最想表达出来的东西。
这就麻烦了,毕竟学习编程最重要的不是你看过多少本书,而是你能够悟出多少奥义,你能将多少知识用自己的见解表达出来而不再只是因为教材就是这么写的所以你就这
么做。
所以,从这个层面上来说,在编程方面,阅读易误导。
领悟,靠的是自己。书,永远只是辅助。或许,背下书中的知识可以考试不挂科(事实也确实如此),不过要是真想将这些内容变成自己的东西,只有躬亲实践自己领悟,别无他法。
所以在写这本书时,我更多的是希望读者能够学会独立思考感悟,而不是单纯的死记知识。编程是一门艺术,所以,很多东西,只可意会,不可言传,若欲意会,唯有躬亲。这也许就是我在写这本书时最大的感悟吧。
二、写作缘由与经历
这本书的初稿完成于2014年8月,是我第一次在学校学习完C语言课程的暑假。起初的原因是对所使用的教材的知识讲述方法有点“怨念”,觉得知识不应该是这样的枯燥,应该是立体且很有趣的,觉得如果不能把所学的东西以自己的方式描述出来,就并不能算是真正的理解,因此,这本书的初稿就诞生了……作为第一次尝试,现在看当年的初稿不禁感叹自己的毅力。虽然初稿内容很浅,错误在所难免,但是作为当时自己的最高水平,真的已经是极限了;而且书中的语言风格和行文方式以及内容编排都有自己的特点,这也直接决定了这本书的与众不同。而后来由于机缘巧合获得此次出版机会后,我再次使用了近半年时间重新对初稿进行了多轮“骨灰级”修改—将原有初稿页数增加了近一倍,修改完善N多的错误和不足,使得内容更加准确严谨,更加符合最新标准。
由于本书的出发点不是作为一本“传统”的教材,所以全书的框架设计、内容逻辑相对于教材有较大区别。为了能够让大家更容易轻松地领悟C语言,我对本书的知识框架做了较大的调整—首先我们会从计算机体系结构入手,从计算机硬件运行方式、软件执行方式、编程语言以及编译技术等多个层面结合起来全方位立体展示,以便于更好理解语言本身,同时辅以大量图片辅助理解并搭配各种小问题一起研究,较好地摆脱了传统书籍的说教式知识传授过程。此外,在本书中我们将更加注重细节,对大量不被提及的细节不再人云亦云而是告诉你为什么会是这样,让你能够更好地理解和掌握语言本身。
希望这样的设计能给大家带来更好的学习体验。
三、致谢
感谢父母的支持,让我能够尽情做自己喜欢的事情。在本书的成书过程中,杭州电子科技大学胡华副校长和李万清老师对书稿进行过多次审核,提出了很多很有价值的修改意见,非常感谢他们的付出,使得这本书能够以更为完善的姿态展现在读者面前;同时要感谢西安电子科技大学出版社的出版支持,尤其感谢编辑陈婷老师和马乐惠老师在本书出版过程中提供的诸多帮助(尤其像我这种“不守规矩”的,真是辛苦她们了……)。最后还要感谢某神秘人士K,作为最初版本的原始读者,是你向我提供了最初动笔的动力,从而才诞生了这本书。
四、本书结构
本书主要分成了5章:
第1章是一个开头总结和引导,简单介绍了计算机硬件运行方式、软件执行方式以及C语言代码从预处理到最终编译成可执行文件的过程,并总结了在C和C++中普遍通用的规范代码模式以及一些要注意的点。
第2~4章是对C语言的总结,作为一门历经40多年依然经典而坚挺的编程语言,它自然有着与众不同的魅力与风格,这三章分别从关键字、函数以及数组和指针等方面对C语言进行了多方面的剖析,并深入细节细化理解,让读者能够对细节做到知其然又知其所以然,让读者在多问些为什么的过程中进阶C语言水平。这部分内容适合C语言初学者快速入门,让入门者快速进阶,也适合初级进阶者查漏补缺。
第5章则是基于C++的面向对象模型快速过渡与理解,帮助读者在理解C语言面向过程思维后向面向对象的入门级过渡,以一章的内容将C++中最主要的子集以最好理解的状态展现在读者面前,适合作为C++的初学入门指导。
五、求“勾搭”
当然,毕竟金无足赤,人无完人,更何况我自己也还远远达不到真正的高手水平……所以书中一定还会有不足和众多这样那样的问题,大家如果发现了什么瑕疵或者对这本书有更好的建议,随时欢迎沟通交流指(gou)教(da)。
最后希望这本书能对你有所启发哦。
刘隽良
2016/5/14
杭州电子科技大学