程序员到底为什么要掌握数据结构与算法?

Posted 程序员大咖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员到底为什么要掌握数据结构与算法?相关的知识,希望对你有一定的参考价值。

????????关注后回复 “进群” ,拉你进程序员交流群????????

作者丨码农的荒岛求生

来源丨码农的荒岛求生(ID:escape-it)

当代程序员,也就是我们,其实是非常幸运的,为什么?因为前人,也就是那些大牛已经为你铺好路了

大牛铺路导致的后果就是整个计算机系统像这个汉堡包一样是分层的:

越是上层越抽象,用起来也就越方便。

大牛们是怎么铺路的

最开始的计算机只是一堆 CPU 与内存等硬件,要让这群大爷工作需要直接汇编编写机器指令。

这也太麻烦了吧,因此那些大牛鼓捣出一个叫做高级语言的东西,现在方便多了,但程序不能只运行在一种架构上吧,为了让程序可以不加改动的到处运行标准库出现了,标准库对上层屏蔽了底层差异。

现在问题解决了吧,但是别着急,还没完呢!

程序使用的数据结构和算法太复杂了,每次都要重头开始写一个二叉树可不是一件有意思的事,怎么办呢?

大牛们都已经替你想好啦,直接把这些数据结构和算法以库的形式集成到语言中,就像 C++ 的 STL,Java的容器,想使用数据结构吗?简单的很,你只需要知道数据结构和算法的名字就足够了,剩下的查查接口文档,够方便吧。

这些都是小意思,还有更牛的,像搭建一个网站、编写一个App,其实这些写的代码大同小异,为什么要一遍遍重复造轮子呢?程序员的时间可是很宝贵的,怎么办?大牛们依然很贴心的为你想好了,于是框架应运而生。

想搭建一个网站简直不要太容易,简单几行代码,一个功能完备的web server就跑起来了,现在还有谁说编程难吗?什么都给你想好了。

我们呢?

大牛铺好了路,于是这样一幕就出现了:

大牛们提供的技术使用起来就像搭积木一样容易!只要你的需求不超过积木的表达能力那么就可以愉快的用下去,根本就不用关心下一层是如何实现的。这就是框架本身的目的以及优势,用起来很容易,这也是为什么很多人对此趋之若鹜的原因。

但是这样也有坏处,那就长此以往你会被锁死在这一层

怎么办?

一旦依赖的这层技术不能满足需求,你就会惊讶的发现自己根本没有学会编程,这时你才能意识到各种底层技术以及数据结构算法的重要性,本质上这些才是计算机科学的核心,这些核心技术赋予你层级跃迁的能力,这样你就不会被锁死在某一层中了,当这一层不能满足你要求是你可以自己造出新的一层,这其实就是大家眼中那些大牛在做的事情。

这也是为什么我在这个公众号里写这么多专注于计算机底层技术文章的原因。

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

点击????卡片,关注后回复【面试题】即可获取

在看点这里好文分享给更多人↓↓

以上是关于程序员到底为什么要掌握数据结构与算法?的主要内容,如果未能解决你的问题,请参考以下文章

为什么“不懂数据结构与算法”的程序员一定走不远?

程序员为什么要学习数据结构与算法?

前端学习数据结构与算法系列:初识数据结构与算法

你还不知道为什么要学数据结构与算法?码起来!

程序员必须掌握的算法有哪些?

马化腾每天 LeetCode 刷题?数据结构与算法,到底有多重要?