飞龙的程序员书单 – 编程语言

简介: CC程序设计语言丢掉老谭的那本书吧,这本书才是最好的入门书。这本书两百多页,语言简洁,但又覆盖到了C语言的每个方面。然而这本书不仅仅讲解C语言,还附带讲解了二分查找、快速排序、二叉树、哈希表这些重要的数据结构和算法。

C

C程序设计语言

丢掉老谭的那本书吧,这本书才是最好的入门书。这本书两百多页,语言简洁,但又覆盖到了C语言的每个方面。然而这本书不仅仅讲解C语言,还附带讲解了二分查找、快速排序、二叉树、哈希表这些重要的数据结构和算法。甚至为了解释让人头疼的复杂声明,写了一个递归下降的parser。就算你不是拿此书入门的,也可以放在手头当作参考书来用。

C和指针

可以说,选择了C语言就选择了指针,C语言和其它语言不同的一点就是,C语言避不开指针。这本书的确详细讲了高阶指针的复杂逻辑,解释了指针与数组和字符串的关系,但它又不是一本仅仅讲指针的书。Pointer也可以理解为建议或者提示,书中也的确给了一些C语言编程的技巧和提示,这才是此书的本意。

C语言程序设计现代方法

C语言的语法相对简单,所以书非常薄;然而,语法简单就意味着你要手写更多的代码来实现本该由编译器实现的特性,所以在实践中用好C语言极其困难。这是一本相对较新的书。我推荐此书的原因是,它的重点是“现代”的C语言。此书强调现代的软件开发,不再强调作坊式的手工优化。书中有大量的实例,关于如何在实践中用好C语言,让C语言在实际开发中发挥作用,而不是只是停留在考试与刷题上面。

C++

C++最近处在一个不稳定的状态,很多新的特性和标准库设施的加入使得开发者需要重新熟悉和审视一些东西。现代的C++开发,要充分利用新的标准库,尽可能摒弃继承自C的糟粕。所以这方面的书务必要看最新的。

入门

C++ Primer

如果只能选择一本C++入门书,那么绝对是它了。第五版根据C++11标准修订,将STL、string和智能指针在相应的章节提前讲解,并且一开始就默认使用vector和string,符合C++现代编程规范。

完美C++

传说中的Absolute C++,其翻译从第二版直接跨越到了第五版。我记忆尤其深刻的一句话就是,“掌握了变量的使用,就入门了编程”。如果你阅读C++ Primer觉得吃力,不妨看看这本书。

进阶

Effective 系列

所谓“最佳实践”,就是前人在编写代码时过程中思考并总结出的一些东西。我们的时间有限,要想提升项目质量,就要读effective系列的书。尤其是对于没有什么开发经验的应届生,不可不读。

深入理解C++11

此书是C++标准委员会代表和IBM XL编译器中国开发团队共同撰写,全面解析C++11新增特性。想要写出符合现代C++规范的代码,不可不了解C++11的新特性。

C++程序设计原理与实践

这本书不罗列枯燥无味的概念和知识,相反,每个特性都用了简短的例子来说明如何在实战中使用。书中还给出了两个综合的示例,一个是使用词法分析编写一个解析表达式的计算器;另外一个是使用面向对象思想如何构造一个复杂的GUI程序。有趣的是,这本书毫无提及到指针,说明了指针在C++中其实不是必要的。但是总是把对象放在栈上也不方便,现在智能指针出来之后,我们完全可以绕过原生指针了。

参考

C++标准库

此书第一版是2003年出版的,对应C++03,为了迎接C++11,13年来首次再版。由于标准库加入了许多新的设施,此书也从800页增加到了1100多页。

C++程序设计语言

这本书更像是C++语法及特性的参考,拿来入门不太合适。适合放在手头参阅。另外这本书已经有了国际中文版,gotop出版的。

Java

入门

Java编程思想

Java是完全面向对象的,学习Java就要先入为主有对象的概念,这一点来说,这本书做的不错。这本书不会过多提及语言特性,而是顺带讲解面向对象的一些思想,引人深思。

Java核心技术 系列

这两本书的特点是比较简略,并带有同C++的比较,便于C++程序员迁移。卷一除了基本语法之外,还讲解了容器和并发这两个现代编程语言中重要的概念。图形编程部分可以跳读。卷二虽然是高级特性,但是其中的io、文件系统、正则表达式、网络、jdbc也是日常编程中非常常用的组件,不可不看。个人认为这套书的组织比较混乱,如果把第二本的那三章重要的部分放进第一本,第一本的图形编程放到第二版,会更好一点。

进阶

Effective java

深入理解Java虚拟机

要想多快好省编写java程序,不可不了解jvm。

Java特种兵(上册)

由于是进阶书,这本书并不会详细讲解每一个知识点,而是对实际开发中常用的组件和一些坑做了梳理。另外此书还对编程中一些共性的问题,比如架构和实际开发的体会做了一些阐述。

写给大忙人看的Java SE 8

由于java8推出之时,java核心技术没有及时更新,这本书算是对java核心技术的很好的补充。

参考

Java技术手册

C#

入门

C#入门经典

C# 高级编程

C# 图解教程

精通 C#

别被书名吓到,这四本其实都是入门用的书籍。挑一本看就行了,或者你喜欢看MSDN的编程指南也可以。

进阶

深入理解C#

这本书是介绍c#新特性的书,按照历史发展顺序,从.net1.0到5.0对新特性做了解释和使用示例。

CLR via C#

.net平台之于c#相当于jvm之于java,重要性不言而喻。此书是深入了解c#底层.net平台的最佳读物。

Effective 系列

参考

这部分的书籍不做推荐,因为MSDN的.net类库参考已经很翔实了,可以直接去翻阅。

Python

说实话,Python的免费教程很多,而且质量也不错,涵盖的范围远比书籍要宽,更新也比较及时。这里我只是把看过而且觉得不错的书列出来。

Python核心编程

Python基础教程

“笨办法”学Python

这本书是开放的,在很多文档站上都可以找到,比如这里

Effective Python

相关文章
|
11月前
|
存储 人工智能 算法
【C语言】自学终极笔记
【C语言】自学终极笔记
127 0
|
11月前
|
JavaScript 前端开发 算法
如何快速进行自学一门编程?
如何快速进行自学一门编程?
182 0
|
Java 程序员 编译器
C语言程序设计教程任务;初步认识C语言,携君之手,步入编程之路。
C语言程序设计教程任务;初步认识C语言,携君之手,步入编程之路。
138 0
C语言程序设计教程任务;初步认识C语言,携君之手,步入编程之路。
|
编译器 开发工具 C语言
震惊!三更编程的第一堂C语言入门课程~
震惊!三更编程的第一堂C语言入门课程~
270 0
震惊!三更编程的第一堂C语言入门课程~
|
算法 C语言
c语言程序设计 编程题
8.求年龄:有 5 个人坐在一起,问第 5 个人多少岁,他说比第 4 个人大 2 岁。问 第 4 个人多少岁,他说比第 3 个人大 2 岁。问第 3 个人多少岁,他说比第 2 个 人大 2 岁。问第 2 个人多少岁,他说比第 1 个人大 2 岁。最后问第 1 个人,他 说是 10 岁。请问第 5 个人多大? #include <stdio.h> int age(int n) { if (n == 1) return 10; return age(n - 1) + 2; } void main() { printf("%d", age(5)); } 9.猴子吃桃问题:猴子第一天摘下若干个
119 0
|
机器学习/深度学习 C语言
c语言程序设计 编程题
20.求数字:输出 100(含 100)-200(含 200)以内的满足以下条件的数,条件 为:这个数与 3 的和是 5 的倍数,与 3 的差是 6 的倍数,输出这样的数。 #include <stdio.h> void main() { int i; for (i = 100; i <= 200; i++) if ((i + 3) % 5 == 0 && (i - 3) % 6 == 0) printf("%d,", i); } 21.求数字:找出乘积为 399 的两个相邻奇数。 #include <stdio.h> void main() { int i = 1; whil
162 0
|
JavaScript 前端开发 Java
5 款让我又爱又恨的编程语言!
5 款让我又爱又恨的编程语言!
235 0
5 款让我又爱又恨的编程语言!
|
Web App开发 算法 小程序
帮我妹一 jio 踹开了 C 语言的大门,从此学习的路上不再迷茫不再彷徨(史上最强 C语言学习路线)
帮我妹一 jio 踹开了 C 语言的大门,从此学习的路上不再迷茫不再彷徨(史上最强 C语言学习路线)
153 0
帮我妹一 jio 踹开了 C 语言的大门,从此学习的路上不再迷茫不再彷徨(史上最强 C语言学习路线)
|
开发框架 安全 程序员
我编程,我快乐,献给所有的程序员
  最近读了《我编程,我快乐》,里面有一些观点给我了不少启发,特别是一些职业规划的方面的内容。   我编程,我快乐,献给所有的程序员   如果生活的大部分时间都被工作占据着,那么热爱工作就是热爱生活。 比起那些枯燥的简单任务,充满挑战、有驱动力、有回报的工作更能让你有动力在清晨从温暖的被窝里爬起来。工作做得好意味着你在充分发挥着才能。相反,如果工作做得不好,就证明你大部分时间都只能在懊悔,懊悔自己碌碌无为。
196 0
|
前端开发 JavaScript Java
如果编程语言是一门武功绝学
如果编程语言是一门武功绝学
194 0