前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为何说数据结构是程序员最重要的基本功?

为何说数据结构是程序员最重要的基本功?

作者头像
区块链大本营
发布2019-10-21 16:36:11
9410
发布2019-10-21 16:36:11
举报
文章被收录于专栏:区块链大本营
想必每一个程序员在刚刚入行的时候都有学过数据结构和算法。但是据我所知,真的掌握这方面知识的人却是少之又少。

之前我们在自己的用户群中做过一次调研,主要是1-5年编程经验的工程师,有应届生、有小厂的程序员,有大厂的程序员,也有经验不错的技术经理。

其中60%的人都认为数据结构和算法脱离实际工作的知识,基本用不到。

但是有过大厂经历的工程师,基本一致的认为数据结构和算法对于程序员来讲最重要的基本功。

为何他们说数据结构是程序员最重要的基本功?

01

不会数据结构和算法,大厂面试真的会拖后腿

很多大公司,比如 BAT、Google、Facebook,面试的时候都喜欢考算法、让人现场写代码。国内外的一线互联网公司,都会把数据结构和算法作为入门门槛,甚至 90% 的面试时间都是围绕数据结构和算法。

有些人虽然技术不错,但每次去面试都会“跪”在算法上,很是可惜。那你有没有想过,为什么这些大公司都喜欢考算法呢?

校招的时候,参加面试的学生通常没有实际项目经验,公司只能考察他们的基础知识是否牢固。社招就更不用说了,越是厉害的公司,越是注重考察数据结构与算法这类基础知识。相比短期能力,他们更看中你的长期潜力。

2015年,Homebrew的作者去google面试,但不幸的是他被google拒绝了。Homebrew大家应该都听说过,它是Mac平台的安装包管理工具,全世界大大小小互联网公司的程序员可能都在用这个工具。这足以说明Homebrew作者的技术实力了吧?可他还是被拒绝了,当时他发了条twiiter吐槽。

google回应:“我们90%的工程师都在使用你写的Homebrew工具,你却不能白板编程一个二叉树的翻转,所以请滚蛋吧”。

你可能要说了,我不懂数据结构与算法,照样找到了好工作啊。那我是不是就不用学数据结构和算法呢?当然不是,你别忘了,我们学任何知识都是为了“用”的,是为了解决实际工作问题的,学习数据结构和算法自然也不例外。

02

不能做一辈子的CRUD boy

如果是做业务开发的工程师,平时多数用的都是已经封装好的现成的接口、类库来堆砌、翻译业务逻辑,很少需要自己实现数据结构和算法。

但是,不用不代表不需要懂。

作为业务开发,我们会用到各种框架、中间件和底层系统,比如 Spring、RPC 框架、消息中间件、Redis 等等。在这些基础框架中,一般都揉和了很多基础数据结构和算法的设计思想。

在平时的工作中,数据结构和算法的应用到处可见。我来举一个你非常熟悉的例子:如何实时地统计业务接口的 99% 响应时间?

你可能最先想到,每次查询时,从小到大排序所有的响应时间,如果总共有 1200 个数据,那第 1188 个数据就是 99% 的响应时间。很显然,每次用这个方法查询的话都要排序,效率是非常低的。但是,如果你知道“堆”这个数据结构,用两个堆可以非常高效地解决这个问题。

03

实现“高性能代码”

如果你所开发的产品用户量很少,需要处理的数据量也很少,开发中不需要考虑那么多性能的问题,至于是否在编码时考虑数据结构,意义并不大。但是你真的想“十年如一日”地做一样的工作吗?

久而久之,十年的积累可能跟一年的积累没有任何区别。这样的人,怎么不会被行业淘汰呢?

如果你所开发的产品有几百万上千万的用户,性能几乎是开发过程中时刻都要考虑的问题。一个简单的 ArrayList、Linked List 的选择问题,就可能会产生成千上万倍的性能差别。这个时候,数据结构和算法的意义就完全凸显出来了。

如果你想掌握大厂数据结构和算法的面试技巧,同时也想掌握一些框架、中间件和底层系统的底层原理,那么下面这门课程可能是你的不二之选。

从程序员到架构师到技术经理樊延欣老师,前后花了6年时间用各种工作方式来扎实数据结构与算法。在这门课程中分享了互联网公司面试中至少50%数据结构与算法方面的知识,而且都是面试实战中必考项。

讲解的过程中,不仅会给出实现结果,更会对每道题目的分析思路进行详细地讲解,不论是面试还是实战,都能让你有的放矢地学习应该要掌握好的数据结构和算法。

让我们和樊延欣老师一起,死磕数据结构,跳过代码陷阱,尽快完成数据结构的通关,实现向更好工作机会的晋升。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 区块链大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档