有哪些比较基础的计算机书籍?
我就从一个算法初学者的角度来回答一下吧。
推荐一下「算法与数据结构」从入门到进阶的书单。
一.入门系列
这些书籍通过图片、打比方等通俗易懂的方法来讲述,让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现,但是看过以下这些书对于之后实现算法打下坚实的思维基础。
很适合在闲暇之余拿出来阅读一番。
1.1《啊哈!算法》
阅读链接:
这不过是一本有趣的算法书而已。和别的算法书比较,如果硬要说它有什么特点的话,那就是你能看懂它。
推荐理由:本书中涉及到的数据结构有栈、队列、链表、树、并查集、堆和图等;涉及到的算法有排序、枚举、深度和广度优先搜索、图的遍历,当然还有图论中不可以缺少的四种最短路径算法、两种最小生成树算法、割点与割边算法、二分图的最大匹配算法等
1.2《算法图解》
阅读链接:
推荐理由:这本图解书很容易看懂,不枯燥。书中的前三章将帮助你打下基础,带你学习二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法。
1.3《妙趣横生的算法(C语言实现第2版)》
阅读链接:
推荐理由:理论与实践相结合,旨在帮助读者理解算法,并提高C语言编程能力,培养读者的编程兴趣,并巩固已有的C语言知识。
1.4《趣学算法》
阅读链接:
推荐理由:非常好的一本书,图解多,思路清晰,不仅讲了问题分析算法设计的过程,还讲了如何优化算法,使读者体验算法的奥妙
1.5《大话数据结构》
阅读链接:
推荐理由:文中附有大量插图,适合对大段文字提不起兴趣的朋友。以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。
1.6《学习算法思想修炼编程内功》
慕课网链接:
推荐理由:视频课程,这样精致的课程很难找到第二个,我暂时还没看过比这个课程能更好的进行算法入门了,小吴的PPT制作动画灵感就是来源于此。
二.基础系列
通过基本入门算法书的调教,你已经逐渐体会到了算法的魅力,现在正是时候去阅读基础系列踏入算法的领域!!!
这些书籍需要你费点心思去阅读。
2.1《算法导论中文版》
阅读链接:
排在基础系列第一的位置应该没意见吧:)
推荐理由:本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。
2.2《数据结构与算法Java版》
阅读链接:
适合想通过Java语言来学习算法的小伙伴们。
推荐理由:本书把算法分析与最有效率的Java程序的开发有机地结合起来,深入分析每种算法,内容全面、缜密严格,并细致讲解精心构造程序的方法。
2.3《数据结构与算法:Python语言描述》
阅读链接:
适合想通过Python语言来学习算法的小伙伴们。
推荐理由:本书基于Python语言介绍了数据结构与算法的基本知识,主要内容包括抽象数据类型和Python面向对象程序设计、线性表、字符串、栈和队列、二叉树和树、集合、排序以及算法的基本知识。本书延续问题求解的思路,从解决问题的目标来组织教学内容,注重理论与实践的并用。
2.4《学习JavaScrit数据结构与算法(第2版)》
阅读链接:
适合想通过JavaScrit语言来学习算法的小伙伴们。
推荐理由:本书首先介绍了Javascript语言的基础知识,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、顺序搜索、二分搜索,还介绍了动态规划和贪心算法等常用的高级算法及相关知识。
2.5《数据结构与算法分析:C语言描述(原书第2版)》
阅读链接:
适合想通过C语言来学习算法的小伙伴们。
推荐理由:在本书中,作者更加精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。
2.6《数据结构与算法分析:C描述(第3版)》
阅读链接:
适合想通过C语言来学习算法的小伙伴们。
推荐理由:这是是数据结构和算法分析的经典教材,书中使用主流的程序设计语言C作为具体的实现语言。
三.进阶系列
掌握了一定的数据结构与算法的知识,现在你已经是一名合格的程序员了。但如果你想要参加面试,那就需要阅读以下书籍进行准备了。
这些书籍需要你花费时间和精力去仔细阅读,但为了涨薪,值得!
3.1《剑指Offer:名企面试官精讲典型编程题(第2版)》
阅读链接:
我想,只要是程序员应该都听说过这本书吧,哪怕你没看过。
推荐理由:《剑指Offer:名企面试官精讲典型编程题(第2版)》剖析了80个典型的编程面试题,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。
3.2《算法谜题》
阅读链接:
推荐理由:算法是计算机科学领域最重要的基石之一。算法谜题,就是能够直接或间接地采用算法来加以解决的谜题。求解算法谜题是培养和锻炼算法思维能力一种最有效和最有乐趣的途径。
3.3《编程之法面试和算法心得》
阅读链接:
推荐理由:本书涉及面试、算法、机器学习三个主题。书中的每道编程题目都给出了多种思路、多种解法,不断优化、逐层递进。
四.工作系列
适合已经工作的程序员阅读,可以提升你的思维广度,也可以在面试前翻一翻。
4.1《编程珠玑(第2版?修订版)》
阅读链接:
历史上最伟大的计算机科学著作之一!!!
推荐理由:融深邃思想、实战技术与趣味轶事于一炉的奇书,带你真正领略计算机科学之美。
4.2《程序员实用算法》
阅读链接:
推荐理由:《程序员实用算法》重点关注的是实用、立即可用的代码,并且广泛讨论了可移植性和特定于实现的细节。《程序员实用算法》作者介绍了一些有用但很少被讨论的算法,它们可用于语音查找、日期、B树和索引文件、数据压缩、任意精度的算术、校验和与数据验证,并且还最全面地介绍了查找例程、排序算法和数据结构。
4.3《编程之美》
阅读链接:
推荐理由:这本书收集了约60道算法和程序设计题目,这些题目大部分在近年的笔试、面试中出现过,或者是被微软员工热烈讨论过。作者试图从书中各种有趣的问题出发,引导读者发现问题,分析问题,解决问题,寻找更优的解法。
五.大佬系列
适合大佬们踏入的领域,小吴膜拜中。
5.1《数据挖掘原理与算法》
阅读链接:
推荐理由:内容覆盖面最广,除了所有书都有的内容外,还包括FOIL算法和空间数据挖掘等。
5.2《集体智慧编程》
阅读链接:
推荐理由:非常实用的宝典,看了这本书,如果有工具,可以解决大部分问题。
如何系统学习AI?
人工智能虽然经过了60多年的发展,期间也有众多著名科学家的参与,但是目前人工智能领域的发展依然处在初级阶段,整个人工智能领域还有大量的课题需要攻关,所以目前人工智能领域更关注中高端人才。
要想系统的学习AI一方面需要具备扎实的基础知识,另一方面还需要通过具体的岗位实践(课题研发)来完成,因为目前人工智能领域的很多方向还依然有待完善,所以对于初学者来说选择一个方向并完成入门学习是比较现实的选择。
人工智能的入门学习需要具备以下知识结构:
第一:编程语言。编程语言是学习人工智能的基础内容之一,掌握了编程语言才能完成一系列具体的实验。推荐学习Python语言,一方面原因是Python语言简单易学,实验环境也易于搭建,另一方面原因是Python语言有丰富的库支持。目前Python语言在人工智能领域有广泛的应用,包括机器学习、自然语言处理和计算机视觉等方向。
第二:算法设计基础。目前人工智能的研究内容集中在六个大的方向上,分别是自然语言处理、知识表示、自动推理、机器学习、计算机视觉和机器人学,这些内容都有一个重要的基础就是算法设计,可以说算法设计是研究人工智能的关键所在。学习算法设计可以从基础算法开始,包括递归、概率分析和随机算法、堆排序、快速排序、线性时间排序、二叉树搜索、图算法等内容。
第三:人工智能基础。人工智能基础内容的学习是打开人工智能大门的钥匙,人工智能基础内容包括人工智能发展史、智能体、问题求解、推理与规划、不确定知识与推理、机器学习、感知与行动等几个大的组成部分。
在完成以上内容的学习之后,最好能参加一个人工智能的项目组(课题组),在具体的实践中完成进一步的学习过程。
随着大数据的发展,人工智能也进入了一个全新的发展时代,对于基础薄弱的初学者来说,通过大数据进入人工智能领域也是一个不错的选择。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续在头条写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网方面的问题,也可以咨询我,谢谢!