我现在正在通过技术面试指导一些工程师。
这可能是残酷的。
不幸的是,许多公司的技术面试过程令人毛骨悚然。要跳过这么多层,公司与公司之间的期望不一致。
结果是许多工程师最终感到沮丧。面试过程真的会让你精神崩溃。
好消息:通过指导工程师(以及我自己使用该系统),我找到了一个计划,可以让你在面试中取得成功。
这是那些(免费)资源……
数据结构与算法
没有办法解决它。公司希望您对数据结构和算法复杂性有基本的掌握。
您不需要大学水平的数学密集型算法课程的全部深度。
但是你应该有扎实的基础......
- CS50 算法入门——如果您以前从未接触过算法,请从这里开始。绝对是最平易近人的介绍,由一位了不起的老师教授。
- 数据结构备忘单——这些是学习数据结构及其特征的重要资源和快速参考。备忘单还包括数据结构有用的示例实现。
- Tim Roughgarden 的 Stanford Algorithms——如果您想深入研究算法(并真正了解大学课程的严谨性),Tim Roughgarden 是最好的老师。整个斯坦福课程都可以在线获取。
系统设计
大多数编码面试将包括系统设计部分。特别是如果你正在面试更高级的职位。
复习系统设计是该过程的关键部分。
在我的最后一轮采访中,我专门使用了两种资源。他们是我在指导工程师时推荐的
- The System Design Primer——最完整的资源。使用它来探索您可能接触到的可能主题。
- System Design Cheatsheet——一个更短的单页纸,用于回顾概念并为面试做准备。
我建议同时使用两者,从中创建学习材料,然后编写自己的备忘单,您可以参考用自己的话写的备忘单。
技能知识
您需要了解有关您指定专业领域的信息。
前端、后端、数据科学、移动等。对于这些,您需要对您的领域有广泛的了解。此外,您需要深入了解您声称熟知的主题。
- roadmap.sh——我喜欢这个网站,因为它有每个专业的路线图。无论您的兴趣如何,他们都会向您展示您需要研究并准备好谈论的概念。
- 数据工程师路线图——唯一的例外是 roadmap.sh 没有很好的数据工程资源。本路线图旨在填补这一空白。
白板面试
实时编码练习很糟糕,但它们也很常见。
如果你想获得开发人员的工作,你会遇到他们。因此,它有助于为您可能会被问到的问题类型做好准备。
一般来说,LeetCode 是大多数人推荐的免费学习资源。但是你应该学习哪些 LeetCode 问题,你应该如何复习它们来建立你的回忆?
- Grind75——这是一个很棒的工具,可以根据你的时间表来规划哪些 LeetCode 问题最适合学习。用它来优化你的学习计划。
- Anki——具有内置间隔重复功能的抽认卡软件。这是学习任何东西的最佳方式,但它对于提高面试时对编码问题的回忆特别有效。
系统有缺陷
即使拥有最好的资源和准备,您也一定会遇到无法回答的问题。
或者,这可能是该公司不适合。或者,你早上过得很糟糕。或者,面试官并不清楚他们的期望。
所有软件工程师都面临拒绝。这是完全正常的:
- rejected.us——该站点列出了数十名曾面临拒绝(有时多次)并最终在其他地方取得成功的软件工程师。知道您并不孤单会有所帮助!
技术面试是侮辱性的,该系统对于公司或候选人来说不是一个很好的系统。
当你面试失败时(不是如果),只要知道这是一个有缺陷的系统。不一定是你的错。你不是坏工程师或骗子!
每日资源
在您的软件职业生涯中需要更多帮助吗?我每天都为开发人员写一些新东西。进入文章列表,因为这是我分享更多此类内容的地方。
如果你喜欢我的文章,点赞,关注,转发!
网友评论