数据结构学习笔记(1)
2023-02-10
1. 给自己一个学好数据结构和算法的理由
数据结构和算法,一直是压在我心头的一块巨石。
非科班出身,所以总觉得这东西特别高大上,越是害怕,越是不想学,越是拖延。
从功利的角度来看,学好数据结构和算法有利于找工作,通过技术面。
但是假如不换工作呢?假如就一直做 manager 呢?
数据结构和算法,是否能跳过?
答案是:不行。
2. 为什么要学数据结构和算法?
学好数据结构和算法,是一件有趣且投入回报率高的事情。
曾经有程序员朋友告诉我,TA 学一门新的编程语言的方法就是去 leetcode 刷题,用这种新的语言。
这既是程序员的基本功,也是思维方式的训练。
了解数据结构的特性,可以在业务场景中选择合适的数据结构来达成目标,提升程序性能。
了解常见的算法技巧,可以在遇到相似的问题时用熟悉算法来解决。
3. 数据结构和算法,学到什么程度算够?
假如不是算法工程师,只要掌握常用的技巧和方法就够了。
从面试官的角度来说,考察算法也是考察基本功,并不是要用偏题怪题来难倒对方。
数据结构是工具,算法是通过合适的工具解决特定问题的方法。
学习算法之前,最起码得了解那些常用的数据结构,了解它们的特性和缺陷。
4. 怎么学算法?
常见的推荐资源:
- Problem Solving with Algorithms and Data Structures using Python
- Cracking the Coding Interview
- Leetcode Learning Path
- 古城算法
这些资源我都看过一些内容,但是现在我决定选择的资源是 Labuladong 的博客。
5. 为什么选 labuladong?
- 他致力于把算法的框架思维讲清楚;
- 配套的插件适合辅助刷题;
学习资源不在多,找到适合自己的最重要。在时间有限的情况下,我觉得中文的教程 + 框架思维 + Java 代码最适合我。
所以,这次就不要三心二意了,把这套教程学好,把该练习的题目刷起来,跨越内心的障碍,解决算法这个老大难问题吧~