小白转行深度学习有哪些必备书籍推荐?

2020-07-31 14:19发布

2条回答
Anonyem
2楼 · 2020-10-09 11:06


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

 

Java基础

入门:

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

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

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

 

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

进阶:

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

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

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

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

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

 

 

JVM虚拟机:

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

 

Java并发技术:

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

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

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

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

JavaWeb:

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

《Spring源码深度解析》

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

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

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

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

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

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

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

 

C/C++:

《TheDesignandEvolutionofC++》 

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

《C++Primer》 

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

《Thinking in C++》 

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

《EffectiveC++》和《MoreEffectiveC++》

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

 

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是了解分布式技术很重要的一个环节

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

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

《大型网站系统与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个设计模式,同样采用场景对话、打比方的方式来讲解,巧妙地让设计模式的理论在实际应用中体现出来,淡化了抽象性。

 

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

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

 

云计算:

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

《Docker技术入门与实战》

《Kubenetes权威指南》

 

软件工程:

《人月神话》

《人件》

《Scrum敏捷软件开发》

 

面试:

《剑指offer》

其他:

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

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

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

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

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

 


相关问题推荐

  • 回答 3

    换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...

  • 回答 42

    十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...

  • 回答 70
    已采纳

    前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...

  • 回答 28

    迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...

  • 回答 9

    python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写

  • 回答 6

    第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...

  • 回答 1

    head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...

  • Python入门简单吗2021-09-23 13:21
    回答 45

    挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了

  • 回答 4

    Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...

  • 回答 8

     相当于 ... 这里不是注释

  • 回答 4

    还有FIXME

  • 回答 3

    python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。

  • 回答 8

    单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:#  单行注释print(hello world)注释可以放在代码上面也可以放在代...

  • 回答 2

    主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...

  • 回答 4

    或许是里面有没被注释的代码

  • 回答 26

    自学的话要看个人情况,可以先在B站找一下视频看一下

没有解决我的问题,去提问