发布于 2026-01-06 16 阅读
0

软件工程师技术面试准备资源

软件工程师技术面试准备资源

我在之前的文章中写过软件工程面试的两种类型。我当时的目的是区分软件工程师招聘经理通常会问的两种主要面试类型:一种是数据结构和算法导向型,另一种是动手实践或讲解已完成项目导向型。这两种类型并非完全二元对立,有些面试可能会要求你同时进行这两种类型的面试。此外,面试中还可能涉及系统设计和行为方面的问题。

技术面试很难。投资软件工程师并非易事。招聘、员工留任和业务成本都会影响最终的录用结果。作为软件工程师,我们需要了解会面临什么。每个人都有自己独特的职业发展道路。我列出这些资源的目的是为了帮助那些正在求职的人们,并希望这些资源能够反映行业现状。以下是一些学习资料,或许能对您的求职之路有所帮助。

本文基于此处维护的开源 GitHub 代码库。

副业项目

业余项目是检验技能、尝试新事物的绝佳途径,而且几乎没有压力。有时,面试官甚至会对你的业余项目比你的朝九晚五工作更感兴趣!如果你没有科技行业的传统工作经验,从零开始做一个网站项目是展现你能力的绝佳方式。以下是一些在构建业余项目时可以参考的网站和文章:

  • Indie Hackers:是一个面向希望构建能够产生收益的在线项目的人们的社区。这是一个充满活力、互助友爱的社区,你可以在这里分享你的项目和进展。

在题为《如何在不辞掉正职工作的情况下创办一家初创公司》的文章中, JotForm的创始人 Aytekin Tank概述了开展副业项目需要遵循的一些原则:

  • 副业能提升创造力
  • 找到时间
  • 发现需求:创造极致价值
  • 让它充满乐趣
  • 坦然接受不完美

在这篇文章中,坦纳·克里斯滕森概述了如何谈论你的副业项目。文章节选:“抓住一切机会谈论你的副业项目”。

  • 从问题入手。
  • 明确你的方法
  • 分享你面临的挑战
  • 最后公布结果
  • 接下来说说你会做出哪些不同的选择。

如果你想深入了解故事讲述和战略叙事,我强烈推荐你关注安迪·拉斯金,他会给你很多建议 :)

数据结构与算法问题

除了苦练之外,学习数据结构和算法似乎没有捷径。问题并不总是那么简单,但解决方案通常遵循一定的模式。掌握这些模式需要大量的练习和努力。我最喜欢的关于技术面试准备的博客文章来自Facebook 的软件工程师Ali Mir。他的文章篇幅不长,直奔主题,没有冗余的内容。

以下是一些公认的、对参加技术面试有帮助的数据结构:

  • 动态数组
  • 链表
  • 栈和队列
  • 哈希表
  • 二叉搜索树
  • 二叉堆和优先队列
  • 图表
  • 尝试

这个名为 itsy-bitsy-data-structures 的仓库包含对许多用 Javascript 实现的数据结构类型的代码讲解。

搜索和排序

这些是在技术软件工程面试中需要了解的搜索和排序流程。

  • 二分查找

  • 广度优先搜索(BFS)

  • 深度优先搜索(DFS)

  • 计数排序

  • 快速排序

  • 归并排序

编程范式和概念

学习指南

  • 《算法入门》 ——一本免费书籍,旨在用浅显易懂的方式解释常见的计算机科学算法。

  • HackerRank 面试准备工具包- 由 HackerRank 团队精心整理的练习列表,围绕您需要了解的关键概念进行组织。

  • Rithm School 的 JavaScript 计算机科学基础课程——我一直在跟着学习,因为我没有计算机科学学位。他们解释了概念,然后推荐了一些额外的学习资源(比如 YouTube 视频和 Codewars 上的特定题目)。非常有帮助。

  • Pathrise - 帮助你找到软件工程工作的指南汇总列表。

  • Coderbyte——提供大量编程挑战,免费畅玩10个,否则每月收费30美元。

  • yangshun/tech-interview-handbook - GitHub 代码库,包含一些有用的非技术技巧。此外,还包含算法、前端和系统设计方面的问答题。

  • mr-mig/every-programmer-should-know - 别被标题吓到。这个仓库涵盖了从职业建议数据结构安全架构算法等各个方面的高层次知识。内容很多,但有助于你概览概念并发现新的学习方向。

  • jwasham/google-interview-university - 一个男人为了成为谷歌软件工程师而进行的疯狂尝试。获得超过 4.8 万个赞。我记得他最后好像去了亚马逊。真是不可思议。

  • 30 秒面试题- 一份常见面试题列表及相关网站,这些面试题你肯定会在棘手的 JS 面试中遇到。

服务

以下是一些免费和付费服务,旨在帮助您提高面试技巧和提升您的技术职业生涯。

  • Interview Cake ——Interview Cake 是一个内容详尽的编程面试和概念网站。虽然年度会员费可能有点贵,但如果你真心想深入学习基础知识,那绝对物有所值。他们还提供退款保证。

  • 每日编程题- 每天免费向您发送一道编程题。如果您想在第二天收到答案,则需支付每月 8 美元。

  • Exercism——通过涵盖 48 种编程语言的 2629 个练习,以及我们热情友好的导师团队提供的深入探讨,提升您的编程技能。Exercism 完全免费,永久有效。

  • Codewars ——Codewars拥有数千道由社区成员创建的题目。你永远不会缺少练习题。这些题目按难度、概念和编程语言进行分类。

  • Codesignal——用户界面和用户体验都非常棒。我喜欢他们采用的游戏化和积分系统。

  • Irfan Baqui:轻松应对编程面试——每周免费练习一道题,下周即可获得答案

  • interviewing.io - 匿名与知名科技公司的工程师进行编程面试练习。

  • Pramp——真正的工程师进行真实模拟面试。预约时间,与真人进行面试练习。

  • LeetCode - 从不断扩充的包含 190 多个问题的题库中选择题目,编写代码并提交你的解决方案,看看你是否正确解答了这些问题。

  • Coderbyte——提供大量编程挑战,免费畅玩10个,否则每月收费30美元。

  • HackerRank是一个非常流行的编程题练习平台。一些公司也使用 HackerRank 来评估候选人。

  • InterviewBit - 编程面试题练习。给我们时间,我们助您找到理想的工作。

  • Codility——成为更优秀的程序员。通过我们的课程提升您的编程技能。参与我们的挑战。

  • Codility 解决方案- 一位工程师对 codility.com 问题集的解答。

  • Testdome——获得认证,
    向潜在雇主证明您的知识水平。在我们的公开测试中取得好成绩,即可获得免费的结业证书。

  • CodeEval - 看看你的水平与顶尖程序员相比如何。解锁超棒的创业公司工作和黑客专属机会。

  • Outco.io - 旧金山为期一个月的面试准备训练营

Javascript

PHP

SQL

Laravel

Eloquent 性能模式- 学习如何通过将更多工作下放到数据库来大幅提高 Laravel 应用程序的性能,同时仍然使用 Eloquent ORM。

Git

  • Git 流程- 一些公司遵循的 Git 工作流程,用于管理其部署。

  • Git 游戏- git 游戏是一款基于终端的游戏,它能教会新手和高级用户一些 git scm(源代码控制管理)系统的非常酷的功能。

Webpack

Python

来自 EdX 的Python 计算机科学与编程入门课程。

红宝石

图书

算法可视化

文章

更多问题

技术博客

这与访谈略有相关。以下列出了一些刊登客座作者博客文章的公司。撰写博客并向他人传授知识是理解新知识、提升写作技巧、拓展人脉甚至赚钱的有效途径!如果您有一个面向新投稿人开放的技术博客,请提交 PR。

至理名言

查理·芒格是沃伦·巴菲特的合伙人,他为职业生涯提出了三条原则:

1) Don’t sell anything you wouldn’t buy yourself
2) Don’t work for anyone you don’t respect and admire
3) Work only with people you enjoy
Enter fullscreen mode Exit fullscreen mode

我们还撰写了关于如何提高面试技巧的3种方法

  • 练习你的故事。
  • 谈谈你的经验和优势。
  • 做好调查研究。

寻找可以申请的公司

就业市场瞬息万变。公司扩张和收缩的速度都非常快。今天炙手可热的创业公司,明天可能就会裁员。以下链接可以帮助你找到合适的公司和职位。外面的世界很大,有时候需要付出努力才能找到属于自己的一席之地 :)

  • https://employbl.com/companies - Employbl 是一个湾区科技公司和初创企业的名录。您可以按类型或地点查找公司,上传简历,找到适合您的公司 :)

  • https://whoishiring.io/ - 我见过的最令人印象深刻的求职网站聚合平台。它抓取所有招聘网站的信息,并提供每家公司所在位置的地图。

  • https://huntr.co/ - 一款可以将你的申请和搜索记录整理在类似 Trello 看板上的工具。他们还提供 Chrome 扩展程序,可以快速添加来自各种渠道的职位。

  • https://breezy.hr - 我之前做招聘的时候用过这个网站。它其实是为人力资源部门设计的,不过也有Chrome扩展程序,可以用来添加联系人和具体对象。这样你就能记住后续跟进,还能找到志同道合的人。需要注意的是,你需要一个自定义邮箱地址,比如@your-domain.com。用Gmail账号注册是不行的。

  • https://betalist.com/jobs/collections - 按类别分组的公司和职位,例如女性领导的创业公司区块链相关职位的去中心化工作

  • https://github.com/connor11528/tech-companies-and-startups - 顺便宣传一下。我还有另一个仓库,里面收录了位于旧金山市中心的公司信息。数据以 CSV 文件格式提供,包含公司地址。

技术实习

我们分享了一些关于如何在湾区找到技术实习的技巧。说实话,我从未做过实习,但感觉竞争非常激烈。我认为寻找实习和寻找工作有很多相似之处,只是更需要关注截止日期和专门针对实习的职位。期待学习和分享更多关于湾区技术实习流程的信息。📈


原文发表于employbl.com

文章来源:https://dev.to/connor11528/tech-interview-prep-resources-for-software-engineers-561c