Code前端首页关于Code前端联系我们

谷歌工程师:您如何看待程序员普遍缺乏数据结构和算法知识?

terry 2年前 (2023-09-27) 阅读数 65 #数据结构与算法

语言只是工具,算法才是程序的灵魂。我想您在编程之旅中已经无数次听到过这句话。但到了具体工作时,您是否还存在以下困惑?

  • 数据结构和算法,例如操作系统和计算机网络,是与实际工作分离的知识。除了采访之外,我可能一生都不需要它。
  • 即使我不懂这些知识,只要我知道如何使用Java API和开发框架,我就可以“即时”编写代码。

那么今天我就来详细讲一下为什么我们需要学习数据结构和算法。首先让我问你一个问题。作为一名开发者,你真的准备好做一辈子的 CRUD 男孩了吗?

我知道大多数儒家整天做的就是增删改查。所谓的“业务开发”工作更多的是使用预先封装好的接口和类库来堆叠或翻译业务逻辑,很少需要数据结构或算法方面的知识。不过,

并不需要你自己应用,这并不意味着你不应该理解任何东西。

比如,如果你不了解这些库背后的原理,不懂时空复杂度分析,你怎么能确定你能用好、正确地使用它们呢?存储某些业务数据时如何知道是使用ArrayList还是LinkedList?调用函数后应该如何评估代码性能和资源消耗?

初级程序员只比动作,高级程序员只看内力。

ArrayList 和 Linked List 之间的简单选择可能会导致性能上数千倍的差异。这时,数据结构和算法的价值就充分凸显出来。一旦了解了它们背后各自的数据结构,您将很快看到这些类背后的重要区别。到时候你就不用背了,自然就明白在什么场景下该选择什么了。

我在西安交通大学读书的时候,哥哥送给我这本书《算法导论》。从此我就沉浸在算法的世界里。到现在已经过去十多年了。这期间我学习了几十本数据结构和算法方面的书籍,并仔细比较和分析。

我发现像像《算法导论》这样的经典书籍,虽然很全面,但是对缺乏太多的关注。许多人发现学习非常困难。而且很多线上课程或者线下课程大多是为了通过考试而设计的。他们只教授一些看似笼统但实际上偏离实际开发场景的内容。经过一番苦苦研究,我感觉自己已经没什么用了,过几天就会忘记了。

考虑到这一点,我真的很想创建一个工程师可以真正受益的数据结构和算法。它不限于编程语言,与真实的开发场景紧密相关,可以帮助你训练算法思维,真正提高你的编程技能。当然。 我是谁?

我叫王峥,前谷歌工程师,从事谷歌翻译开发,几十年来一直深入研究算法。现任某金融公司高级系统架构师、核心业务接口平台负责人。他负责架构设计和核心业务开发,以及解决可用性、高性能和其他相关技术问题。 你会赢得什么?

1。对数据结构和算法有一个基本的了解

根据几十本算法书籍的学习和多年的项目开发经验,我精选了20个最实用的数据结构和算法具体软件开发实例讲解其背后的设计思想由浅入深,及时总结出一些实用的“宝藏”,确保您印象深刻,适应实际工作场景。

2。提高算法思维,培养解决实际开发工作任务的过硬技能

这部分我会讲一些应用不太广泛的数据结构和算法。虽然它们不常用,但这并不意味着它们没有用。设置这一部分的目的是为了开阔视野,加强算法思维和逻辑思维的训练。如果学习完主要部分后考试得到80分,掌握这部分就可以成为尖子生。再回过头来看,无论是目前流行的区块链技术还是人工智能,这些算法都融入到了主代码的实现中。

3。学习开源框架及其底层系统的设计原理,提高实际工作技能

最后讲一下前面提到的数据结构和算法的实践部分,并基于Redis等开源项目进行分析和世嘉嘉。它们背后的数据结构和算法可以帮助你提高理解源码的能力(JDK有很多源码,包括大量的数据结构,比如面试热门题HashMap)。

Google工程师:如何看待程序员普遍缺乏数据结构和算法知识?

我用手指阅读。整个专栏涵盖了算法的100多个真实项目场景案例。另外,我还有手绘一些清晰易懂的详细图解帮助你理解基本概念和应用流程,展示每个知识点的框架逻辑,算法很简单去理解。简单又有趣。

Google工程师:如何看待程序员普遍缺乏数据结构和算法知识?

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门