文章
问答
冒泡
数据结构与算法分析系列之开篇序言

常规性扯淡


任何代码一线开发人员在任何阶段复习数据结构,学习算法阶段都是有收获的,更何况很多时候我们并没有真正掌握这门“技巧”。


为啥 ”技巧“ 一词是带有引号,个人觉得这其实是一种思维习惯与解决问题思路吧。代码开发工作实际上就是掌握开发语言工具,通过抽象现实世界通过机器能够读懂的方式让计算机能够根据我们设计的逻辑解决实际需求问题。经历了这么多年的发展,将场景需求拆分粒度够细,最终可能都会映射到数据结构比如 数组、链表、队列、栈、树、图 等等的应用上。


其实这也是一个建模的过程,通过掌握数据结构的特性,再粘合上特定的逻辑,加上那么点数学技巧处理,我们就能够解决问题。


很多高级语言,比如 Java ,实际上在基础库已经有对应数据结构的实现,我们直接拿过来用就行了,那是不是意味着我们根本不需要再去看 数据结构和算法?


答案肯定是否定的,且不说面试的时候会被问到,有没有看过 XXX 的实现,其实对于我们来说,就是一种思维习惯和解决问题思路,我们可能通过自己的理解,也能粗糙的解决问题,但是如果掌握了这门硬实力的话,除了能装X之外,更能提升效率。在计算机的世界里,有性能一说。时间、空间都是宝贵的计算机资源,可能绝大多数都不会考虑到,但是作为一名老鸟,我们除了 CRUD 的和所谓的大框架之外,我们比肉鸡要多出哪些核心技能? 会 DEBUG,能看工具 ?肉鸡知道了工具名称百度,其实这些可能一个月的经验就知道如何使用了,无非就是弱鸡之前没听说过这个名词完全没有概念而已,也就是经验之谈,局限于我的能力,我也不知道这个比喻恰当不恰当,但是很大程度上我们都是拿来主义(站在巨人的肩膀上)。


作为平时的锻炼来说,通过数据结构与算法的学习,一方面能够学习到核心技能之外,也可以通过刷题的形式进一步掌握编程语言,因为很多时候我们有了思路,但是发现无法落笔实现,那其实就是还没有真正的掌握语言到随心所用的程度。


个人感觉,如果目前自己还是程序员,对自己核心竞争力的考量上另一重量级的要求应该是要加上算法与数据结构的,当然工作层面我们也许或者根本用不到,或许我们就是CRUD BOY。。。。不知道怎么接话了,反正学就完了,既能装X,又能提升自己 (也许也是加薪的筹码),何乐不为呢。


这是一个漫长的过程,借用”冬泳怪鸽“的一句话:”干就完了,奥利给!“

数据结构与算法

关于作者

Kirago
个人站点 https://kiragoo.github.io/
获得点赞
文章被阅读