编程面试:助你做出更明智选择的实用工具和技巧
AWS 安全直播!
如果你来这里只是为了查看准备编程面试的工具评测,请直接向下滚动。不过,既然你已经来到这里,何不从头开始呢?:)
编程面试 GIF 动画
编程面试到底是怎么回事?
对于许多开发人员来说,无论是资深开发人员还是初级开发人员,编程面试都可能压力很大。我们都会发现自己长期使用某种特定的技术,因此会担心自己是否足够精通面试中可能出现的其他技术。
根据我多年来面试软件开发人员的经验,我发现开发人员需要克服一些冒名顶替综合症和一些自信心问题才能做好准备。
准备编程面试的一个重要环节是调整好心态。不过,我在这里就不赘述这一点了。另一个关键是要确保你的知识储备充足。即使你已经熟悉某些概念,也总有需要温故知新的地方。这正是本文要重点讨论的内容。
时间是你最宝贵的资源
在准备写这篇文章的时候,我想从一个不同的角度来看待这个问题。所以我问了Trey Huffine,我非常欣赏他的意见,他认为开发者在编程面试中最应该牢记的是什么?
“准备面试最宝贵的资源就是你的时间。你越有效地利用时间,或者说浪费的时间越少,你就越有机会学习到在编程面试中取得成功所需的概念和直觉,并自信地应对任何可能出现的问题。”—— Trey Huffine,gitconnected和skills.dev的创始人
您需要了解现有解决方案的哪些方面?
简单来说,没有完美无缺的方案。无论选择哪个平台或方法,总会有取舍和时间浪费。更具体地说:
- 你仍然需要上网搜索信息以填补空白或获得所需的全部经验来进行准备。
- 许多备考方法只注重死记硬背题目,而忽略了有效利用时间进行广泛领域的学习,从而掌握真正需要的知识。时间应该花在学习最重要的概念和最有可能考到的内容上。
- 很多人告诉你该学什么,却不告诉你为什么要学以及学习成果是什么。
- 缺乏面对面的支持。并非所有事情都能通过预先准备好的文本和视频自动完成。有时,你只需要用自己的方式提出问题。
让我们一起来看看一些能帮助你找到下一份工作的实用工具。
Codewars
通过挑战精进技艺。Codewars 主要致力于通过与其他学员共同挑战真实代码难题来提升你的技能。
- 优点:免费!适合练习题,保持学习状态。社区氛围好,还有积分系统。
- 缺点:没有针对面试的重点。它的目的是保持编程技能的熟练度,更多的是为了享受编程的乐趣——没有分类,这意味着你只能专注于死记硬背,而无法真正学习。
最终评分:4 分(满分 5 分)
。为什么我给这个分数?总的来说,这个概念很棒,也很有创新性。它允许协作,而且免费,这对很多开发者来说都是颠覆性的。之所以没给满分,是因为它并非专为面试而设计。Codewars 是一个能提升你编程面试技巧的好工具,但你需要付出很多努力才能熟练使用它。
Skilled.Dev
Skilled.dev 汇集了多年面试经验,精心打造了一个平台,旨在教会你成功通过编程面试并最终获得理想工作所需的全部知识。它会一步一步地指导你,并提供所有必要的工具,让你的面试准备工作变得无比轻松。
- 优点:Skilled.dev 力求内容尽可能全面,因此您无需离开平台(最大限度地减少了在外部搜索额外知识的需求)。它专为资深程序员和刚从编程训练营毕业的程序员精心策划,旨在帮助他们准备面试。我非常欣赏它的全面性:每个问题都包含一篇循序渐进的指导性文章、一个解决方案演示视频以及一个用于测试解决方案的集成代码执行环境。
- 缺点:它最近才推出。这意味着它还很新,如果你无法鼓起勇气成为早期用户,那么它可能并不适合你。
最终评分:4.5 分(满分 5 分)。
我为什么给这个分数?因为它为当前许多编程面试平台存在的问题提供了绝佳的解决方案。由于它刚刚上线,用户还在试用阶段,所以我暂时无法给出满分。非常期待未来几个月的用户评价。我个人认为,skilled.dev 有潜力取得巨大成功,最终获得满分 5 分。
LeetCode
LeetCode是一个帮助你提升技能、拓展知识、准备技术面试的平台。
- 优点:题目众多,并按类别划分。为什么它很重要?因为它提供了问题的解决方案,并附有简明扼要的解释。此外,还有评论区和论坛供用户讨论。
- 缺点:缺乏指导和筛选——用户需要自行决定如何安排时间,而这种方式的效果可能好也可能不好。问题在于,这迫使用户专注于枯燥的重复劳动,而不是真正地学习。从用户评论中可以看出,解释过于笼统,缺乏细节。这迫使读者自行进行更多研究,以获取所需的先验知识并发现重要的学习成果。此外,对于许多开发者来说,它的价格可能也偏高。
最终评分:4 分(满分 5 分)
我为什么给出这个分数?这个平台有着非常出色的过往业绩。然而,它仍然缺少一些普通用户期望的基本要素,例如恰当的指导。内容很棒,但用户体验却欠佳,无法让用户轻松上手,节省大量时间。
其他常见的编程面试准备方法
免费代码营
- 优点:社区氛围好,内容经过精心筛选。
- 缺点:它主要指向外部资源。内容筛选不够充分,所以你很可能仍然只是在反复练习,遇到不懂的问题时不得不上网搜索。选择某些主题或问题的理由并不明确——你需要自己去发现学习目标。
如果你对freeCodeCamp的内容感兴趣,你可能也想看看以下这两个资源:
YouTube频道
- 优点:免费。有很多优秀的老师。你几乎可以找到任何问题的视频教程。
- 缺点:它缺乏指导和筛选,所以你需要自己决定学习内容,并且不得不自己去判断哪些内容是重要的。这迫使你决定哪些知识点值得学习和研究。此外,你还不确定这些内容的维护和更新情况。它没有提供代码执行环境,因此无法提供示例代码、测试用例和解决方案。
破解编程面试[书籍]
- 优点:题目很多。相对于 LeetCode 之类的网站来说,价格便宜。涵盖所有面试主题(讲解概念、求职过程、讨论软技能、涵盖所有基本数据结构和算法)。
- 缺点:它并非一站式产品。对于数据结构和算法的解释仍然比较浅显。除非你拥有计算机科学背景,只是需要复习一下,否则你可能需要通过网络学习更多知识才能真正掌握这些主题。由于它是一本书,所以你无法体验到数字化学习的各种优势(例如,运行代码和测试解决方案的环境、社区讨论、视频、交互式示例,以及轻松地链接和连接不同主题和概念)。此外,由于它是一本书,一旦购买,你就无法获得任何更新。
出发前需要考虑的主要事项
- 你只想要免费资源,还是愿意花点钱获得更高质量的演示文稿?我的建议是,认真考虑一下投资,不要只依赖免费资源。市面上大多数优质内容都不是免费的。如果你想尽快找到理想的工作,或许应该考虑投资一下。
- 你对时间有多敏感?很多平台都会浪费大量时间,而这些时间原本可以用来做好准备。
- 这是你的第一次面试吗?还是你已经熟悉面试流程了?如果你是新手,我建议你先从像skilled.dev和LeetCode这样的在线平台入手,因为它们都提供了在线检查答案的界面。
希望你喜欢这篇文章,并且它能帮助你更好地准备面试。
daily.dev是获取最新编程资讯的最便捷方式。它汇集了由超过 6 万名开发者组成的社区评选出的文章,方便您随时掌握最新动态。只需一个扩展程序,即可获取来自顶级科技媒体的各类精彩内容。
