从入门到永不言弃——IT技术经典好书盘点(100多本书吐血推荐,人人都可以当程序员)
创作立场声明:6000余字,100余本书整理不易,希望各位点赞收藏评论一条龙支持!
水平有限,请大神们批评指正!!!
写在前面
现在这样一个互联网+的时代,各行各业可能或多或少都需要一些IT技术支撑,其实计算机的一些基本原理与应用并不是难如上青天,“XXX从入门到放弃”也只是专业程序员的日常吐槽而已,本人虽然现在只是从事与IT有些交叉的工作,但作为一枚计算机科学与技术专业的本硕,对于经典书籍还是有一些了解,今天推荐的书目对于非专业人士或者想要从事该方面的人士应该会有帮助。
之前撰写的文章《十个精品IT技术学习APP推荐(IT小白的自学之路)》获得了1K+的热度,可以配合本文食用,有需要的也可以浏览一下。
本文主要从以下几个方面推荐相关书籍。
一、计算机技术基础部分
技术基础部分,个人认为每个人都应该学习一下,因为只有这样你才会了解计算机是怎样工作的,即使只是浅尝辄止的学习,也会对你的工作发展有帮助,至于有哪些是属于基础部分呢?当然是以计算机组成原理、数据结构、操作系统、计算机网络为核心了,为什么这么说呢?因为本人考研时计算机专业的专业课全国统考这四门。。。当时复习真的是心力憔悴,付出了比高数还多的时间。。。
(一)C语言
入门当然要学习一门语言了,可能有人觉着C语言比较老了,现在大学的入门语言各式各样,以Python为主,虽比C语言简单,但是C语言更接近底层,只要C语言学扎实了,其它的大部分编程语言再学习就会顺利得多。
1. C程序设计语言
经典中的经典,几十年来都是很多学生的入门书籍,如果真的把这本书研究明白,那编程的基础就相当扎实了。
2. C程序设计
想了一想还是把这本书列上了,毕竟是国内C语言书籍的权威,也是当时很多高校的教材,但考研复习的时候仔细阅读发现里面还是有些不太严谨的地方,不知道后来的版本有没有修正。
3. C和指针
建议初学者在有一定编程实践的基础上再看这本书,C语言中指针被认为是最难的,上研究生的时候专门买了一本,看过之后对C语言的认识真的又提高了一个层次,虽然之后学习和工作也没用上
4. C陷阱与缺陷
初学者也可以先跳过这本,这本书整理了大量C语言编程可能出现的问题,帮你跳过C语言的一些“陷阱”。
5. C++ Primer Plus
基本掌握了C语言之后,可以进一步攻下C++,C++就属于半面向对象的语言了,不严谨的说就是在C语言的基础上加了“类”,这本书写的简单详细,可读性非常强。
6. C++ Primer
这本书同样是介绍C++的,但是相对较难,对于自己水平比较有自信的同学可以看看这本。
(二)计算机组成原理
掌握了一门基础语言后,我们应该学习一下计算机到底是怎么构成的。
7. 计算机组成原理
在这本书里你会看到一些经常听到的概念,比如说摩尔定律、X86、ARM、指令集等等,也会了解到中国在这方面的差距,加油!
8. 深入理解计算机系统
如果有余力,这本书可以作为上一本的补充。
9. 汇编语言:基于x86处理器
计算机组成原理和计算机接口方面的知识学习过程中可能需要汇编语言的帮助,这本书可以作为补充。
(三)操作系统
10.现代操作系统
想知道你的xp、你的win7、你的win10、你的macOS、你的Linux是怎么工作的么?来学习操作系统的知识吧,你会知道啥是线程和进程,文件和内存是如何管理的。对于操作系统,这一本足矣。
这本书看完后,如果你想专门研究windows、Linux或Unix等等,可以再专门找针对性较强的看。
(四)计算机网络
现在通信行业也逐渐IP化,所以学习计算机网络是非常有意义的。
11.计算机网络
没想到已经第7版了,国内经典权威教材,我考研时的参考教材,当时用的五版,内容很全面,但就是自己读的时候觉着不太人性化。。。
12. 计算机网络:自顶向下方法
这本书内容组织的很有意思,记忆中和谢希仁编写的完全是相反的套路,但是内容很详细易读。
13. 图解TCP/IP
这本书是工作后在单位图书馆发现的,然后就通读了一遍,觉着如果所有的书都这么写,那学习知识就方便多了。。。一个日本人编写的,很用心。
(五)数据结构
计算机是如何存储和组织数据的呢?那就需要数据结构的知识来解释了。
14. 数据结构
严蔚敏奶奶必须有牌面,经典教材,但是和谭浩强的一样,考研时候仔细看时,总觉着有小部分内容怪怪的。
15. 数据结构与算法分析
经典教材,但是包括了算法分析与设计的部分内容。
需要说明一下:数据结构的内容是需要一门语言作为基础的,这里的两本都是C语言描述的。
(六)算法设计
想知道张大妈是如何给你计算金币的么?想知道张大妈是根据什么给你推送内容的么?那就先来了解一下算法设计的内容吧。
16.算法导论
想要研究算法,那么这本书是绕不开的,被称为算法圣经 非常厚实,要有一定心理准备!学习时可以把算法的实现作为语言编程的练习,这样会更有趣。
17.算法
这本书是以java语言描述的算法设计书。
(七)编译原理
绝大部分软件是使用高级程序设计语言来编写的,比如C、java等。用这些语言编写的软件必须经过编译器的编译,才能转换为可以在计算机上运行的机器代码。
18.编译原理
这本被称为龙书。。。本科时候学校竟然不开设这门课程,让我匪夷所思。。。
对于只是想掌握计算机的基础理论或是想了解一下,那么你的学习可以到此为止了。
如果之后想继续深造,就可以根据自己将来的发展方向或者工作需求来选择学习内容了,计算机的具体方向很多,很难讲完全,本文以最常见也最实用的web开发、移动开发等方向为主。
二、前端开发
前段开发主要指web前端开发,简而言之就是大家看到的网页界面,属于人机交互,这方面开发起来相对来说简单,主流模式就是HTML+CSS +JavaScript。
(一)HTML
HTML称为超文本标记语言,是一种标识性的语言。也就是网页上的文字图片都是按照这个标记语言来的,所以前段开发必须熟知html,学会了它,作为小白你也能看懂网页了!
19. Head First HTML与CSS
这本书对于初学者来说讲的比较详细,不过html相对来说是比较简单的,另外书中包含了CSS内容。
20.HTML5权威指南
现在html5的应用越来越多,功能也非常强大,所以也应该学习一下。
(二)CSS
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
CSS其实就是样式表,规定的一些样式集合,对于它的学习难度也不大,经典书籍有下面三本:
21.CSS权威指南
22.CSS揭秘
23.图解CSS3:核心技术与案例实战
(三) JavaScript
JavaScript是一个脚本语言,和java没有直接联系,通过它可以实现很多网页前端动态功能。
24. JavaScript高级程序设计
这本被称为红宝书,讲的很详细,可以作为入门书籍,JavaScript作为脚本语言,相对C语言来说人性化很多。
25. JavaScript语言精粹
这是一本提高型的书,也几乎是前端工程师人手一本,或者电子的
26.锋利的 jQuery
jQuery是 JavaScript的一个类库,可以更方便的实现一些功能,你可以把它看成一个插件,用了之后真的爽到爆!
三、后端开发
后端开发技术主要完成业务逻辑的处理过程,涉及到存储管理、安全管理、并发处理和其他资源调度方面的内容。
后端开发相对前端就复杂多了,桌面应用开发也类似,这里就一起总结了,说的肯定不全面,望大牛们别笑话
(一)语言学习
有多种编程语言可以从事后端开发,包括Java、Python、PHP、C#、Go等,这里主要说一下java和C#,python留在后面人工智能领域说,在我心目中高大上的C++前面已经推了两本了,这里也省去,至于其它比较飘逸的比如Ruby、Node.js等等个人实在不了解,也是比较小众。
另外,PHP是世界上最好的编程语言
27. java核心技术卷I
28. java核心技术卷2
java语言进阶可以选择以下三本:
29. java编程思想
30.Effective java
31.深入理解java虚拟机
C#虽然主要应用在windows领域,但还是有相当的占有量,而且现在在游戏开发方面需求量也很高。
32. C#高级编程
这个厚厚的书可以说面面俱到了,已经.net core2.0了,想起来本科毕设跟.net和sqlserver死扛了几个月。。。后来看看那时候写的真是一坨屎
33. C#经典实例
34. C#并发编程经典实例
(二)Linux
后端开发来说很多情况都绕不开Linux系统,因为windows。。。你懂得。。。
35.鸟哥的Linux私房菜 :基础学习篇
实在太经典了,经典到出圈。。。口语化的表述、全面的内容,适合每一个0基础的人。不管干什么,想了解linux系统,这都是一本特别好的入门书!
36.鸟哥的Linux私房菜:服务器架设篇
同样是鸟哥出品,主要讲服务器架设的,想搞后端,服务器当然也得会玩。
37.Unix/Linux编程实践教程
学完基础就应该来实践一下,C语言基础即可。
38.UNIX环境高级编程
39.Unix/ Linux系统管理技术手册
开发也需要懂运维的知识啊,这本书教你如何管理linux。
40.深入理解LINUX内核
如果对于linux的目的不仅仅是应用,那就来理解一下linux的内核吧。
(三)网络编程
后端开发也好,桌面应用和游戏开发也好,当然都绕不开网络编程了,有了基础部分计算机网络知识后,还需要进一步深入学习。
41.TCP/IP网络编程
这是韩国人编写的书,例子很详细。
42.TCP/IP详解 卷1:协议
经典书目,不解释,有需要再看卷2和卷3。
43.UNIX网络编程
这本书读透了,你的socket就没问题了。。。
后端、桌面和游戏等的开发都离不开数据库,这部分放在后面单独说。
四、移动开发
移动端开发涉及到Android开发、iOS开发以及各种移动端设备所需要的特定开发,Android开发可以采用Java或kotlin,iOS开发可以采用OC或swift,另外移动端开发往往也需要掌握JavaScript语言。
(一)Android开发
学习完java语言之后,可以动手实践android的开发了,当然可以选择不同的开发环境。
44.疯狂android讲义
45.android编程权威指南
46.Android高级编程
以上书籍加上网上的资料基本可以编写小程序了,但是如果需要进阶成大神,那还有很多东西要学习,这里推荐几本只是进阶书籍:
47. 构建安全的Android App
48.深入理解Android
49.Android开发艺术探索
50.Android 源码设计模式解析与实战
51.Android群英传
(二)IOS开发
IOS开发使用Objective-C居多,所以首先需要学习这门语言。
52.Objective-C程序设计
53.Objective-C编程之道
54.Objective-C高级编程
基础打好之后就可以进行应用程序的开发了:
55.iOS开发指南
56.精通iOS开发
57.高性能iOS应用开发
58.iOS网络高级编程
59.编写高质量代码:改善Objective-C程序的61个建议
60. Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法
五、数据库应用开发
其实无论是后端开发还是移动开发,都是需要与数据库打交道的,当然也有专心于数据库开发的攻城狮!数据库的种类很多,这里还是说几个主流的。
(一)数据库基础
首先应该认识数据库的基本概念以及SQL语言的基本应用。
61.数据库系统概念
62.数据库系统:设计、实现与管理
想当年看的版本还是绿皮,没想到变化这么大。。。
63.SQL必知必会
64.SQL基础教程
(二)MySQL
MySQL是一个开源的数据库,是自我毕业以来发展的风生水起的一个数据库
65.MySQL必知必会
66. MySQL基础教程
67.高性能MySQL
68. MySQL管理之道:性能调优、高可用与监控
69.MySQL技术内幕
(三)Oracle
甲骨文公司出品,大型项目的首选,市场占有率高。
70.Oracle PL/SQL必知必会
71.Oracle PL/SQL程序设计
72.Oracle Database 12cR2性能调整与优化
73.Oracle性能诊断艺术
(四)SQLServer
微软的数据库管理系统,我上学时候的国内数据库教材基本都是以SQLServer为例讲解,适合中型项目。
74.MYSQL必知必会
75. SQL经典实例
76. 深入SQL Server 2016高可用
其实对于数据库的应用,官方文档就是最好的学习资料了!
六、人工智能
人工智能现在是大热领域,计算机专业毕业从事人工智能方向是个好的选择,因为算法是人工智能的核心,包括深度学习、机器学习等等。
(一)Python语言
python在人工智能领域太重要了,所以学习python是人工智能的必修课。
77.Python编程 从入门到实践
ptyhon入门的经典书目。
78.Python基础教程
79.Python学习手册
80.流畅的Python
python的基础打好之后,真的可以在很多领域发光发热,但是人工智能无疑是最适合的。
(二)人工智能科普
主要简单了解一下人工智能,通过一下两本书粗略的读一下就足够了。
81.人工智能
82.人工智能简史
(三)深度学习
83.深度学习
这本书被称为AI圣经,明星中的明星书籍。
84.深度学习入门 基于Python的理论与实现
85.深度学习精要 基于R语言
86.TensorFlow技术解析与实战
87.深度学习之TensorFlow:入门、原理与进阶实战
(四) 机器学习
88.机器学习导论
89.Python机器学习基础教程
90.机器学习实战
其它的包括人工智能的各种算法,以及在图像、语音、自然语言等处理方面专业书籍这里就不列举了。
七、大数据开发
大数据也是热门方向,个别应用和人工智能会有交集,语言学习方面java、python还是很重要,另外大数据方面是必须和linux死扛了,按照之前推荐的书籍学习就可以了,这里推荐的都是经典的大数据开发基础读物。
(一)Hadoop
91.Hadoop权威指南
上研究生时期,这本书一直摆在同门的桌子上,估计都快翻烂了。。。
92.Hadoop数据分析
93.Hadoop技术内幕
hadoop的书不推荐更多了,最重要的是上源码啊,混迹于论坛学习效率更高。
(二)Spark
94.Spark权威指南
Spark创始人亲自编写,不能在权威了。
95.Spark快速大数据分析
(三)Hive
96.Hive编程指南
97.Hive实战
八、其它
可能有些遗漏,或者不太好分类的,这里补充一下。
98.编程珠玑
很薄的一本书,内容主要讲的是方法,记得当时学校图书馆里借的英文版,看起来也没有太大障碍。
99.计算机程序的构造和解释
本书主要从理论上讲解计算机程序的创建、 执行和研究,在有一定编程基础上更好的理解程序的构造。
100.重构:改善既有代码的设计
高级的程序员考虑的不仅仅是有效的实现,而是代码的改善重构问题。
101.软件工程
上学的时候软件工程课感觉啥都没听,后来想想可能是站位太低了。
102.人月神话
103.黑客与画家
上学时看了一部分电子版,很有趣!
104.计算机程序设计艺术
史诗性的著作,不解释。
105.颈椎腰椎康复书
没事,最后就是想皮一下
结语
计算机相关领域还有太多,比如说嵌入式硬件方面、网络安全方面等等,这里就不一一说了,列出的书籍大部分也都是基础,或者说是工具,真正提高水平还是需要实战+混论坛。
编程没想象的容易,也没想象的难,关键那种《XXX从入门到精通》之类的大部分书还是少看吧,我翻过几本,感觉按照那个套路下来技术基础不会扎实,想体验一下流程是可以的,但真正想从事相关行业还得从头学。
码字不易,希望各位值友点赞收藏加评论
熊猫玛奇朵
校验提示文案
beihai
校验提示文案
只允许修改一次昵称
校验提示文案
跑步神经
校验提示文案
格格蕉蕉
校验提示文案
无版图
校验提示文案
好想要新电话
校验提示文案
工厂弟弟
校验提示文案
一个人的城围
校验提示文案
丿最美灬毒药
校验提示文案
xiaoming1888
校验提示文案
胖叔很拉风
校验提示文案
阳光下De猫
校验提示文案
小猪萌萌
校验提示文案
Guishelley
校验提示文案
把蜡笔小新收了
校验提示文案
龙猫咪
校验提示文案
野火烤地瓜
校验提示文案
恐龙蛋炒饭
校验提示文案
西瓜love汁
校验提示文案
yw_ly
校验提示文案
simaqs
校验提示文案
剁手族阿K
校验提示文案
耀哥哥的小理想
校验提示文案
值友9025584854
校验提示文案
inoooo
校验提示文案
Renus
校验提示文案
米诺君君君
校验提示文案
挚友值友123
校验提示文案
宜红工夫茶
校验提示文案
ScottFang
校验提示文案
simple拉拉
校验提示文案
专治违章开车
校验提示文案
tolery
校验提示文案
matrix_vx
校验提示文案
好想要新电话
校验提示文案
18岁了还没开写轮眼
校验提示文案
浮生行简
校验提示文案
值友8553463038
校验提示文案
啊捏梁
校验提示文案