学算法?浪费那时间干什么,屁用没有.......
我已经不止一次在网上看到程序员老哥说学算法没用,学算法没用,甚至于我现实中的一个工作了七八面的朋友也和我说:“简单了解算法就行,不用浪费时间,在工作中有个屁用”。但也有人说你要做资深码家,需要设计一个小系统怎么做,甚至一般的后端码农在平常工作中分析简单的问题,都需要算法能力。
那今天我就来详细聊一聊,为什么要学习数据结构和算法。首先我先问你个问题,作为一名开发工程师,你真的愿意做一辈子的 CRUD boy 吗?
我知道,大部分的程序员整天做的事情就是增删改查,在所谓的“业务开发”工作里,更多的是利用已经封装好的现成的接口、类库来堆砌或者翻译业务逻辑,这其中很少需要数据结构或者算法之类的知识。
但是,不需要自己实现,并不代表什么都不需要了解。
举个例子,如果你不知道这些类库背后的原理,不懂得时间、空间复杂度分析,那你又如何有信心能用好、用对它们?存储某个业务数据的时候,你如何知道应该用 ArrayList,还是 LinkedList 呢?调用了某个函数之后,你又该如何评估代码的性能和资源的消耗?
初级程序员才比招式,高级程序员只看内功。
一个简单的 ArrayList、Linked List 的选择问题,就可能会产生成千上万倍的性能差别。这个时候,数据结构和算法的价值就完全凸显出来了。如果你理解他们背后对应的数据结构,那就可以迅速看到这些类背后的本质区别,那个时候,你根本不用死记硬背,自然理解什么样的场景里该选择什么。
是否要学习算法,还得看个人的职业规划,如果你想进去大厂,找到好公司,拿到高薪的offer,这个肯定是要去学习的。我整理过一套算法学习笔记,分享出来给大家。
【基础知识部分】
【数据结构部分】
【排序部分】
【搜索部分】
学习算法的好处:
1,帮助你快快速高效完成编程
2,可以进入大厂,比如,小米,字节跳动bat等公司
3,还有就是后面可以做架构师
4,可以装逼(这个开玩笑的啦)