工作后,为什么还要学习数据结构与算法

在学习计算机课程的时候,数据结构与算法这门课是最烧脑子的课程了,当时的心态,也就是为了学习而学习,也就是说为了考试不挂科而学,为了面试能拿到 offer 而学,也体会不到数据结构与算法有多强大的威力。以这种心态学习是最没有效果的,虽然当时明白了,但考试完、面试完,很快就忘记了。

工作之后,你会发现,如果你不追求极致的性能,数据结构与算法基本用不到,大家都在学编程语言本身,学框架,学习一些 IT 工具的使用,至于背后的架构、原理、技术实现,没有人去关心。假以时日,等你熟练掌握了一些编程语言,框架,工具之后,你会发现自己虽然写了很多代码,但仍旧没有什么亮点,基本就是对业务操作的一种实现,或者数据库的增删改查,也就是 IT 界流行的一个词,叫 CRUD BOY,当然了,你也不会有什么成就感,因为,只要一个人熟悉这种编程语言或工具,他很快就可以上手,也就是说很快可以取代你,而且他要的薪水可能比你低,毕竟他是新人,没有中年人的各种压力。

我订阅了极客时间的《数据结构与算法之美》,课程开始给出了学习数据结构与算法的一些理由,列举出下。

1、如果想要进大厂工作,数据结构与算法是必备内容。校招的学生,没有项目经验,也只能通过算法这种基础编程的能力来进行筛选,而社招,越是厉害的公司,他们越看重数据结构与算法这种基础知识,相比短期价值,他们更看重你的中长期价值。

2、如果你不想一辈子做 CRUD BOY。虽然有些接口,类库,框架不需要你自己实现,但并不代表什么都不需要了解,在计算机领域,只能你理解了的东西,你才能更好地使用它,才能让它达到最佳的性能和最小的资源消耗。掌握了数据结构与算法,不管对于阅读源码,还是理解背后的设计思想,都是非常有用的。

3、基础架构研发工程师,写出达到开源水平的框架才是你的目标。不同能力的人写出的代码完全不同,有的人做的框架就可以开源到 GitHub 上给很多人用,甚至被 Apache 收录,有的人写的程序 bug 多,性能也一般,扩展性也不好,只能自己用用。差距就在懂不懂数据结构与算法。

4、不想被淘汰。很多人认为,程序员 35 岁之后很容易陷入瓶颈,被行业淘汰,也有人说程序员的技能可积累性太差,学的东西很容易被新技术所取代。其实就是说如果你不懂数据结构与算法, 35 岁之后很难再有提升,也容易被年轻程序员所取代。数据结构与算法就是一个可积累的技能。有个读者这样形容:在金庸小说里面,一个人练降龙十八掌,一个人练全真教内功,刚开始,练内功的被吊打,十年后依然被吊打,但二十年后,降龙十八掌就怎么也打不过练内功的了,算法和数据结构就是内功,降龙十八掌就是各种框架,再怎么熟悉框架,也不如了解它内部的算法和数据结构。

那么学了之后会有什么效果呢?

一旦掌握,你会被它的强大威力折服,之前花很大劲来优化的代码,花很多心思设计的架构,用了数据结构和自满之后,很容易就解决了。掌握了数据结构与算法,你就拥有了上帝视角,看待问题的深度,解决问题的角度就会完全不一样。这样的你,就像站在巨人的肩膀上,拿着生存利器行走世界,数据结构与算法,会为你的编程之路,甚至人生之路打开新世界的大门。

怎么学?
学习数据结构与算法,并不是为了死记硬背几个知识点,而是建立时间复杂度,空间复杂度意识,写出高质量的代码,能够设计基础架构,提升编程技术,训练逻辑思维,积赞人生经验。

怎么学最有效?
理解,然后自己实现一遍,虽然花的时间长,但它是值得的。

学什么?
就点击看大图:
内容.jpg

因此我打算跟着极客时间的专栏 -《数据结构与算法之美》课程,分享一下自己的学习笔记及部分代码实现,希望对你有所帮助,但是时间有限,跟不上专栏的更新速度,所以有兴趣的还是建议购买专栏学习,扫以下二维码接购买的,加我微信 somenzz 直接给你反现 12 元,这是你从其他渠道购买所没有的福利,希望能和你一起共同学习,一起进步,降低你的学习成本。
扫二维码购买

精彩评论:

1

2

3

独学而无友,则孤陋而寡闻,欢迎关注个人公众号 somenzz,或加好友 somenzz,共同学习。

猜你喜欢

转载自blog.csdn.net/somezz/article/details/84941635