数据结构和算法:为什么要学习数据结构和算法?

2017-10-22  本文已影响189人  ShannonChenCHN

一、现实

在平时的编码工作中,到底会有多少机会需要自己亲自编写一个链表或排序算法呢?

答案是:可能永远都不会。

二、然而...

学习数据结构有什么用?

三、大家怎么说?

学习数据结构,就是为了了解以后在IT行业里搬砖需要用到什么工具,这些工具有什么利弊,应用于什么场景。以后用的过程中,你会发现这些基础的“工具”也存在着一些缺陷,你不满足于此工具,此时,你就开始自己在这些数据结构的基础上加以改造,这就叫做自定义数据结构。

web 编程也好,手机 app 也罢,都是应用层面,遵循固定的教程就能开发出来,如果不深入底层,都不需要怎么思考的,纯靠多做有经验了就能找到工作。

殊不知算法和数据结构(也就是数学有关的东西)才是关键呀!

考这种算法题目的意义不在于工作当中会用到,而在于证明候选人有基本的算法能力,编程也要遵守基本法,这种基本的算法能力就是基本法,你说能做出来是不是最吼的? 
 
因为程序员不仅仅是调用API就完事儿了,还需要在已有的API基础上加上业务相关或者需求相关的逻辑,这时候是不可能找到现成的代码或者第三方库的。比如做一个客户端采集数据然后上传服务器,并且在客户端显示的功能,按说只要调用服务端http请求,响应采集来的数据就可以了,并不需要什么算法啊数据结构的知识,也是很常见的应用场景。但是采集来的数据和服务器端数据如果不匹配,要做数据格式转换的话,数据结构设计的不好转换起来就事倍功半,算法基础不好转换代码就很难维护而且效率低。一般来说最初设计采集到的数据和服务器端数据格式一定是一样的,但是随着时间推移需求变化,一定会出现不一样的情况,这时候没有基本的算法能力做出来的程序是没办法适应第二个版本的。

项目经验、当红应用的开发经验当然重要,但是没有基本的算法能力就只能做搬砖工,根据别人的指导来开发项目,只有具备这方面能力才能成为一个项目的核心人员,哪怕只是一个小项目。

The way I see it, it is not algorithms that I need in everyday life, but the ability to quickly analyze the problem and find a solution.

四、参考资料


如果你也喜欢交流技术、喜欢阅读、积极践行,欢迎关注我的公众号:祥龙Shannon写字的地方,一起成长。

qrcode_for_gh_cc686217be41_344.jpg
上一篇 下一篇

猜你喜欢

热点阅读