大家好,我是 Yancy,之前一直从事于互联网教育行业,目前为某互联网公司高级架构师。此次专栏内容我们来了解一下数据结构与算法相关的知识。
众所周知,目前的前端现状是不管大厂还是创业公司,都对于数据结构与算法有了一定的要求,能够了解和熟练使用算法,无疑会给我们在笔试过程中、面试过程中增添不少好印象。特别是随着技术的发展,用户对于产品的性能要求越来越高,网页加载速度慢几百毫秒就可能失去成千上万的用户。所以,拥有良好的算法基础,可以写出高质量的代码逻辑成为了前端工程师的必备技能。
本人深耕于前端六载,见证了前端技术的快速发展。在自己从一名前端小白成长为一名架构师的过程中,接触到了很多前端技术,也领略了部分前端技术的兴衰。在早期,只需要会写静态页面就可以成为一个合格的初级前端工程师,再到后来的动态网页、前端工程化、前端框架、node、可视化、3d 等技术的不断发展,成为前端工程师的门槛在逐步提高。企业面试的标准也是一升再升。
数据结构与算法属于开发人员的内功,不管前端技术怎么变,框架怎么更新,版本怎么迭代,它终究是不变的内容。 这些年,在带领团队成长的过程中,我们始终把算法技术算作一项必需的技术让大家学习和使用,在这个过程中,我本人也是沉淀了大量的知识和最佳实践。我希望可以有更多的前端工程师着重于对算法的修炼,让更多人不会因为前端技术的飞速发展而掉队。同时,写作和分享也是我学习输出的一种方式。
在学习这个专栏的过程中,作者本人并不想单纯依靠知识输出的方式来让大家学习,更希望的是可以让大家快乐的学,并将数据结构与算法形成一整套的知识体系。当然,读代码是让大家为难的一种表达方式,所以作者在代码之后会以图解的方式向大家阐述代码所要表达的意义。如果对于读代码困难的同学不妨转换一下顺序,先看图解,之后跟着图解读代码,相信会起到事半功倍的效果。
学习数据结构与算法并不能快速提升你的编码能力,这点可能会让大家失望,上面也说了,数据结构与算法是开发人员的内功,举个栗子来说,相当于九阳神功一般的存在,不会直接赋予你战斗力,不能让你出手击敌,只会为你打下根基,不会因为 ”武功“ 的转变而丧失了战斗资本。学习它,会让你在各个技术之间穿梭而游刃有余,不用花费大量时间去练习和使用新的技术,不用去东拼西凑的查找第三方库。万法同源,所有的技术都依赖于此,技术的转换也不过是使用方式的转换,根基不变。
学习数据结构与算法会潜移默化的影响你编码的风格和习惯,会在不自觉之间考虑逻辑的运行性能,久而久之,你的编码能力也会有飞跃式的进展,不过这个过程是长期的,不能一蹴而就。
数据结构与算法是一个庞大的知识体系。算法的世界广袤无边,学习一个新的庞大知识体系,不能够分开来零散的学习,更不能填鸭式的学习,我们应该循序渐进,从零开始直到项目实践,动手做起来才是我们程序员应该践行的学习方式。在这个专栏中,每一篇文章内都赋有面试题解供大家学习和实践,希望通过这些案例,能够带领大家领略到算法的奇特魅力,从而让大家爱上学习算法,轻松编程。这正是我这个专栏的价值。
学习的时候也希望大家可以多思考,专栏会从零开始,一点点的带大家学习数据结构与算法的知识体系,希望大家通过我的专栏可以解答下面疑惑:
- 什么是数据结构
- 什么是算法?
- 数据结构和算法的作用?
- 如何把数据结构与算法运用到实际的工作当中?
- 之后我应该如何学习算法相关的知识?
课程的一个亮点
另外,如果你是一个前端团队 leader ,或者前端面试官,那么在现如今的面试过程中,数据结构和算法算是面试中必不可少的一个项目。所以我为大家准备了一些算法题解析,与大家一起讨论。如果你是面试官,这些题目你可以拿来直接在面试中使用;如果你是求职者,那这些题目也必然会让你在面试时有备无患,自如应对。
我希望,通过这个专栏,不管是初级、中级、高级、甚至是对于算法不太感兴趣的架构师和资深工程师,都能够爱上它。
课程安排:
最后,我为大家简单介绍一下课程的具体安排:
这个专栏是从零开始,哪怕你之前对于算法丝毫没接触过也没有关系,只要你懂得编程语言。专栏带你从最简单的数据结构开始,一步步深入到算法的世界。专栏课程分为了 4 大部模块,这 4 大部分为:
- 总述数据结构与算法
- 数据结构详解
- 常见排序和查找算法
- 进阶算法
第一部分: 我们要讲为什么我们要学习数据结构与算法。以及如何评估一个算法的好坏,怎样评估我们自己写的代码好坏。一定要搞明白为什么、可以做什么。只有真正懂了为什么我们要学习它,你才能真正走进它的世界。
第二部分: 我们需要从零开始讲解数据结构,这一部分作者会带领大家一块儿研究每个数据结构的使用场景和使用方法。
剩下的两部分,作者会带领大家从最简单的排序算法开始,一步步提升自己对于算法的认知。逐步提高自己解决问题的能力。相信自己能够想办法来解决问题,真的做到学以致用。如果真的可以将这部分内容融会贯通,恭喜你!你已经掌握了本专栏所有的内容。也期待你能在算法领域开启自己的新篇章。
ok,闲言少叙,让我们开始吧!