• 我的订阅
  • 科技

刷完 400 道 LeetCode 题后,我“悟”到了五大经验

类别:科技 发布时间:2023-06-21 19:00:00 来源:CSDN

【CSDN 编者按】作为一个代码在线评测平台,LeetCode 是许多程序员提高编程技能和算法能力的极佳场所,它包含了算法、数据库、Shell、多线程等多种分类的题目,其中以算法题目为主。那么当一个人在 LeetCode 上狂刷 400 道题后,会得到什么新的感悟吗?

原文链接:https://dev.to/durgesh4993/after-solving-400-leetcode-questions-here-are-five-things-that-i-have-learned-c60

作者 | Durgesh kumar prajapati

译者 | 明明如月

责编 | 夏萌

出品 | CSDN(ID:CSDNnews)

在我成功刷完了 LeetCode 上 400 道题之后,我获得了一些宝贵的经验,这些经验对我在软件开发方面的理解和方法产生了深远的影响。本文将介绍我从中悟到的五点经验。

刷完 400 道 LeetCode 题后,我“悟”到了五大经验

LeetCode 这个网站对许多正在找工作的软件开发人员来说并不陌生,它整理了来自谷歌、Facebook、微软等顶尖公司的技术面试题目和题解。然而,让人感到困惑的是,现在越来越多的小公司也开始大量采用关注数据结构和算法的面试题,这让一些人产生了疑问,因为他们认为 "Leetcode能力" 并不能准确衡量他们的工作实力。

我赞同这个观点,擅长 LeetCode 并不等同于你就是一个出色的开发者,而且在实际工作中,你可能永远不需要反转二叉树。然而,通过练习 LeetCode,你会学到很多有价值的东西,这些都将在你的职业生涯中发挥重要的作用。

数据结构和算法的重要性

LeetCode 并不提供全面的数据结构和算法(DSA)课程,因此在使用这个平台前,你需要对这个数据结构和算法有基础的了解。我强烈建议你刷题之前要系统地学习数据结构和算法的基础课程。然而,一旦你在 数据结构和算法(DSA)上打下了基础,再去刷 LeetCode 就将如虎添翼,而且刷题也会反向加深你对数据结构和算法的理解。

值得一提的是,对于任何开发者来说,具备扎实的数据结构基础都极为重要。最近国外就有一位大神玩家通过对算法进行小改进,成功让游戏的加载时间缩短了70%。在大规模使用的情况下,数据结构和算法的有效实现对于应用程序的性能和稳定性影响深远。

总有人比你更懂 - 学无止境

我经常会对找到的解决方案和自己写出的代码进行对比,经常会为自己的解法感到自豪,但每当我浏览评论区时,可能会破受打击。我看到过一些解决方案,它们甚至优于官方提供的答案。在使用 LeetCode 刷题过程中,我学到的很多内容都源于对他人代码的仔细研究,并将他们的建议融入我的工作。

这种 “总有更多可以学习” 的观念同样适用于我的职业生涯。我很幸运,有经验丰富的同事们愿意慷慨分享他们的知识,帮助我提升自己。这种向他人学习的方法让我能尽可能多地吸取他们的专业知识。

看似微小的细节可能对你的工作产生深远影响

在正式工作之前,代码中的错误基本上不会产生任何实际的后果。那些只在特定情况下才会显露的 bug 往往可以被忽视。但如果你已经工作,代码将推到生产环境,如果你的产品用户量庞大,任何一个哪怕只在一个极端情况下出现的bug,都可能给大量用户造成麻烦。

LeetCode 提供了对这种场景的极好训练,因为每个问题都有数百个测试用例,这其中往往包含很多边界用例。如果未能正确处理好边界情况,代码就会失败。

最近,我需要处理一个缺乏适当约束的数据库,其中许多行包含一些意料之外的数值。我非常感谢在 LeetCode 上积累的技能,因为这让我能在这些问题影响生产环境之前就识别并解决它们。

勤奋胜于天赋

“当天赋未得以施展时,勤奋胜于天赋。” 这句话出自 Tim Notke,对我个人来说,其影响深远,尤其是在使用 LeetCode 刷题时。我曾遇到许多在处理中等难度问题时挣扎的天才开发者,因为他们对解决问题的方法和所需工具的经验和理解不足。

起初,我在 LeetCode 上解决最简单的问题也会感到困难。然而,在参加了几门数据结构和算法课程并经过一段时间的练习后,我提升到了在合理时间内解决大多数中等难度,甚至一些难度较大的问题的水平。

为了更好地提高我的 Java 编程能力,我最近将 LeetCode 的解题语言从 Python 切换到 Java。尽管我每天在工作中都在使用 Java,但在解决这些问题时,我并不觉得自如。然而,我并没有感到沮丧。我坚信,只要有足够的实践,我在 Java 的技巧就能达到和 Python 一样的熟练程度。

战略规划在软件开发中至关重要

规划是软件开发的核心环节,不容忽视。无论是在实际编程中还是参加正式面试中,都能深刻意识到编码只是整个过程的一部分。有时我们往往会陷入这样一个误区:读到问题提示后,立即进入编码阶段,这是一种常见的错误,很容易因为了解和思考地不够清楚导致结果不尽人意。

软件开发中充满了模糊不清和意外的情况,编程面试试图通过提供通常模糊或不完全的问题来模拟这个现象。与面试官沟通,寻求对任何不确定性或限制的明确解释是非常重要的。建议在开始编写代码之前,先提出解决方案,评估其优点和局限性,只有当所有人都接受了提出的计划,才开始编码。

否则,如果解决方案不满足时间和空间要求,将无法进行任何必要的更改。这一点同样适用于专业环境,因为如果在没有适当分析需求和考虑所有选项的情况下开始编码,可能最终导致大规模重构。

结论

作为一个个体,我很幸运可以享受在 LeetCode 上学习和挑战,甚至在找工作之外的时间里也能从中获得乐趣。然而,我也理解并不是每个人都有同样的看法,有些人可能会认为它是浪费时间,或者刷题得到的经验在实际开发中毫无用武之地。

▶ ChatGPT 也能用来造芯,说说英语就可以了?!

▶ 拒绝 AI 招聘、未来 20 年 AI 将产生重大影响?上万名“打工人”这么说……

▶ 阿里集团“换帅”!张勇将卸任集团董事会主席和CEO两大职务 返回搜狐,查看更多

责任编辑:

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2023-06-21 21:45:11

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

复旦团队开发新型AI算法“看清”蛋白质精细结构,可与AlphaFold预测互补
...剑鹏教授领衔的科研团队开发的新型计算方法OPUS-DSD。该算法不但能够成功地解析冷冻电子显微镜(Cryo-EM)结构解析技术中因传统方法无法分辨而缺损的生物大分子(比如蛋白
2023-10-10 17:39:00
易方达、华夏、嘉实等巨头出手,又一争夺战来了
...具备机器学习及数据处理工具使用经验,有扎实的算法与数据结构基础。此外,易方达基金校招岗位还包括深度学习研究员,主要负责深度参与金融垂直领域大模型研发,主导面向资产管理场景的原
2025-02-27 06:49:00
复旦马剑鹏团队研发新型智能算法,助力提升新药研发成功率
...物大分子的柔性结构是一个长期目标。复旦团队开发的新算法使科研人员能通过冷冻电子显微镜看到关键的结构细节,这是以往技术无法实现的,将对生物学、化学研究和药物发现产生重要影响。”
2023-10-10 16:11:00
...,自动化、计算机或智能机器人相关专业,或有相关工作经验,能使用编程语言控制机械运作。熟悉c/c++开发语言,熟悉QT相关开发环境及软件
2023-06-19 14:00:00
...范化的流程,就能释放预训练大模型的能力,并且与行业经验结合,解决实际业务问题。”华为云人工智能领域首席科学家田奇介绍。“传统人工智能算法落地存在‘碎片化’问题,往往要针对不同
2023-07-10 05:16:00
好学编程:编程0基础,应当如何开始学习 Python?
...理解,直观的感受Python有什么样的基本操作,有什么样的数据结构,对类、对象的这些概念有一个基本的了解。2、下载pycharmpycharm是目前Python语言里最好的一个集成开发环境
2022-12-29 10:00:00
...的早期诊断上几乎是无效的,确诊只能依赖于临床医生的经验。”参与该研究的美国哈佛大学医学院和麻省总医院助理教授李响表示。研究发现,AD患者在基因组学层面上表现不同,大量致病基因
2023-12-04 06:24:00
本文转自:人民日报从经验主导向数据驱动转型,更加高效精准人工智能,这样影响科学研究本报记者 喻思南《 人民日报 》( 2024年11月04日 第 13 版)核心阅读当人工智能与科
2024-11-04 06:01:00
《流浪地球》地下城怎么建?三维地学建模探秘地下空间
...三维编辑工具,基于以剖面数据为主的源数据,结合专家经验的交互拼接建模,可以解决某些数据量较大、质量较差、地质情况较复杂等情况下的建模问题。针对地震解释数据,如层位数据和断裂数
2023-03-11 15:00:00
更多关于科技的资讯: