我如何准备面试
学习/副业项目
在详细介绍申请职位的具体步骤之前,我想先谈谈学习和课外项目。我找第一份工作的时候,经常上网搜索一些建议,希望能找到一些有用的备考资料。我看到有人建议我认真学习算法方面的书籍,练习一些算法题,同时也要做一些课外项目。他们建议的学习量之大,让我感到压力巨大。但在我参加了一些面试,接触了其他求职者之后,我的看法有所改变:专注于学习算法可能并非那么有效,尤其是在申请小型创业公司的时候。
公司对算法的重视程度各不相同
你需要学习多少算法知识,部分取决于你想在哪类公司工作。例如,如果你想在FAANG公司(Facebook、苹果、亚马逊、Netflix和谷歌)找到一份工作,那么解决算法挑战的能力就至关重要。这些公司会招聘来自不同背景的人才,而且通常对没有计算机科学学位的人也持开放态度。然而,为了公平起见,他们会更注重算法能力,因为算法更容易评估应聘者。这类似于许多大学申请需要标准化考试成绩的原因。在FAANG公司,通常会有多轮算法题。
然而,如果你想在中小公司找工作,那么解决纯算法难题的能力就没那么重要了。小公司更需要能立即投入工作的人才。他们往往更看重应聘者的编程能力,而算法题的解题能力对他们来说并非关键。虽然面试过程中可能会出现一些算法相关的问题,但远不及FAANG这样的大公司那么多。如果你想了解某家公司的具体面试流程,可以去Glassdoor上看看有没有相关信息。
有一个经过深思熟虑的副业项目
如果你想在一家规模相对较小的公司找工作,而且你没有计算机科学学位,那么拥有一个业余项目就非常重要。正如我之前所说,他们想要的是能够立即为公司创造价值的人,而你必须证明自己具备这种能力。有些人认为他们的 GitHub 上必须堆满业余项目,但事实并非如此。实际上,很多资深工程师都没有任何正在积极维护的项目。而且,你的项目也不必非常庞大。如果你已经有了一个正在进行的项目,以下两点建议或许对你有所帮助。
- 务必准备一份完善的 README 文件。它至少应该包含项目概述和所用技术的简要说明。招聘人员在初次筛选时可能只会花几分钟时间了解每位候选人。他们或许只会阅读 README 文件,因此确保 README 文件清晰易懂至关重要。
- 清理你的代码。遵循特定语言的规范,并删除不必要的代码。例如,Python 的规范是使用蛇形命名法。如果你的代码无缘无故地同时使用蛇形命名法和驼峰命名法,这表明你对细节不够重视。你可以找到特定语言或框架的最佳实践列表,阅读并据此清理你的代码。
如果你还没有副业项目,并且需要更多这方面的建议,欢迎随时联系我。我可以提供更详细的建议。但最重要的是,要做自己感兴趣的事情,否则很难投入精力。
在实际面试过程中练习算法。
我在求职时发现了这条建议,它彻底改变了我对面试的看法。学习一本算法书需要几个月的时间,我看到有些人甚至等到学完才开始找工作。公司更倾向于问某些特定主题的问题。了解公司喜欢问什么的好方法就是参加技术面试。我曾参加过两家公司的面试,他们都让我解决一个非常类似的问题。试着把面试当作练习。这也有助于你在面试中放松下来。
如果你仍然对算法感到担忧,并希望学习它们,这里列出一些可以帮助你入门的资源。
书籍
- Steven S Skiena 的《算法设计手册》:如果你只能选择一本关于算法的书来阅读,我推荐这本。
YouTube
- Mycodeschool:我最近才知道这个网站,但它的创建者很擅长讲解复杂的概念。利用空闲时间观看这个网站可以帮助你对数据结构和算法有一个大致的了解。
在线课程:我两种都没用过,所以这些建议仅供参考。
- 斯坦福大学的算法规范课程:我研究了一些在线课程,很多人都推荐这门课。我看过课程内容,它足以让你通过面试中的算法题。
- 数据结构与算法入门:另一门很棒的在线算法学习课程。这门课程由谷歌提供,可能比第一个选项更实用。
GitHub 仓库
- 编程面试大学:这是一份关于如何学习算法的综合指南。但是,请记住,并非必须完成清单上的所有步骤。
网站
- LeetCode:我利用空闲时间在 LeetCode 上练习算法。它使用起来很简单,而且遇到难题时通常都能找到答案。
申请
打造一份出色的简历
我发现简历最大的问题在于,很多人写的简历都超过一页。筛选候选人的招聘人员不可能在每位候选人身上花费太多时间。招聘人员看到冗长的简历,往往会下意识地降低预期。简历过长会大大降低你进入下一轮面试的机会,所以请不要超过一页。
我看到的另一个常见错误是列出你掌握的所有技术。我申请工作时也犯过同样的错误,所以如果你的简历上技术太多,你并不孤单。你应该选择你真正精通且能突出你经验的技术。例如,如果你申请的是前端职位,并且了解 React 或 Vue 等前端框架,那么你显然也了解 HTML 和 CSS,无需再列出它们。我也不建议列出你不熟悉的技术。招聘人员不会期望你掌握 3 种编程语言和 5 种不同的新技术,尤其是在你第一次申请软件工程师职位的情况下。简历上技能过多会显得不够真实。
另一方面,如果你熟悉测试框架或基础设施工具,我建议你在简历中突出这些技能。在公司工作与在大学或编程训练营学习编程的最大区别在于,公司更注重可扩展性和可维护性。你可能没有测试或基础设施工具方面的经验,但如果你具备这些经验,这将使你在众多求职者中脱颖而出。
最后,你应该对公司的技术栈做一些研究。这些信息通常会在招聘启事中提及。例如,如果一家公司正在招聘Python开发人员,那么你应该重点突出你在Python方面的经验,而不是其他技术。如果你用Python做过一些业余项目,那么可以在简历中详细介绍你用Python开发过的项目。如果你的简历中有列出技能的部分,即使只是把Python放在开头,也能帮助你吸引招聘人员的注意。
你可以根据自己的喜好安排简历的内容,但很多软件工程师职位的简历都包含以下几个部分:教育背景、工作经历、项目经验和技能。如果你想看一份实际的简历,我很乐意分享我的。我觉得它不算特别好,但足以让我找到工作。
完善 LinkedIn 和 AngelList 个人资料以及你的 GitHub 代码库
初创公司会收到大量的求职申请。一个简单的筛选方法是查看求职者的LinkedIn和AngelList个人资料或GitHub代码库是否完善。这只是基本的职业素养。如果你连这些简单的都做不到,又怎能指望你成为一名优秀的员工呢?我说的“完善”并不是指你必须拥有多个副业项目和实习经历。你只需要填写好基本信息,让招聘人员能够轻松了解你。简历上的大部分内容都可以直接复制。
直接联系首席技术官
在小型公司里,首席技术官 (CTO) 直接筛选候选人并不罕见。当他们使用 AngelList 等招聘平台时,CTO 的邮箱可能会被 AngelList 的邮件塞满。在这种情况下,如何脱颖而出呢?如果你能找到 CTO 的邮箱地址,或许可以直接给他/她发送邮件。但这取决于公司的招聘流程。如果公司明确规定了申请流程,那么遵循既定流程可能更稳妥。公司规模越小,招聘流程越不规范的可能性就越大,你可以利用这一点。
没有完美的方法可以找到首席技术官 (CTO) 的电子邮件地址。你或许能在公司网站上找到,但可能需要一些技巧。销售人员非常擅长用各种方法找到电子邮件地址。他们最喜欢的工具之一叫做“电子邮件查找器”。它可以通过 LinkedIn 个人资料找到某人的电子邮件地址。虽然并非万无一失,但大多数情况下都有效。你也可以直接猜测。许多公司会使用员工姓名和公司域名的组合作为员工的电子邮件地址。如果你能找到一位员工的电子邮件地址,就可以将这个模式应用到 CTO 的姓名上,从而猜出他的电子邮件地址。
找到首席技术官的邮箱地址后,下一步就是发送邮件。邮件内容要尽量简洁。没人愿意阅读冗长的求职邮件。邮件里只需要包含两点:你为什么想加入这家公司,以及你为什么认为自己适合这家公司和这个职位。尽量具体说明。另外,别忘了附上你的简历或其他你想让他们查看的材料。
不要低估一般性问题
有些公司会在申请表里设置一些通用问题。千万不要轻视这些问题,也不要草率作答。例如,如果问你为什么想来X公司工作,不要回答“我只是想找份工作”或者干脆留空。令人惊讶的是,很多人就是这样回答的,结果在简历筛选阶段就被直接淘汰了。你不需要花太多时间去绞尽脑汁地想出巧妙的答案,只需真诚地回答即可。这也是展现你个性的好机会。公司想了解的不仅仅是你作为一名工程师的技能,而是你作为一个人是怎样的。文化契合度在面试过程中是一个非常重要的因素。
可推荐人申请
我个人没有这样做过,但我有些朋友总是尝试通过内部推荐来申请工作。如果你不了解内部推荐,它指的是公司内部有人代表你提交申请。这是招聘过程中非常正常的环节。事实上,很多公司会为推荐成功入职的员工提供上千美元的奖金。如果你获得了内部推荐,收到回复的几率会大大提高。想要获得内部推荐,可以问问你的人脉圈。最好主动联系对方,请他们聊聊公司的情况,如果公司和职位仍然让你觉得合适,就请他们推荐你。不要不好意思。再次强调,这完全正常,而且如果你被录用,推荐人也能轻松赚到一大笔钱。皆大欢喜!这里有一个你可以使用的邮件模板:
您好 XXXX,
希望你大学毕业后一切都好![或者一些个人寄语,或者提及你和对方的相识经过]
我正在申请软件工程师职位。我看到您在[公司名称]工作,而且贵公司有一个[职位名称]的空缺职位,我非常感兴趣。我很想了解您在贵公司的工作经历,以便更好地了解这家公司。
你现在有空聊聊吗?
然后,在电话中或后续邮件中,您可以这样请求推荐:
和你聊天很愉快!听起来这家公司是个很棒的工作场所。你愿意推荐我应聘这个职位吗?如果不行也没关系,我仍然很感谢你抽出时间和我聊天。
如果您有任何疑问,请随时联系makoto@antcode.dev。多年来,很多人在职业发展方面帮助过我们,所以我非常乐意回报大家。
祝您编程愉快!
文章来源:https://dev.to/mkinoshita12/how-to-i-prepared-myself-for-interviews-4g3g