当前,信息科技技术迅速发展,给人们的生产和生活带来了极大的改变,工业信息化、中国智造、人工智能、移动互联网、O2O(线上到线下)等一系列产业的发展,都需要计算机程序员把各种奇思妙想实现出来,由此衍生了非常多的程序员岗位,吸引了大批人才投身到IT行业中。同时,各种培训机构也顺势推出计算机培训课程,最快一个月就能掌握一门计算机语言,速成程序员。
通过网络课程学习一门新语言看起来挺简单,但真正需要解决实际问题的时候,就感觉无从下手了,无法确定之前的哪个练习和现在的问题是相似的。并且学习过程中的问题总是限定在几个答案中,并不能将其直接套用在实际生活中。只有懂得算法,真正读懂代码、读懂程序的设计,才能称为合格的程序员。
这也是我写这本书的初衷,学习知识不能流于表面,在这个快速变化的时代,我们需要沉着冷静,扎扎实实地练好基本功。比如一个人懂中文、英文、日文,但作文不一定写得好。对于程序员来说也是一样的,学了很多编程语言,但只会课堂上的练习,那是无法应对工作的。那么,到底什么是基本功呢?算法就是程序员的基本功。
我从初中就开始接触编程,并进入了学校的信息科技竞赛小组。所谓信息科技竞赛,就是学习各种算法。说句心里话,算法真的很难,初高中的题目就已经涉及高等数学、机器学习、神经网络等学科,当时的我真的很难理解,直到上了大学才渐渐明白这些概念。
因此,我写这本书的另一个目的,就是希望能够用通俗易懂的语言来引领大家踏入算法的大门。
算法需要一门语言来实现它的功能,那么选择怎样的语言作为载体呢?我思考了一番,最终选择了Python,理由如下。
(1)它是一门脚本语言,和其他语言相比更加简洁、高效。这里说的高效并不是指运行速度快,而是相对其他语言,Python能用更少的代码量实现相同的功能,因此代码可读性更强。
(2)它是一门交互式语言,这意味着我们可以一行一行地执行代码,随时观察代码中的变量,从而更加清楚算法的执行过程。
(3)它背后有着最庞大的免费“代码库”,有足够的资源来实现很多功能,比如画图功能,简单几行代码就能在屏幕上画出线状图,便于我们观察算法的效果。那么我们就能更专注于算法本身,而不是花大量的时间处理结果显示问题。
(4)它被称为“胶水语言”,能够应用在很多地方,如爬虫、数据分析、科学计算、自动化办公、自动化运维、网站开发、多媒体处理、机器学习、深度学习等。正因如此,这门语言在近几年非常火爆。我们在学习算法的过程中,又能增进Python编程技巧,可谓一箭双雕。
算法非常精妙,涉及数学、数据结构、计算机原理等知识,有些地方确实比较难理解,如算法的正确性证明、复杂度计算等。如果用严谨的数学公式去验证和计算,读者可能比较难看懂。因此本书致力于用通俗易懂的语言及简明的图表来阐明算法的原理,让读者从实例中领悟算法的奥妙。
如果读者在学习过程中遇到了什么问题,或者发现书中有错误的地方,都可以通过邮箱
[email protected]联系我。当然,读者也可以在代码仓的issue中反馈,我非常乐意与大家交流,一起学习和讨论。
本书还提供了15节视频课程,读者可扫描下方二维码,根据提示获取。
最后,我想把此书送给我的孩子,他的到来让我有机会重新发现这个世界的美妙,通过他充满好奇的双眼,我重新认识了身边的一切事物。希望他能永远保持对世界的好奇,健康快乐地成长。