数据结构与算法之美
入门篇(1讲/共4讲)
01|为什么要学习数据结构和算法
-
要通关大厂面试,数据结构与算法这类基础知识必不可少。
不要忘了,我们学习任何知识都是为了"用"的,是为了解决实际工作问题的。
-
业务开发工程师,你真的愿意做一辈子CRUD boy吗?
虽然平时更多使用现成的接口,但是不需要自己实现,并不代表什么都不需要了解。很多基础框架中,一般都揉和了很多基础数据结构和算法的设计思想。(Spring, RPC框架,消息中间件,Redis等)。掌握数据结构和算法,不管对于阅读框架源码,还是理解其背后的设计思想,都是非常有用的。
-
基础架构研发工程师,写出达到开源水平的框架才是你的目标!
高手之间的竞争其实就在细节。这些细节包括:你用的算法是不是够优化,数据存取的效率是不是够高,内存是不是够节省等等。这些累积起来,决定了一个框架是不是优秀。所以,如果你还不懂数据结构和算法,没听说过大 O 复杂度分析,不知道怎么分析代码的时间复杂度和空间复杂度,那肯定说不过去了,赶紧来补一补吧!
-
对编程还有追求?不想被行业淘汰?那就不要只会写凑合能用的代码!
何为编程能力强?是代码的可读性好、健壮?还是扩展性好?我觉得没法列,也列不全。但是,在我看来,性能好坏起码是其中一个非常重要的评判标准。但是,如果你连代码的时间复杂度、空间复杂度都不知道怎么分析,怎么写出高性能的代码呢?
-
内容小结
我们学习数据结构和算法,并不是为了死记硬背几个知识点。我们的目的是建立时间复杂度、空间复杂度意识,写出高质量的代码,能够设计基础架构,提升编程技能,训练逻辑思维,积攒人生经验,以此获得工作回报,实现你的价值,完善你的人生。所以,不管你是业务开发工程师,还是基础架构工程师;不管你是初入职场的初级工程师,还是工作多年的资深架构师,又或者是想转人工智能、区块链这些热门领域的程序员,数据结构与算法作为计算机的基础知识、核心知识,都是必须要掌握的。掌握了数据结构与算法,你看待问题的深度,解决问题的角度就会完全不一样。因为这样的你,就像是站在巨人的肩膀上,拿着生存利器行走世界。数据结构与算法,会为你的编程之路,甚至人生之路打开一扇通往新世界的大门。
-
课后思考
你为什么要学习数据结构和算法呢?在过去的软件开发中,数据结构和算法在哪些地方帮到了你?
因为在公司写项目的时候,有一些查询需求最简单就是多个循环,遍历查找,但是后面测试的时候发现这个时候的时间超级慢,所以思考是不是需要在数据结构上重新设计一下。 奈何学过的知识已经忘记了,所以打算重拾起来