原创 关于C,看过的一些书

2013-9-3 23:57 3038 13 22 分类: 消费电子
忘了名字的书,
《C语言程序设计》(老谭版)
《高质量程序设计》
《C陷阱与缺陷》
《C专家编程》
《程序员成长计划》
《UNIX环境高级编程》
《深入理解计算机系统》
《代码大全》
《编程精粹》
《重构》(在读)
 
按照自己的阅读顺序罗列了以上书籍,
基本都全部看完的(重构是正在看,已经看了三分之一)。
 
第零本,忘记名字的书,当时就是按照书中的代码,敲到VC中,看执行结果。这样做了两个多月(下晚自习后去,大一强制自习)。虽然现在看,当时这样做效率很低。有时候敲代码都会敲错,但这个过程教会了自己如何敲程序,如何找到程序中的错误。同时提高了自己敲代码的速度。
第一本《C语言程序设计》(老谭版)是自己当时为了准备考二级时,看的。后来上C语言课时,也对应学校的教材一起翻翻。对于这本书,应该说就是入门的。据说这个上边,关于一些东西讲的有些问题,但是没有去求证过,不得而知。
第二本书是《高质量程序设计》(林锐博士),据说这本书最后的附录中的测试题,有可能出现在应届生的招聘笔试题中,这个可以确认。当时自己毕业时,参加的一个笔试中,就有从哪些题中选出来的,几乎没有变动。这本书,让自己知道了C还有哪些入门后不知道的东西,印象深的是,变量命名,以及预编译,程序优化等一些技巧。由于这本书是讲c/C++,所以只看了一部分,关于c++部分没有看。
这两本书,都已经送人。
 
第三本是《C陷阱与缺陷》,阅读时对里边很多地方印象很深,对自己以后程序设计,起到了一些潜移默化的作用。一本薄薄的100多页的书,不到两天就读完了,后来也陆陆续续回头看过一些。
 
第四本是《C专家编程》,这本书第一次没怎么看懂,,懵懵懂懂。应该说是第一次看的时候,找不出问题。不知道自己哪里不了解,需要了解哪里。以至于就泛泛看看。后来看了《深入理解计算机系统》,又回头将里边关于函数调用,连接等看了看,发现有理解了很多。后来在实际工作中,遇到指针与数组访问时间的困惑,以及指针数组的异同,又在这本书中找到了答案。这本书,适合通读一边后,有困惑的时候回头看看。每一次都会有不一样的收获。
 
第五本是《程序员成长计划》,在自己刚开始实习的时候通过这本书了解了,Linux下编程的一些知识。对于初入编程的人,有很大的帮助。能教会我们很多平时想不到的用法。能够从应用的角度,理解C的编程思想。这里边了解C的回调函数,函数指针,隔离变化,以及使用面向对象的思想编写C程序,介绍了makefile的一些基础东西。讲的都挺实用的。
 
第六本是《UNIX环境高级编程》,在看完《程序员成长计划》后,发现对于Linux编程环境还不是很了解,于是看是看这本书。这本书让自己了解到,C程序在类UNIX环境中,执行的过程。从最初加载code到memory,到C程序的内存分布,code,bss,data,以及库在内存中的放置的位置,解决了很长时间困扰的问题。同时了解了很多在UNIX下的系统调用,了解了多线程以及使用。还有就是关于一些标准,对于Linux下编程感觉有必要了解下。
 
第七本书是《深入理解计算机系统》,这本书让自己对于计算机系统有一个顿悟式的理解。解决了很多以前长期困扰的问题:为什么需要cache;内存溢出为什么可能会导致程序崩溃;函数是如何调用的;malloc了一块内存,在系统是如何保存大小,以及释放时怎么获取大小;为什么需要多核;如何优化多线程下的代码。如果是用C,如果要理解计算机系统组成,这本书是很值得推荐的。
第八本书《代码大全》,这本书是让我们从一个代码写给自己看的成长为一个代码写给大家看的一本书。这本书,以程序构建为主线,实现可读性,降低程序复杂度为目标。展示了如何写出易读代码 ,如何降低复杂度,以让别人更容易阅读,理解,与维护我们的代码。对于步入工作,或者提高程序规范性而言这个本书,是首选。让我们从一个门外汉的角度,看一些专业的编程者,是如何进行他们的工作的。这本书更优秀的一点是,它推荐了很多书,通过阅读这本书,我们就会知道接下来我们将要看什么书。
 
第九本书是《编程精粹》,这本书就是通过《代码大全》的推荐发现的。有人称这本书是“被遗忘的珍珠”。这本书,确实是一本能够帮助我们提高编程质量的书。借助于作者在Mircosoft时office系列的工作,总结了如何编写高质量程序的经验。很多总结都是很实用的,避免了我们自己再去通过无数的实践去总结,也就变相的帮助了我们节省了很多成本(时间,精力,还有心情)。
 
第十本是《重构》,这本书也是《代码大全》推荐的。对于这本书,在编程阶段的优势还没有感触很深,但是对于维护代码已经是获益匪浅。通过书中的一些方法,将程序变得更易阅读更易理解,也更易于维护。书中的一些总结,也能帮助我们在编程过程中,逐步改变代码质量。
 
由于自己是电子方面专业,对于计算机一些书的了解是通过同学介绍的,在初期想看关于C更深入的书,但是无从得知。在网上能找到的就是《C陷阱与缺陷》,《C专家编程》,《C和指针》当时似乎没有加C的就不是应该看得。。
因此,错过了《深入理解计算机系统》,错过了《代码大全》,两本十分优秀的书。直到工作中,才慢慢体会到他们的益出。这两本书,让我明白了什么是程序,如何写程序,深入语言编程,而不是在语言上编程。
从以上罗列的书籍中,发现自己更多的是对于C的工程应用,并没有深入很多人说的算法内容,这里之所以没有提到关于算法的书,因为对于自己专业就有很多理论的东西去琢磨。对于C会先考虑应用与专业的结合。
《代码大全》定义的专业程序员:
第一级:入门级,入门者会利用某语言的基本功能,编写类,子程序,循环和条件语句,会使用语言的许多特性。
第二级:中级,中级的程序员已经度过入门期,能利用多种语言的基本功能,并会得心应手地使用至少一种语言。
第三级:熟练级,熟练级的程序员对语言或环境有着专业技能。
第四级:技术带头人,技术带头人具有第三级的专业才学,并明白编程工作中只有15%用来和计算机交互,其余都是与人打交道的。
 
当然每一个人,都有自己的成长环境,总会有当时的理解与不理解。在学习中没有弯路与捷径,只有收获的多少。这个过程是一个学会学习的过程。在以后的学习中,也会获益更多。

文章评论9条评论)

登录后参与讨论

用户1482372 2013-9-16 09:25

榜样,顶一下

whxmyh_221898651 2013-9-13 14:54

有同感

用户1406868 2013-9-9 21:30

直接上《编译原理》啊。

1989tie_959541171 2013-9-9 20:03

这些书,适合一本本看,慢慢思考。虽然,现在这些书看完了,但是并没有完全理解里边的东西。经历过一些后,应该会再回来看看,收获会更多一些。

1989tie_959541171 2013-9-9 20:00

很多是用到的时候,想要把手头工作做好,然后选择了那些书。书是作者的思想与技巧的总结,通过看它们能够在思想与技巧上与一流的编程者交流。收获的多少,要看我们自己对其理解的多少。更多的时候,如果我们也经历过一些过程,与书中的描述产生思想上共振,或者反思相异的原因。我们能够获取的会更多一些。毕竟书中的知识都是别人的,转化为我们自己的,才是我们自己的。

用户1494077 2013-9-6 08:32

从大学就有学C,但是到现在还只是入门,真心不敢直望博主了

用户1152031 2013-9-5 09:37

博主很爱学习

用户1602177 2013-9-4 16:19

佩服啊~~

用户1033552 2013-9-4 07:47

不错,从事电子的确实该看看C,看完这么多不容易啊。

用户1602177 2013-1-16 10:11

恭贺博主开博大喜~~期待更多分享~~
相关推荐阅读
catch2000 2015-07-19 11:44
信号线小电阻的作用
在一块新的PCB上,测试系统能否正常运行的时候,发现系统上电后没有正常启动。  系统框图如下:   在上电的时刻,CPU A(GPIO电平2.6V)会向串口发送启动日志数据,CPU A启动后,...
catch2000 2015-07-05 17:04
协议设计中ACK机制的影响
在TCP/IP中,延时ACK和Nagle算法。  TCP为了同时处理成块数据(通常为512字节的用户数据)和交互数据(通常用户数据比较少,例如不大于10个字节),采用了延时ACK和Nagle算法...
catch2000 2015-05-23 15:48
话说物联网操作系统
最近好多家都宣布推出自己的物联网操作系统。   1. Google将要在Google I/O大会发布的Brillo; 2. 三星推出的Artik芯片搭载Mentor Graphics的...
catch2000 2015-03-31 23:52
不要采用异或来交换两个变量
在进行两个变量的时候,经常会看到有些书误人子弟的推荐使用异或的方式: 方式一 {   x = x ^ y;   y = x ^ y;   x = x ^ y; } 而不是...
catch2000 2014-10-09 07:28
为什么要测试先行
在产品的研发过程中,测试一项至关重要。不论是软件还是硬件。   软件的测试先行,在研发过程中,就做到质量的保证,因为在出现Bug的时候,容易定位Bug,而且即使是在客户端出现Bug,也能够...
catch2000 2014-10-09 07:26
C语言的面向对象编程(一)
一、前言 对于编程而言,重要的是解决问题的方式,而不是语言本身。面向对象与面向过程是解决问题和思考问题的方式。C语言常说是面向过程开发的语言,因为其缺少很多对于面向对象特性的支持。但,这并不影...
我要评论
9
13
关闭 站长推荐上一条 /2 下一条