https://medium.com/@rbharambe66/after-solving-400-leetcode-questions-i-have-gained-valuable-insights-and-lessons-that-have-shaped-5d5f6ea9f594

以下为机翻

https://miro.medium.com/v2/resize:fit:1400/0*5SvnpA656uLAR1zE.png

力扣

许多正在找工作的软件开发人员都熟悉 Leetcode,这是一个汇集了 Google、Facebook 和 Microsoft 等顶级公司的技术面试问题和答案的网站。然而,专注于数据结构和算法的面试问题在小公司中的使用越来越普遍,这让一些人感到沮丧,他们认为自己对“leetcoding”的熟练程度并不能准确反映他们的工作能力。

虽然我同意不了解 Leetcode 并不会让你成为一个糟糕的开发人员,而且在你的工作中你可能永远不需要倒置二叉树可能是真的,但有很多东西可以通过磨练 Leetcode 教给你,这些东西将在你的工作中证明是有益的职业。

1)数据结构和算法的意义

Leetcode 不是数据结构和算法 (DSA) 的综合课程,在使用该平台之前对该主题有一个基本的了解很重要。强烈建议参加专门设计用于教授基础知识的课程。但是,一旦你有了 DSA 的基础,Leetcode 就可以成为加深你对这些概念如何工作及其最佳用途的理解的宝贵工具。

重要的是要注意,拥有坚实的数据结构基础对任何开发人员都至关重要。最近一个 DSA 重要性的例子是算法的一个小改进如何导致 GTA V 加载时间减少 70% 的故事。数据结构和算法的有效实现可以显着影响应用程序的性能和稳定性,即使在大量使用下。

2)总会有人比你知道的更多。

一旦找到解决方案,我往往会为自己的代码感到自豪,但当我通读评论部分时,这种自豪感往往会消失。我遇到过比官方解决方案更好的实现。我在使用 Leetcode 时学到的很大一部分知识来自仔细检查其他人的代码并将他们的建议融入我自己的工作中。

总有更多东西需要学习的信念也适用于我的职业生涯。我很幸运有资深同事慷慨地分享他们的知识并帮助我提高。这种向他人学习的方法使我能够尽可能多地吸收他们的专业知识。

3)一个看似微不足道的细节,却能对你的工作产生重大影响

在我开始我的职业生涯之前,如果我在我的代码中犯了一个错误,并没有真正的后果。情境错误不太可能出现并且会被忽略。现在情况并非如此,因为我为生产代码库做出了贡献,任何错误,即使它只影响较小的边缘情况,也会给我们的客户带来问题,因为成千上万的人与我的工作进行交互。

Leetcode 为此类场景提供了出色的培训,因为每个问题都有数百个测试用例,通常包括如果处理不当会导致代码失败的边缘情况。

最近,我不得不使用一个缺乏必要约束并且在许多行中有意外值的数据库。我很高兴能够在 Leetcode 上开发技能,因为我能够在这些问题成为生产问题之前识别并解决它们。

4)勤奋胜过天赋。