程序猿得看的经典好书

 |   

其实想写这篇文章的缘由是因为看了微信公众号菜鸟教程推荐的那篇 编程入门技巧大全,对于它说的一点我非常赞同就是多看好书,多读经典,并对它推荐的经典书籍作了记录,以方便后面可以拜读。

什么叫好书

差书会误人子弟,不但浪费了时间和精力,更可怕的是他会打击人的自信心,会让人越来越怀疑自己的学习能力。而好书虽然好,但是数量却很少,特别是被大家公认很有价值的好书更是少之又少。历经多年时间考验和市场风雨的残酷洗礼而仅存的巨著,更是极其稀少。君不见,中国历史上的文学小说多如牛毛,但仅存的巨著也不过《三国演义》等四本。

编程语言

其实对于编程语言的选择并不是非常重要,纯属个人喜好。因为语言的存在说明有它存在的理由,最起码相对其他语言有优势,所以它才不会被时间所淘汰,当然它肯定同时有它的劣势,这也是毫无疑问的。而对于一个程序猿,只要把它当作一种工具好了,我们需要了解它的优缺点,才能根据不同的应用场景来选择比较适合的开发语言,这样才能立于不败之地。

对于我而言,今后将重心放在C语言家族和Python这两种语言上。C语言家族是因为它够底层,基本上任何的事都可以干,而Python属于高级语言,它强大的库已经无所不能。至于其他像Java之类的,反正基本的语法都学过,如果要用,到时候熟悉一下就好了。

好书推荐

这是我写这篇文章的关键。通常在某一个具体细分的技术领域,自然而然地出现3-5本顶级著作,它们彼此相互配合,形成一个完整的体系。所以对于学习者,只需要认真研读这几本书,就足以登堂入室。下面我列出了它推荐的各个技术领域的“四书五经”。其中有斜体评论是我看过的书,好尴尬。

C

  • C程序设计语言(第2版·新版)
    Brian W.Kernighan“C语言之父” C语言“倚天屠龙双剑”
  • C Primer Plus中文版(第五版)
    C语言“倚天屠龙双剑” Stephen Prata
  • C程序设计(第三版)
    这本书是由清华教授谭浩强老师写的,是我上C语言课程用的教材,讲的知识非常基础,但是又不会深入到细节里面。所以比较适合初学者。
  • C语言大全(第四版)
    HERBERT SCHILDT
  • C语言接口与实现:创建可重用软件的技术
    DAVID R.HANSON
  • C语言参考手册(原书第5版)
    Samuel P.Harbison
  • C程序设计教程
    H.M.Deitel/P.J.Deitel
  • C陷阱与缺陷
    Andrew Koenig

C++

  • C++程序设计语言(特别版)
    c++八大金刚—-Bjarne Stroustrup“C++之父”—-技术权威,用词深峻,思想深远,c++百科全书代表,圣经。
  • C++ Primer (第3版)中文版
    c++八大金刚—Stanley B.Lippman—-纵横书市十数年,c++最佳教本,c++百科全书代表。
  • C++ Primer(第4版)中文版
    c++八大金刚—Stanley B.Lippman
  • C++标准程序库—自修教程与参考手册
    c++八大金刚–Nicolai M.Josuttis—-c++标准库的百科全书
  • C++语言的设计和演化
    c++八大金刚—-Bjarne Stroustrup“C++之父”
  • 深度探索C++对象模型
    c++八大金刚—-Stanley B.Lippman—-揭示c++底层,非常好,非常难。
  • Essential C++中文版
    c++八大金刚—Stanley B.Lippman—-旁枝暂略,主攻核心,轻薄短小,初学者
  • Effective C++中文版 2nd Edition
    c++八大金刚——Scott Meyers—-通过50个编程实例,展示专家经验,行文有趣,深处浅出。
  • More Effective C++中文版
    c++八大金刚——Scott Meyers—-通过35个编程实例,展示专家经验,行文有趣,深处浅出。
  • C++编程思想(第2版)第1卷:标准C++导引
    Bruce Eckel
  • C++编程思想(第2版)第2卷:实用编程技术
    Bruce Eckel
  • C++程序设计
    谭浩强
  • C++ 程序设计教程(第2版)
    钱能
  • C++ Primer Plus(第五版)中文版
    Stephen Prata

小点评:

  • 广博如四库全书The c++ programming language、c++ Primer
  • 深奥如山重水复Inside the c++ object model
  • 程序库大全The c++ standard libray
  • 工程经验之积累Effective c++、More Effective c++、Exceptional c++

Java

  • java编程语言(第三版)
    java四大名著—-James Gosling(java之父)
  • java编程思想(第2版)
    java四大名著—-Bruce Eckel
  • java编程思想(第3版)
    java四大名著—————-Bruce Eckel
  • java 2核心技术 卷I:基础知识(原书第7版)
    java四大名著—–Cay Horstmann
  • java 2核心技术 卷II:高级特性(原书第7版)
    java四大名著—–Cay Horstmann
  • Effective java中文版
    java四大名著——–Joshua Bloch
  • 精通Struts:基于MVC的java Web设计与开发
    孙卫琴
  • 精通Hibernate:java对象持久化技术详解
    孙卫琴
  • Tomcat与java Web开发技术详解
    孙卫琴
  • java与模式
    阎宏

数据结构

  • 数据结构C++语言描述
    Data Structures C++ —- William Ford,William Topp – 刘卫东 沈官林
  • 数据结构算法与应用-C++语言描述
    Sartej Sahni 汪诗林 孙晓东等 —- 机械工业出版社

算法

  • 计算机程序设计艺术
    Donald.E.Knuth———-算法“倚天屠龙”双剑
  • 算法导论
    Thomas H. Cormen——–算法“倚天屠龙”双剑
  • 离散数学及其应用
    Kenneth H.Rosen
  • 具体数学—计算机科学基础
    Donald.E.Knuth

网络

  • 计算机网络第四版中文版
    网络编程三剑客————–Andrew S.Tanenbaum
  • TCP/IP详解3卷本
    Richard Stevens—-网络编程三剑客
  • UNIX网络编程2卷本
    Richard Stevens—-网络编程三剑客
  • 用TCP/IP进行网际互联
    Douglas E. Comer
  • 高级TCP/IP编程
    Jon C. Snader
  • C++网络编程
    Douglas Schmidt
  • UNIX环境高级编程(第2版)
    Richard Stevens

Unix

  • UNIX编程艺术
  • UNIX环境高级编程(英文影印第2版)
    UNIX编程“圣经
  • UNIX网络编程(卷1):连网的APLS:套接字与XTI(第二版)(英文影印版)
  • UNIX网络编程 第1卷:套接口API(第3版)
  • UNIX网络编程 卷I 套接字联网API(英文版 第三版)
  • UNIX网络编程 卷2:进程间通信(第2版)(英文影印版)
  • UNIX网络编程(第2版)第1卷:套接口API和X/Open 传输接口API
  • UNIX网络编程(第二版)第2卷:进程间通信
  • UNIX编程环境
  • UNIX系统编程
  • UNIX环境高级编程
  • Unix技术手册

Linux

  • Linux内核设计与实现
  • Linux内核完全注释
  • LINUX内核分析及编程
  • GNU/Linux 编程指南(第二版)
  • Linux设备驱动程序(第三版)
  • 嵌入式设计及Linux驱动开发指南——基于ARM 9处理器
  • Linux设备驱动程序 第三版(英文影印版)
  • Linux内核设计与实现(第2版)
  • Linux内核设计与实现(英文影印版)(第2版)
  • Linux技术手册

黑客技术

  • 应用密码学(协议算法与C源程序
    Bruce Schneier
  • 网络信息安全的真相
    Bruce Schneier
  • 黑客大曝光:网络安全机密与解决方案(第5版)
    STUART MCCLURE
  • 软件加密技术内幕
    看雪学院
  • 加密与解密——软件保护技术与完全解决方案
    看雪学院
  • 加密与解密(第二版)
    段钢

参考文献

  1. 编程入门技巧大全
技术茶话会
< 前一篇 后一篇 >