软件开发人员面试准备路线图(含资源)
披露:本篇文章包含附属链接;如果您通过本文提供的不同链接购买产品或服务,我可能会收到报酬。
各位开发者,大家好!你们正在准备软件开发人员的面试,却不知从何入手吗?你们是否正深陷数据结构、算法、系统设计等等的海洋?那么,你们并不孤单,我们每个人在某个时刻都会有同样的感受。
过去,我分享过最好的数据结构面试书籍和软件工程书籍、最好的系统设计书籍和课程,在本文中,我将与您分享一种系统的方法来准备编码面试并涵盖所有基础知识。
在这个艰难的市场中找工作并不容易,因为很多人都在找工作,而且由于世界上正在发生的事情,市场上充斥着大量有才华的人。
但这不应该成为借口;你还需要提升自己才有机会。
为了做好万全的准备,您可以做以下事情。
顺便说一句,如果您正在寻找一站式商店来准备软件开发人员面试,那么DesignGurus.io是一个很好的起点。
他们有很多 Grokking 课程来帮助准备软件开发人员面试,比如 OOP 设计、系统设计、动态规划等等。加入他们的全课程套餐,你可以享受大幅折扣,参加所有课程。你还可以使用优惠码 GURU 获得 30% 的折扣。
如何准备软件开发人员面试?
以下是您做好准备并破解编码面试并涵盖所有重要主题的分步指南:
1.数据结构和算法
对于任何软件开发者来说,这都是最重要的话题。你至少应该了解一些基本的数据结构,例如
- 大批,
- 链表,
- 堆,
- 队列,
- 二叉树,
- 二叉搜索树,
- 哈希图,
以及搜索和排序算法等算法,以及图形算法(如BFS和DFS)。
如果您可以学习高级数据结构(如堆、优先级队列、布隆过滤器以及动态规划、回溯和编码面试模式),那么您将获得加分,这些可以帮助您解决面试中的未知问题。
如果你还生疏,可以先从这些网站上的热门面试问题开始:
- Algomonster --- 由前谷歌工程师编写的面试模式
- Educative-99 --- 99 个精选编程面试题(Python 和 Java 版本),教你 26 个关键编程面试模式
- 盲打75 ——leetcode精选题目列表,为了获得最大收益,一定要做。
- Grind 75 --- 定制的 leetcode 学习计划,其中包含一组最常见的问题。
- 练习 C++ STL或 Java Collections,或使用您选择的语言的数据结构库——对于快速编码至关重要
如果你是初学者,DSA 需要超过 3 个月的积极练习。这篇文章中我省略了细节。
如果您正在寻找价格更实惠的在线课程,那么ZTM Academy 的“精通编程面试:数据结构 + 算法”课程是一个不错的资源。该课程本周和下周免费。
2. 高级设计(HLD)
这是软件开发人员和软件工程师面试中另一个非常重要的主题。至少,你应该熟悉系统设计基础知识,例如可扩展性、安全性、负载平衡、缓存、复制、分片等。
以下是您可以用来准备高级设计的书籍和资源:
1. 书籍:从 Alex Xu 的《系统设计内幕指南》第 1 卷和第 2 卷开始
2. 加入Educative 上的系统设计面试准备速成课程- 良好的平台、互动学习和有关系统设计的优质内容。
3. 视频:系统设计面试基本概念的良好渠道——请看这里
4. 积极参与并尝试自己解决问题
5. 在Pramp、tyrExponent和其他平台(如DesignGurus.io、MeetPro等)上进行模拟面试。
5. 在Codeemia上用 Leetcode 风格练习系统设计问题
3.低级设计(LLD)
如果你对 LLD 还不熟悉,可以先阅读以下内容:
1. 设计原则:阅读《Head First 设计模式》(阅读第二版)
2. OOP 概念应该非常清晰,例如 C++ 中的虚方法、抽象类与接口、重载与覆盖、方法隐藏等。
3. 问题:很棒的低级设计 --- https://github.com/ashishps1/awesome-low-level-design由AlgoMaster 时事通讯的 Ashish Pratap Singh 撰写,我强烈推荐给程序员。
4. 练习题,计时 45 分钟
5. 解决方案:低级设计播放列表 --- https://www.youtube.com/playlist?list=PL12BCqE-Lp650Cg6FZW7SoZwN8Rw1WJI7(感谢 Soumyajit Bhattacharyay)
4. 计算机科学基础
从 GateSmashers 视频中学习 --- https://www.youtube.com/@GateSmashers
操作系统---参见这些课程
5.行为
1. 使用STAR 方法(情境、任务、行动、结果)
2. 保持每个部分简洁:每部分 4-5 句话,以便在面试时在规定时间内讲完
3. 准备详细和简短的答案
4. 如需资源,请查看Educative 上的免费课程《Grokking the Behavioral Interview》 。
6. 公司具体准备
1. 你可以使用Codemia.io解决公司标记的问题
2. Leetcode Premium 中的“探索”选项卡 --- https://leetcode.com/explore/
3. 使用 Leetcode 的“面试”选项卡进行练习 → 评估 → 选择进行电话面试或现场面试的公司 --- https://leetcode.com/assessment/
就这些了,朋友们。我知道在这个竞争激烈的市场中,想要顺利通过软件开发人员的面试并不容易,但遵循本指南并准备好本文提到的所有重要主题,可以大大提高你成功的机会。
希望这些建议能帮助你做好准备。如果你有任何疑问或需要指导,欢迎随时联系我们。
另外,如果你还没有读过,你也可以阅读我之前分享的《开发人员必读的 10 本软件工程书籍》 ,它包含了软件工程师和开发人员除了算法之外的其他书籍。
祝大家旅途愉快!!
文章来源:https://dev.to/somadevtoo/the-software-developer-interview-prep-roadmap-with-resources-332l