飞龙的程序员书单 – 编程语言
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++
- More Effective C++
- Effective STL
- Effective Modern C++
所谓“最佳实践”,就是前人在编写代码时过程中思考并总结出的一些东西。我们的时间有限,要想提升项目质量,就要读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核心技术 系列
- 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 系列
- Effective C#
- More Effective C#
参考
这部分的书籍不做推荐,因为MSDN的.net类库参考已经很翔实了,可以直接去翻阅。
Python
说实话,Python的免费教程很多,而且质量也不错,涵盖的范围远比书籍要宽,更新也比较及时。这里我只是把看过而且觉得不错的书列出来。
Python核心编程
Python基础教程
“笨办法”学Python
这本书是开放的,在很多文档站上都可以找到,比如这里。
Effective Python
飞龙的程序员书单 – 编程语言相关推荐
- 飞龙的程序员书单 – 思想、工程、架构、职业发展
思想 编程珠玑 编程珠玑,字字珠玑.这本书并不单纯讲解算法,而是由一系列实际问题切入,引导读者理解这些问题并学会解决方法,使用现有的算法,或者程序设计技巧解决问题.本书的特色是通过一些精心设计的有趣而 ...
- 飞龙的程序员书单 – 其它
逆向 加密与解密 C++反汇编与逆向分析技术揭秘 微软.NET程序的加密与解密 IDA Pro权威指南 Windows PE权威指南 Android软件安全与逆向分析 Android安全攻防权威指南 ...
- 飞龙的程序员书单 – 前端
作为一个主打后端的开发者,还是应该了解一下前端的.这里只是列出一些涉及到html.css和js的书,框架还是直接读文档比较好,这些东西更新迅速,书一旦出版就过时了. html 入门 HTML5与CSS ...
- 飞龙的程序员书单 – Linux
关于Linux或者Unix的书单罗列在这里.之所以不把他们划分进OS里面,是因为Linux已然成为了一个生态,并不是操作系统那么简单. 使用 鸟哥的Linux私房菜.基础学习篇 鸟哥的Linux私房菜 ...
- 飞龙的程序员书单 - 组原、OS、网络
组原 深入理解计算机系统 简单介绍一下,这本书包括组成原理和操作系统两大部分知识.第二.三章学完之后,逆向就算是入门了.国内的教材很少有拿汇编和C语言对比教学的书籍,这样的教学方法很实用.因为现在汇编 ...
- 飞龙的程序员书单 – 数据结构、算法
入门向 啊哈!算法 这本书真心简洁易懂,dijkstra我是看课本怎么看也看不懂,最后看这本书才懂的.真心推荐. 大话数据结构 工程向 算法 Java实现 C实现 C++实现 普林斯顿的算法课程教材, ...
- 顶级程序员书单系列二:《编码-隐匿在计算机软硬件背后的语言》
浅谈这本书 如果让我做一个排名,我想这本书,可以在我的顶级程序员书单系列排名第8-10位.这本书讲述了从最简单的加法器到触发器到存储器到一台计算机demo的搭建,整本书的语言都十分通俗易懂,作者简直就 ...
- java程序员_哪些书是不可错过的?Java程序员书单分享
作为后浪程序员,我们要精通一门编程语言,最好的途径就是看书,而这个时候读什么书就变成了最关键的了,靠谱的书籍无疑可以让我们少走弯路事半功倍,今天就来给大家推荐一些Java工程师必备书籍. 入门篇&l ...
- 一名不务正业的程序员书单【持续更新】
最近没读书了 2022年度汇总 待读... 2021年度汇总 <极简主义> <在路上> <医学的温度> <考试脑科学> <未来站在中国这一边> ...
最新文章
- Android自定义spinner下拉框实现的实现
- delphi项目文件说明
- jupyter 安装目录Table of Contents
- 相关与卷积、各种误差
- Spring实例化Bean
- ajax与java交互实例,1、Ajax与Java通过GET方式交互
- 依赖于boodtrap3的插件推荐以及bootrap发展前景
- 把Sublime Text3从windwos移到ubunut上
- 谷歌死磕亚马逊,CES 舞台上的语音入口争夺战
- Win7平台下配置Sublime Text2 的C++编译环境
- 简单的shell命令
- kubernetes视频教程笔记 (38)-高可用的K8S构建-系统初始化
- Java面试题及答案整理(2021最新版)
- 火狐浏览器历史版本下载地址
- java一定时间间隔的定时任务_详解java定时任务
- 如何在testbed里面给系统函数打桩(单元测试)
- 修复Word打开文档默认显示两页的问题
- 【原创】PC微信逆向分析の强制输出微信调式信息
- ATOM Z3000 家族整理之基本信息(一) V2.0版
- python打砖块游戏程序设计报告_打砖块游戏课程设计报告
热门文章
- python支付系统_GitHub - zhuf/alipay_python: 支付宝 alipay python接口,支持担保交易,即时到帐和自动发货接口...
- java 熔断_熔断理解 - THISISPAN - 博客园
- do…while 第二讲
- ios 请在设置中打开相机权限_在iOS中请求摄像头权限对话框启动(Prime权限)
- python牛顿法解非线性方程组_萌新请教牛顿法求解三元非线性方程组
- android 6.0电池优化,Android 优化——电量优化
- Pentium的指令系统(1)——Pentium的寻址方式
- 线程实现的方式、多线程模型
- Prism 的 TabControl 导航
- Tomcat是如何将请求一步步传递到我们编写的HttpServlet类中的