关于IT相关书籍的推荐

为了便于学习,我在网上搜索并整理了一些口碑不错的书籍,便于参考及选择购买。

 

Java基础

入门:

《Head First Java》真正的入门书籍,轻松搞笑,可以通过玩游戏、拼图、解谜题以及一些意想不到的方式与Java交互,再也不怕“从入门到放弃”。

如果你没有学过其他语言亦或是转行到计算机行业,可以先看看这本书。这本书图文并茂条理清晰,非常容易理解,练习也足够,可以让你一口气读很久而不会觉得有什么地方遗漏或者根本没记住。而且这本书可以让你从语言基础开始一直学习到包括线程、网络与分布式程序等项目,最重要的是,你将学会如何像个面向对象开发者一样去思考。

《疯狂java讲义》 可以算是国人原创必读经典了,同样非常适合初学者。讲解内容细致全面,系统通俗,目录划分和查找非常方便,就算完全没有基础也可以学的没有什么压力。同时这本书还考虑了Java的版本升级,非常

《java多线程编程核心技术》 java多线程入门书籍

进阶

《Effective java》 主要讲的是java的一些优化技巧和规范。《Effective java》可以作为其他Java书籍的一个很好的补充,这本书提供了90个条目,每个条目中的规则都反映了最有经验的优秀程序员在实践中常用的一些有益的做法。《Effective Java》将所有提到的最佳实践分为11章,例如并发性、泛型和方法,从而使读者更容易掌握所有的这些内容。谷歌首席架构师的大作,也是一本经典。介绍了在Java编程中78条极具实用价值的经验规则,揭示了应该做什么,不应该做什么才能产生清晰、健壮和高效的代码,并通过例子代码加以进一步说明,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。

《java性能调优指南》Java性能方面可能最好的一本书。深入介绍了JIT编译器、垃圾收集算法、线程同步等复杂问题,讲解了很多应用性能分析以及优化的方法,详尽讲解了Java性能调优的相关知识,帮助读者深入理解Java平台性能的各个方面,适合所有想了解性能优化的Java程序员。

《java编程思想》 java神书 。这本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握

《java核心技术卷I》 这本书在Java领域是和Java编程思想齐名的一本书,很多知识点都讲的特别细, 非常有助于你练好扎实的基础知识。它详细解释了Java核心的各种特性,包括异常处理、接口和lambda表达式。这本书的主要亮点在于内容详实,语言简洁,示例讲解详细。Java核心技术·卷 I的最新版本(第11版本)全面更新,涵盖了Java SE 9、10和11。这本书帮助Java程序员开发编写高度可读和可维护代码的能力,被认为是面向高级程序员的经典教程和参考书。

《java核心技术卷II》 《JAVA核心技术卷2:高级特征》是Java技术权威指南,全面覆盖Java技术的高级主题,包括流与文件、XML、网络、数据库编程、高级Swing、高级 AWT、JavaBean构件、安全、分布式对象、脚本、编译与注解处理等,同时涉及本地化、国际化以及Java SE 6的内容。《JAVA核心技术卷Ⅱ:高级特征》对Java技术的阐述精确到位,叙述方式深入浅出,并包含大量示例,从而帮助读者充分理解Java语言以及Java类库的相关特性。《JAVA核心技术卷2:高级特征》适合软件开发人员、高等院校教师和学生参考。

 

JVM虚拟机:

《深入理解java虚拟机》 java开发者必看

Java并发技术:

《java并发编程实战》本书深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。本书适合Java程序开发人员阅读。

《JAVA并发编程实践》随着多核处理器的普及,使用并发成为构建高性能应用程序的关键。Java 5以及6在开发并发程序中取得了显著的进步,提高了Java虚拟机的性能以及并发类的可伸缩性,并加入了丰富的新并发构建块。在《JAVA并发编程实践》中,这些便利工具的创造者不仅解释了它们究竟如何工作、如何使用,还阐释了创造它们的原因,及其背后的设计模式。

《Java并发编程的艺术》不适合作为java并发入门书籍,需要具备一定的局面基础

《实战Java高并发程序设计》

JavaWeb:

《Spring实战》 适合Spring入门讲解,把Spring的概念,使用方式等内容都讲的比较清楚,也介绍了SpringMVC的部分内容

《Spring源码深度解析》

《Spring MVC学习指南》 是一本SpringMVC 的教程,内容细致,讲解清晰,非常适合Web开发者和想要使用SpringMVC开发基于java的Web应用的读者阅读 出版比较早,所以不太适合现在版本

《Maven实战》 全面了解其实现原理

《How Tomcat Works》 讲解Tomcat基本原理的书籍,很好的通过剖析源码来讲解Tomcat的内部结构和运行机制

《深度剖析Tomcat》本书摄入剖析Tomcat4 和Tomcat 5中的每个组件,并揭示其内部工作原理

《Tomcat架构解析》 主要讲解Tomcat原理和架构, 前提是对java基础,NIO以及设计模式有所了解

《深入分析java web技术内幕》淘宝系技术大牛 是javaWeb的集大成之作 涵盖了大部分java web开发的知识点  主要讲述的javaweb的一些技术基础,关于web架构的内容比较少

《大型网站技术架构》淘宝系技术大牛 李智慧  用非常简单易懂的语言写出了大写web项目架构之美,分别着眼于高可用,高性能,高扩展等方面 讲解了很多设计结构的原则和方法 可用于web架构小白 入门

C/C++:

《 The Design and Evolution of C++》 

首先肯定要读一读Bjarne Stroustrup的The Design and Evolution of C++,了解一下这个语言的历史。接下来就可以看别的书了,但要不停地回头看这本书,看到你不断地学到的新技术是怎么样一点点地被接纳到这个语言中去的。

《C++ Primer》 

第一本书因人而异,基础好一些的,可以看Stanley B. Lippman的C++ Primer,这本书非常地巨大,你打星号的部分可以不要看。基础不太好的,可以看Stanley B.Lippman的Essential C++,这本书份量要轻得多,不过四个C++的范型都讲了,而且讲得非常清楚。

《Thinking in C++》 

第二本书,就应该是Bruce Eckel写的、候捷译的Thinking in C++,这本书技术运用的非常高的境界,但是语言非常平实,只要认真地读,即使基础不行,也一定可以懂。

《 Effective C++》和《More Effective C++》

第三本应该静下心来看看Scott Meyers的Effective C++和More Effective C++,好好地整理一下,在程序设计中应该有哪些注意的事项。可以指导项目运作了,可以编写一切你想做的程序了,可以指出别人看起来不错的代码的大小问题了

 

Python

《Python编程从入门到实践》

《Python核心编程》(第二版)本书是经典的Python[1] 指导书,在第一版的基础上进行了全面升级。全书分为两个部分:第1部分占据了大约三分之二的篇幅,阐释这门语言的“核心”内容,包括基本的概念和语句、语法和风格、Python对象、数字类型、序列类型、映射和集合类型、条件和循环、文件和输入/输出、错误和异常、函数和函数式编程、模块、面向对象编程、执行环境等内容:第2部分则提供了各种高级主题来展示可以使用Python做些什么,包括正则表达式、网络编程、网络客户端编程、多线程编程、图形用户界面编程、Web编程、数据库编程、扩展Python 和一些其他材料。

《Python高级编程》针对具备一定Python基础并希望通过在项目中应用最佳实践和新的开发技术来提升自己的Python开发人员。

《Python数据结构与算法》主要是介绍了如何使用Python实现常用的一些数据结构,例如堆栈、队列、二叉树等等。

《利用Python进行数据分析》从pandas库的数据分析工具开始利用高性能工具对数据进行加载、清理、转换、合并以及重塑;利用matpIotlib创建散点图以及静态或交互式的可视化结果;利用pandas的groupby功能对数据集进行切片、切块和汇总操作;处理各种各样的时间序列数据。

数据库:

《SQL必知必会》 主要讲解sql语句怎么写

《深入浅出MySQL》 适合mysql的学习, 有一定的使用经验后可以看看

《高性能MySql》 mysql领域的经典之作,不但适合数据库管理员(dba)阅读,也适合开发人员参考学习

《MySql技术内幕:innodb存储引擎》

分布式与架构:

《分布式Java应用基础与实践》淘宝大牛的书,主要讲的就是使用rpc来构建分布式的java应用,讲了很多基础的东西

《大型分布式网站架构设计与实践》 更倾向于实践,主要讲的是分布式架构的一些解决方案

《大型网站技术架构》 把大型网站的现代架构进行了一次简单的总结,内容涵盖了个方面,主要讲的是概念

《从Paxos到Zookeeper 分布式一致性原理与实践》比较好的科普了分布式基础知识,也介绍了zookeeper的原理和使用。了解zookeeper是了解分布式技术很重要的一个环节

《深入理解Spring Cloud与微服务构建》

《分布式服务框架原理与实践》专注于分布式服务的原理讲解和对应实战,很好的讲述了分布式服务的基本概念,相关技术,以及解决方案等

《大型网站系统与java中间件开发实践》 阿里系出品 主要讲的是大型网站系统以及使用的相关中间件

《大规模分布式存储系统 原理解析与架构实战》

《亿级流量网站架构核心技术》

《代码大全》

《设计原本》

《大型网站技术架构核心原理与案例分析》

缓存:

《Redis实战》

《Redis设计与实现》

大数据:

《大数据技术原理与应用》 入门Hadoop生态

《Hadoop实战》

《Hadoop权威指南》主要对Hadoop生态中组件进行详细讲解,太详细了

操作系统:

《鸟哥的linux私房菜》 linux 入门经典

《深入理解计算机系统》:讲了很多计算机的基本概念,不局限于操作系统,对计算机基础和操作系统做一个串联,可以解决很多对计算机的疑惑,并且对操作系统有一定理解

《操作系统》 汤小丹

《现代操作系统》

Linux

《linux内核设计与实现》 对操作系统有一定理解,还要有一定C语言开发能力,以及对linux的了解

 《鸟哥的linux私房菜》 linux 入门经典

网络编程:

《java网络编程 第4版》可以系统的学习一下网络的一些概念以及网络编程在java的使用

《UNIX网络编程 第一卷:套接口API》

《Netty权威指南》

计算机网络:

《图解HTTP》《图解TCP/IP》适合入门

《TCP/IP 详解卷一:协议》

《计算机网络:自顶向下方法》从应用层讲到物理层

《计算机网络》

算法:

《算法》java语言描述,算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述

《算法图解》《啊哈算法》适合入门

《算法导论》

《数学之美》

数据结构:

《数据结构与算法 java语言描述》

《大话数据结构》入门类型

设计模式:

《大话设计模式》设计模式体现的是一种思想,思想是指导行为的一切。理解和掌握设计模式,记住23种或者更多的设计场景和解决策略是不够的,更要接受一种思想的熏陶和洗礼。本书通过故事讲述程序如何设计。希望能给渴望了解面向对象程序设计的初学者及困惑、无法复用的代码编程体验者一些好的建议和提示。

HeadFirst 设计模式》 生动有趣,java描述 。 HeadFirst 系列的另一本书《HeadFirst 设计模式》,同样是一本非常适合入门设计模式的书籍,没有之一。这本书介绍 了23 个设计模式,同样采用场景对话、打比方的方式来讲解,巧妙地让设计模式的理论在实际应用中体现出来,淡化了抽象性。

《设计模式解析》 如果你觉得《设计模式》太晦涩难懂,《Head First Design Pattern》又太不技术书籍了,那么这本《设计模式解析》就非常适合你。本书每章结束时都有小结和启发性复习题,可以帮助你更好地了解自学得如何了。而且这本书只介绍了几种比较常用简单的设计模式,因而在学习过程中会很有成就感。

《设计模式:可复用面相对象软件的基础》 学习设计模式,最经典的读物 GOF的 精炼深刻 没有一句废话  对于初学者来说读起来太艰涩,c++描述。 设计模式领域的开山鼻祖,必读,并且值得多读几遍。虽然其中的例子是C++写的,但也很适合Java学习者读。

云计算:

《OpenStack设计与实现》OpenStack是基于KVM技术的一套私有云生态。这本书很好的讲解了OpenStack的一些基本原理,包括各个组件的设计与实现

《Docker技术入门与实战》

《Kubenetes权威指南》

软件工程:

《人月神话》

《人件》

《Scrum敏捷软件开发》

面试:

《剑指offer》

其他:

Git权威指南》 了解底层原理

《重构:改善既有代码的设计》 主要介绍的是代码重构的一些指导思想和最佳实践。 好的代码是重构出来的,而不是一开始就写出来的,除非你的代码不用于任何业务。本书从一个重构实例开始,用代码和实例配合讲解了各种耳熟能详的重构方法,非常到位,总之,是一本程序员必读书目,书中的示例代码都是java写的。

《代码整洁之道》  篇幅不大,但却能让人受益匪浅。书中给了很多方法与规范,遵循它们可以写出整洁的代码。如何为函数,变量,类型准确的命名,如何减少注释做到代码即文档,如何通过良好的编程规范减少错误的代码等等,这些都需要在工作学习中总结经验形成习惯。

刘欣《码农翻身》,书中用一些有趣的故事来讲解操作系统和计算机网络的一些复杂概念,有助于大家理解这部分内容。

现在就整理了这么多,欢迎大家来补充。

发布了26 篇原创文章 · 获赞 10 · 访问量 6507

猜你喜欢

转载自blog.csdn.net/qq_40806970/article/details/99849999