首页 一本超越谭浩强、K&R的C语言编程著作《 Linux C编程一站式学习》

一本超越谭浩强、K&R的C语言编程著作《 Linux C编程一站式学习》

举报
开通vip

一本超越谭浩强、K&R的C语言编程著作《 Linux C编程一站式学习》 一本超越谭浩强、K&R的 C语言编程著作《 Linux C编程一站式学习》 前言 这本书有什么特点?面向什么样的读者? 这本书最初是为北京亚嵌教育 www.akaedu.org就业班课程量身定做的教材之一。该课程是 为期四个月的全日制职业培训,要求学员毕业时具备非常 Solid的 C编程能力,能熟练地使 用 Linux系统,同时对计算机体系结构与指令集、操作系统原理和设备驱动程序都有较深入 的了解。然而学员入学时的水平是非常初级而且参差不齐的:学历有专科、本科也有研究生, 专业有和计算机相...

一本超越谭浩强、K&R的C语言编程著作《 Linux C编程一站式学习》
一本超越谭浩强、K&R的 C语言编程著作《 Linux C编程一站式学习》 前言 这本 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 有什么特点?面向什么样的读者? 这本书最初是为北京亚嵌教育 www.akaedu.org就业班课程量身定做的教材之一。该课程是 为期四个月的全日制职业 培训 焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载 ,要求学员毕业时具备非常 Solid的 C编程能力,能熟练地使 用 Linux系统,同时对计算机体系结构与指令集、操作系统原理和设备驱动程序都有较深入 的了解。然而学员入学时的水平是非常初级而且参差不齐的:学历有专科、本科也有研究生, 专业有和计算机相关的也有很不相关的(例如会计专业),以前从事的职业有和技术相关的 也有完全不相关的(例如 HR),年龄从二十出头到三十五六岁的都有。这么多背景完全不 同、基础完全不同、思维习惯和理解能力完全不同的人来听同一堂课,大家都迫切希望学会 嵌入式开发技术,投身 IT行业,这就是职业教育的特点,也是我编这本书时需要考虑的主 要问题。 学习编程绝不是一件简单的事,尤其是对于零基础的初学者来说。大学的计算机专业有四年 时间从零基础开始培养一个人,微积分、线代、随机、离散、组合、自动机、编译原理、操 作系统、计算机组成原理等等一堆基础课,再加上 C/C++、Java、数据库、网络、软件工 程、计算机图形学等等一堆专业课,最后培养出一个能找到工作的学生。很遗憾这最后一条 很多学校没有做好,来亚嵌培训的很多学生就是四年这么学过来的,但据我们考查他们的基 础几乎为零,我不知道为什么。与之形成鲜明对比的是,只给我们四个月的时间,同样要求 从零基础开始,最后培养出一个能找到工作的学生,而且还要保证他找到工作,这就是职业 教育的特点。 为什么我说“只给我们四个月的时间”?我们倒是想教四年呢,但学时的长短我们做不了主, 是由市场规律决定的。四年的任务要求四个月做好,要怎么完成这样一个几乎不可能的任 务?有些职业教育给出的答案是“实用主义”,打出了“有用就学,没有用就不学”的口号, 大肆贬低说大学里教的基础课都是过时的、无用的,只有他们教的技术才是实用的,这种炒 作很不好,我认为大学里教的每一门课都是非常有用的,基础知识在任何时候都不会过时, 倒是那些时髦的“实用技术”有可能很快就过时了。 四年的任务怎么才能用四个月做好?我们给出的答案是“优化”。现在大学里安排的课程体 系最大的缺点就是根本不考虑优化。每个过来人都会有这样的感觉:大一大二学了好多数学 课,却不知道都是干什么用的,为什么要学。连它有什么用都不知道怎么能有兴趣学好呢? 然后到大三大四学专业课时,用到以前的知识了,才发现以前学的数学是多么有用,然而早 就忘得一干二净了,考完试都还给老师了,回头重新学吧,这时候才发现很多东西以前根本 没学明白,现在才真的学明白了,那么前两年的时间岂不是都浪费了?大学里的课程体系还 有一个缺点就是不灵活,每门课必须占一个学期,必须由一个老师教,不同课程的老师之间 没有任何沟通和衔接,其实这些课程之间是相互依赖的,把它们强行拆开是不符合人的认知 规律的。比如我刚上大学的时候,大一上半学期就被逼着学 C语言,其实 C语言是一门很 难的编程语言,不懂编译原理、操作系统和计算机体系结构根本不可能学明白,那半个学期 自然就浪费掉了。当时几乎所有学校的计算机相关专业都是这样,大一上来就学 C语言, 有的学校更疯狂,上来就学 C++,导致大多数学生都以为自己会 C语言,但其实都是半吊 子水平,到真正写代码的时候经常为一个 Bug搞得焦头烂额,却没有机会再系统地学一遍 C语言,因为在学校看来,C语言课早在大一就给你“上完了”,就像一顿饭已经吃完了, 不管你吃饱没吃饱,不会再让你重吃一遍了。显而易见,如果要认真地对这些课程做优化, 的确是有很多水份可以挤的。 本书有以下特点: · 不是孤立地讲 C语言,而是和编译原理、操作系统、计算机体系结构结合起来讲。 或者说,本书的内容只是以 C语言为载体,真正讲的是计算机的原理和程序的原理。 · 强调基本概念和基本原理,在编排顺序上非常重视概念之间的依赖关系,每次引入 一个新的概念,只依赖于前面章节已经讲过的概念,而绝不会依赖后面章节要讲的 概念。有些地方为了叙述得完整,也会引用后面要讲的内容,比如说“有关 XX我 们到 XX章再仔细讲解”,凡是这种引用都不是必要的依赖,可以当它不存在,只 管继续往下看就行了。 · 尽量做到每个知识点直到要用的时候才引入。过早引入一个知识点,讲完了又不用 它,读者很快就会遗忘,这是不符合认知规律的。 这是一本从零基础开始学习编程的书,不要求读者有任何编程经验,但读者至少需要具备以 下素质: · 熟悉 Linux系统的基本操作。如果不具备这一点,请先参考其它教材学习 Linux系 统的基本操作,熟练之后再学习本书,《鸟哥的 Linux私房菜》据说是 Linux系统 管理和应用方面比较好的一本书。但学习本书并不需要会很多系统管理技术,只要 会用基本命令,会自己安装系统和软件包就足够了。 · 具有高中毕业的数学水平。本书会用到高中的数学知识,事实上,如果不具有高中 毕业的数学水平,也不必考虑做程序员了。但并不是说只要具有高中毕业的数学水 平就足够做程序员了,只能说看这本书应该没有问题,数学是程序员最重要的修养, 计算机科学其实就是数学的一个分支,如果你的数学功底很差,日后还需恶补一下。 · 具有高中毕业的英文水平。理由同上。 · 对计算机的原理和本质深感兴趣,不是为就业而学习,不是为拿高薪而学习,而是 真的感兴趣,想把一切来龙去脉搞得清清楚楚而学习。 · 勤于思考。本书尽最大努力理清概念之间的依赖关系,力求一站式学习,读者不需 要为了找一个概念的定义去翻其它书,也不需要为了搞清楚一个概念在本书中前后 一通乱翻,只需从前到后按顺序学习即可。但一站式学习并不等于傻瓜式学习,有 些章节有一定的难度,需要积极思考才能领会。本书可以替你节省时间,但不能替 你思考,不要指望像看小说一样走马观花看一遍就能学会。 又是一本 C语言书。好吧,为什么我要学这本书而不是谭浩强或者 K&R? 谭浩强的书我就不说什么了。居然教学生 include 一个.c 文件。 K&R是公认的世界上最经典的 C语言教程,这点毫无疑问。在 C标准出台之前,K&R第 一版就是事实上的 C标准。C89标准出台之后,K&R跟着标准推出了第二版,可惜此后就 没有更新过了,所以不能反映 C89之后 C语言的发展以及最新的 C99标准,本书在这方面 做了很多补充。上面我说过了,这本书与其说是讲 C语言,不如说是以 C语言为载体讲计 算机和操作系统的原理,而 K&R就是为了讲 C语言而讲 C语言,侧重点不同,内容编排也 很不相同。K&R写得非常好,代码和语言都非常简洁,但很可惜,只有会 C语言的人才懂 得欣赏它,K&R是非常不适合入门学习的,尤其不适合零基础的学生入门学习。 这本书“是什么”和“不是什么” 本书包括三大部分: · C语言入门。介绍基本的 C语法,帮助没有任何编程经验的读者理解什么是程序, 怎么写程序,培养程序员的思维习惯,找到编程的感觉。前半部分改编自[ThinkCpp]。 · C语言本质。结合计算机和操作系统的原理讲解 C程序是怎么编译、链接、运行的, 同时全面介绍 C的语法。位运算的章节改编自亚嵌教育林小竹老师的讲义,链 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 和 二叉树的章节改编自亚嵌教育朱老师的讲义。汇编语言的章节改编自[GroudUp],在 该书的最后一章提到,学习编程有两种 Approach,一种是 Bottom Up,一种是 Top Down,各有优缺点,需要两者结合起来。所以我编这本书的思路是,第一部分 Top Down,第二部分 Bottom Up,第三部分可以算填了中间的空隙,三部分全都围绕 C 语言展开。 · Linux系统编程。介绍各种 Linux系统函数和内核的工作原理。Socket编程的章节 改编自亚嵌教育卫剑钒老师的讲义。 这本书定位在入门级,虽然内容很多,但不是一本百科全书,除了 C语言基本要讲透之外 其它内容都不深入,书中列出了很多参考资料,是读者进一步学习的起点。K&R的第一章 是一个Whirlwind Tour,把全书的内容简单过了一遍,然后再逐个深入进去讲解。本书也可 以看作是计算机专业课程体系的一个Whirlwind Tour,学习完本书之后有了一个全局观,再 去学习那些参考资料就应该很容易上手了。 为什么要在 Linux平台上学 C语言?用Windows学 C语言不好吗? 用Windows还真的是学不好 C语言。C语言是一种面向底层的编程语言,要写好 C程序, 必须对操作系统的工作原理非常清楚,因为操作系统也是用 C写的,我们用 C写应用程序 直接使用操作系统提供的接口。既然你选择了看这本书,你一定了解:Linux是一种开源的 操作系统,你有任何疑问都可以从源代码和文档中找到答案,即使你看不懂源代码,也找不 到文档,也很容易找个高手教你,各种邮件列表、新闻组和论坛上从来都不缺乐于助人的高 手;而Windows是一种封闭的操作系统,除了微软的员工别人都看不到它的源代码,只能 通过文档去猜测它的工作原理,更糟糕的是,微软向来喜欢藏着揶着,好用的功能留着自己 用,而不会写到文档里公开。本书的第一部分在 Linux或Windows平台上学习都可以,但 第二部分和第三部分介绍了很多 Linux操作系统的原理以帮助读者更深入地理解 C语言, 只能在 Linux平台上学习。 Windows平台上的开发工具往往和各种集成开发环境(IDE,Integrated Development Environment)绑在一起,例如 Visual Studio、Eclipse等。使用 IDE确实很便捷,但 IDE 对于初学者绝对不是好东西。微软喜欢宣扬傻瓜式编程的理念,告诉你用鼠标拖几个控件, 然后点一个按钮就可以编译出程序来,但是真正有用的程序有哪个是这么拖出来的?很多从 Windows平台入门学编程的人,编了好几年程序,还是只知道编完程序点一个按钮就可以 跑了,把几个源文件拖到一个项目里就可以编译到一起了,如果有更复杂的需求他们就傻眼 了,因为他们脑子里只有按钮、菜单的概念,根本没有编译器、链接器、Makefile的概念, 甚至连命令行都没用过,然而这些都是初学编程就应该建立起来的基本概念。另一方面,编 译器、链接器和 C语言的语法有密切的关系,不了解编译器、链接器的工作原理,也不可 能真正掌握 C的语法。所以,IDE并没有帮助你学习,而是阻碍了你学习,本来要学好 C 编程只要把语法和编译命令学会就行了,现在有了 IDE,除了学会语法和编译命令,你还得 弄清楚编译命令和 IDE是怎么集成的,这才算学明白了,本来就很复杂的学习任务被 IDE 搞得更加复杂了。Linux用户的使用习惯从来都是以敲命令为主,以鼠标操作为辅,从学编 程的第一天起就要敲命令编译程序,等到你把这些基本概念都搞清楚了,你觉得哪个 IDE 好用你再去用,不过到那时候你可能会更喜欢 vi或 emacs 而不是 IDE了。 致谢 本书的写作得到北京亚嵌教育研究中心 www.akaedu.org的全力支持,尤其感谢李明老师和 何家胜老师,没有公司的支持,我不可能有时间有条件写这本书,也不可能有机会将这本书 公开在网上。(未完待续) 有想与作者沟通者,请上www.akaedu.org,与作者在线沟通
本文档为【一本超越谭浩强、K&R的C语言编程著作《 Linux C编程一站式学习》】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_830711
暂无简介~
格式:pdf
大小:144KB
软件:PDF阅读器
页数:4
分类:互联网
上传时间:2009-09-01
浏览量:69