`
frank-liu
  • 浏览: 1682096 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

读书和书籍选择问题的讨论:C语言篇

 
阅读更多

前言

    在前面的文章里我提到,要学习某项技术其中相关学习材料的选择非常重要。如果选择错误的材料则损失的不仅仅是钱财。这里,我就针对一些比较好的学习材料做一个收集和整理。希望能够给学习相关技术的人提供一点帮助。这篇文章主要针对C语言学习的相关材料。

基础篇

C programming language(2nd)

    这本书的作者是大名鼎鼎的C语言之父Dennis Ritchie和Brian Kernighan的作品,绝对的权威。只是出书的年代比较早,是1988年的。当年C语言还没有一个完整的国际标准。所以书中的代码写法和独特的风格被人们称为K&R C。C语言真是一个精巧的语言,在这本书里通过区区几十面的内容就把其中的核心内容给涵盖了。这本书作为入门学习来说很快,但是后面的习题还是有相当的难度的。由于年代的原因,新标准的内容在这里没有得到介绍。不管是初学者还是有经验的人,都值得细细品读。

 

C Programming: A Modern Approach, 2nd Edition

     这本书涵盖的内容相对要新一些,里面包含了对新的C99标准内容的讨论。相对来说这本书要厚一点,里面的内容讲的比较详细。后面也有很丰富的习题。大部分难度都不大,作为初学者来说,可以起到很好的锻炼效果。书中每一个小节中都有一系列的问答部分,这里对于一些细节的问题讨论很细致,列出了很多容易忽略或者容易出错的问题。

C Primer Plus (5th Edition) 

    也是讲的非常细致而且浅显易懂的书,作为专门的学习书籍效果不错。书比较厚,有900多面。里面涵盖的内容非常全面也非常细致,都按部就班的来讲,不怕你看不懂。

    这些材料对语言的基本要素介绍,语法、语义、典型用法和结构等都做了一个详尽的介绍。有了这么多好的学习材料,入门学习基本上不用考虑其他的了。

提高篇

 C Traps and Pitfalls

    

    贝尔实验室的牛人作品,列举了C语言编程的一些常见的问题。入门之后再来看其中的内容其实都比较轻松。看这书的时候可以不必正襟危坐,完全可以在一个休闲的时间,翻开看看。里面一个个生动的小问题,在不经意间就让人心领神会。有点像是一份饭后的甜点,美味可口。

Expert C Programming: Deep C Secrets

    想起当年在学校一个人住的时候,一个人坐在笨重的台式机旁边,一边翻读着这本书一边细细的品味里面的细节。这本书可以说是专家级的。对一些问题和细节的分析非常深入。好书如酒,醇香四溢。 

 

Pointers on C

    C语言里面最精彩的地方莫过于指针,这本书对这个最重要而且最麻烦的地方做了深入全面的介绍。当年和一个朋友讨论的时候,他还专门买了这本书和我讲他学习的体会。

C Interfaces and Implementations: Techniques for Creating Reusable Software 

   

    一般来说,当自己刚学完前面的入门篇材料时会有点手痒痒的,总想写出个什么大点的东西来。可是原来的书上讲的问题和示例都是规模比较小。而且在实际的工程中该怎么写代码,该怎么组织头文件,怎么编译和链接代码,这些东西都值得深究。如果想写出真正实用的代码,就好好看看这本书吧。强烈推荐。

 

    还有两本书也比较有意思,这里就不再详细的讨论。一个是C Programming FAQs: Frequently Asked Questions,书上列出了关于C常见的一些问题。配套的网站上还有相关问题的更新。另外一个是The C Puzzle Book。每年国际上会举行一个C语言混乱代码大赛。看谁把代码写得混乱的同时还能实现很牛的功能。如果谁想看看这些比较欢乐的东西,可以参考一下这个。

参考篇

 C: A Reference Manual (5th Edition) 

 

    C语言本身的功能比较精简,如果要实现很多复杂的功能,对一些标准库的使用肯定就必不可少。这是关于C语言标准库和各种语法的参考书。写代码的时候要查找哪些库,要用哪些特性,这里都有详细的介绍。

 

The Standard C Library

    我们在学习某种语言的时候,除了要学会基本语言用法,也要学会怎么灵活运用它。这本书是讲C语言的标准库是怎么设计和实现的。要学好语言就要学习优秀的代码。这里关于C标准库的代码就是一个优秀的学习参考。

    我们实际上用C语言做开发会受到一个平台的影响。典型的针对Windows平台和Unix平台,他们都有各自平台特定的API。针对这两个平台也都有一些优秀的书籍值得深入学习。

Windows平台

Programming Windows Fifth Edition

    当年在一家公司实习,一个哥们抱着这本厚厚的书每天都在认真的啃。Windows底层的hook,消息循环机制这些东西在这里都有详细的介绍。这些是在Windows平台用C语言开发需要理解的基础。

 

Windows via C/C++

    大牛Jeffery Richter的作品。可惜当年培训课程听课的人太多,一直没抢注上他讲的C#系列课程。在Windows平台玩C/C++,这本书是深入讲解的经典。

 

Unix平台

    Unix平台的经典书籍更是丰富。最数得上的应该是Richard Stevens的系列作品了。

Advanced Programming in the UNIX Environment (3rd Edition)

Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition)

UNIX Network Programming, Volume 2: Interprocess Communications, Second Edition

    关于他的这一系列书,可以说是Unix上面编程的必备。原来作者打算出个Unix网络编程的3卷集的。可惜没出完就英年早逝了。天妒英才啊!后面这几本书是一些专家在他原来的基础上修订和增补的新版本。

The Linux Programming Interface: A Linux and UNIX System Programming Handbook

    近几年难得一见的好书。比较厚有1500多面。把它研究透了你刷怪的威力该有多恐怖,只能说谁用谁知道啊。

    在这方面,还有几本很优秀的书。比如说Advanced UNIX Programming (2nd Edition)UNIX Systems Programming: Communication, Concurrency and Threads还有Understanding UNIX/LINUX Programming: A Guide to Theory and Practice

    其中 Advanced UNIX Programming这本书讲的内容和前面的APUE差不多,可以有选择的购买。里面的内容依然讲的很精彩。UNIX System Programming这本书在线程和并发方面讲解的很深入,可以作为补充的材料作为参考。而Understanding UNIX/LINUX Programming这本书可以作为学习Unix环境下面C语言编程的入门教材。它本身是哈佛大学的教材,国内也出了中译版。

后记

    有人说C语言就像是一把快刀,它很小巧很快。用的好,它会像小李飞刀一样的犀利,如果不小心也会割伤你的手。这是自己当年学习C语言的时候看过的或者参考过的一些材料。还有很多好的书由于所知有限就没有一一列出来了。目前这些书基本上在国内都有翻译版或者影印版的。不一定要每一本书都看,根据自己的需要去适当的选择吧。好东西都在这儿了,总不至于要我来喂你吧?我可没那么好心:)

  • 大小: 10.1 KB
  • 大小: 14.1 KB
  • 大小: 10.7 KB
  • 大小: 16.3 KB
  • 大小: 11.5 KB
  • 大小: 22.2 KB
  • 大小: 20 KB
  • 大小: 18 KB
  • 大小: 16.8 KB
  • 大小: 23.4 KB
  • 大小: 15 KB
  • 大小: 17.4 KB
分享到:
评论

相关推荐

    《数据结构与算法分析:C语言描述》读书笔记模板.pptx

    "《数据结构与算法分析:C语言描述》读书笔记模板.pptx" ...《数据结构与算法分析:C语言描述》读书笔记模板.pptx是一本非常有价值的参考书籍,对于计算机专业的学生和研究生来说非常适合阅读和参考。

    C语言经典书籍的读书笔记

    在深入探讨C语言的知识之前,让我们先明确一下“C语言经典书籍”的读书笔记主要涵盖了哪些核心概念。这里主要讨论了变量、内存地址、指针、指针变量、指针与数组的区别、左值和右值以及`const`关键字的用法。 首先...

    学习《高级Linux环境编程》读书笔记(APUE读书笔记)

    5. 标准I/O库:这部分内容是关于C语言中标准I/O库的使用,包括文件流的概念,标准输入输出流stdin、stdout和stderr,标准I/O的缓冲机制,文件流的打开、读写、关闭以及定位操作。还介绍了一些格式化输入输出函数以及...

    超好的ARM&Linux学习资料(菜鸟1年多笔记总结)

    - **《C陷阱与缺陷》读书笔记** - 解析了C语言中常见的陷阱和错误,并提供了避免这些错误的方法。 - **《上交大C++视频教程》读书笔记** - 介绍了C++的基础语法和面向对象编程的概念。 - **《Linux程序设计》读书...

    读书笔记 -《LINUX应用程序开发指南:使用GTK+ GNOME库》- (1)

    《LINUX应用程序开发指南:使用GTK+ GNOME库》是一本深入探讨Linux环境下应用程序设计与开发的专业书籍,尤其关注使用GTK+和GNOME库这一流行工具集。GTK+(GIMP ToolKit)是用于创建图形用户界面的一个开源库,广泛...

    C程序设计题解与上级指导第二版谭浩强

    《C程序设计题解与上级指导》第二版是由谭浩强教授编著的一本经典教材,旨在帮助读者深入理解和掌握C语言编程技能。这本书不仅包含了基础的C语言知识,还提供了大量的实例和习题,旨在提升读者的编程实践能力。 在...

    数据结构之线性表基础与实现c++

    在深入讨论标题“数据结构之线性表基础与实现c++”和描述“数据结构的线性表读书笔记,分别用代码实现了基于数组、malloc、链表、模板类的线性表”中涉及的知识点之前,需要先理解线性表在数据结构中的基本概念。...

    Erlang程序设计(第2版)读书笔记:Erlang安装和基础语法

    Erlang是一种专门用于并发计算的高级编程语言,由瑞典爱立信公司开发。...通过阅读专业的Erlang书籍和实践,开发者可以利用这种语言的独特能力,解决当今和未来软件开发中的一些最具挑战性的问题。

    自己动手写操作系统(含源代码).part2

    你需要什么技术基础 在本书中所用到的计算机语言只有两种:汇编和 C语言。所以只要你具备汇编和 C语言的经验,就可以阅读本书。除对操作系统常识性的了解(比如知道中断、进程等概念)之外,本书不假定读者具备其他...

    自己动手写操作系统(含源代码).part1

    你需要什么技术基础 在本书中所用到的计算机语言只有两种:汇编和 C语言。所以只要你具备汇编和 C语言的经验,就可以阅读本书。除对操作系统常识性的了解(比如知道中断、进程等概念)之外,本书不假定读者具备其他...

    papr-book-club

    帕普图书俱乐部 这是一个读书俱乐部,通读并研究了Paul E. McKenney的书“并行编程难,如果可以,您将如何做?(第二版)”。 一本书也可能因其替代标题而著称,“逗号,这么多,而且合而为一,奇特的标题”和“让...

Global site tag (gtag.js) - Google Analytics