学算法?浪费那时间干什么,屁用没有.......

我已经不止一次在网上看到程序员老哥说学算法没用,学算法没用,甚至于我现实中的一个工作了七八面的朋友也和我说:“简单了解算法就行,不用浪费时间,在工作中有个屁用”。但也有人说你要做资深码家,需要设计一个小系统怎么做,甚至一般的后端码农在平常工作中分析简单的问题,都需要算法能力。

那今天我就来详细聊一聊,为什么要学习数据结构和算法。首先我先问你个问题,作为一名开发工程师,你真的愿意做一辈子的 CRUD boy 吗?

我知道,大部分的程序员整天做的事情就是增删改查,在所谓的“业务开发”工作里,更多的是利用已经封装好的现成的接口、类库来堆砌或者翻译业务逻辑,这其中很少需要数据结构或者算法之类的知识。

但是,不需要自己实现,并不代表什么都不需要了解。

举个例子,如果你不知道这些类库背后的原理,不懂得时间、空间复杂度分析,那你又如何有信心能用好、用对它们?存储某个业务数据的时候,你如何知道应该用 ArrayList,还是 LinkedList 呢?调用了某个函数之后,你又该如何评估代码的性能和资源的消耗?

初级程序员才比招式,高级程序员只看内功。

一个简单的 ArrayList、Linked List 的选择问题,就可能会产生成千上万倍的性能差别。这个时候,数据结构和算法的价值就完全凸显出来了。如果你理解他们背后对应的数据结构,那就可以迅速看到这些类背后的本质区别,那个时候,你根本不用死记硬背,自然理解什么样的场景里该选择什么。

是否要学习算法,还得看个人的职业规划,如果你想进去大厂,找到好公司,拿到高薪的offer,这个肯定是要去学习的。我整理过一套算法学习笔记,分享出来给大家。

【基础知识部分】

【数据结构部分】

【排序部分】

【搜索部分】

学习算法的好处:

1,帮助你快快速高效完成编程

2,可以进入大厂,比如,小米,字节跳动bat等公司

3,还有就是后面可以做架构师

4,可以装逼(这个开玩笑的啦)

另外还有【玩转算法系列视频】整合

经验分享 程序员 微信小程序 职场和发展