最近有幸和一位在FAANG公司工作多年,并积极参与公司实习生及软件职员招聘工作的资深工程师进行了交流,取得了一点真经,本来是给儿子看的(原来的记述均为英文,from 录音),现在把中文贴在这里(有的地方没能够准确表达,但意思在那里了),供参考。也算是弥补一下在这里犯的错误。在贴文的时候,我尽量删掉在这里不合适的语句,但也许有遗漏,看到不舒服的语句,请谅解。
虽然那个博士申请的文章没有用处,但这篇应该还行。反正我听了觉得很好。顺便提一下FAANG,如果你没听过:facebook,Apple,Amazon,Netflix,Google. 我也是第一次听说。
顺便先说几句无关的话题:
引言 (言归正传)
对于一位想要从事软件工程师职业的人来说,本科期间最重要的事情可能就是你的暑期实习,它甚至比你的 GPA 更重要。当然,如果你打算攻读硕士/博士学位,GPA必须达到一定的水平。
该文主要是针对计算机专业或寻求计算机工作的其他专业的学生,但基本流程也适应于任何其他学生。
公司的选择
作为一名计算机大学生,可能想在职业生涯的早期考虑去一家 FAANG 公司(the acronym of Facebook (now Meta), Amazon, Apple, Netflix, and Google (now Alphabet))。作为非 FAANG 的 SWE(software engineer or software engineering),在很多其他优秀的公司工作也非常好,仍然有可能实现职业生涯。
可能要考虑去 FAANG 的几个原因:
周围有可以学习的、聪明的、经验丰富的工程师。
良好的知名度,这意味着你在其中一家公司工作了几年,积累了很好的工作经历。
补偿很好。你永远不需要担心没有足够的钱去买包包或大房子。
最适合工作的 FAANG 公司通常被认为是Google和Meta。原因是他们的薪水很高,很多最优秀的工程师都在那里工作,并且有非常好的环境和福利,比如假期、免费早餐、午餐、晚餐、健康保险、商务旅行等等。例如可以有高达6个月的产假,不仅仅是产妇。你也没有必要加班加点以健康去换金钱。
其他公司
还有很多其他公司被认为是顶级但不是 FAANG,它们的工作方式相同。其中一些公司举例如下,Airbnb、ByteDance、Stripe、Twitter、Uber 等。所以不要将自己局限于一小部分 FAANG 公司。一种好方法是考虑认为拥有你认为生产最有趣产品的公司。
为什么暑期实习很重要
实习是毕业后找到好工作的关键。公司希望雇佣有工作经验的应届毕业生。大公司从他们的实习项目中雇佣大部分应届毕业生。在其中一些公司,你可以在大三实习结束时就获得工作机会,这样你就可以专注于学习和享受大四的乐趣,而不必担心找工作。
面试流程
获得面试的最佳方式是通过学校的招聘会。你将与每家公司的招聘人员和工程师交谈。假设你是一名正在寻找暑期实习的大二学生,要准备好谈论你热衷的软件工程领域的一些知识。最重要的是与招聘人员交谈并询问他们最好的申请方式是什么。
对于你想申请没有不参加你的大学招聘会的公司,只需在线申请即可。查看你的同学朋友熟人中是否有人在那里工作。在 LinkedIn 上联系校友(不管你是否认识),询问他们申请的流程,以及他们是否可以推荐你让你与招聘人员联系。你不必担心不认识他们,放开胆子去联系。
在你与招聘人员联系后,他们通常会给你一个查看你的简历及筛选面试的机会。之后,他们将指导并告诉你后续步骤。
时间线
大多数公司在秋季招聘实习生。这意味着最好的准备时间是在夏天,在八月或九月开始申请流程和面试。
你的夏季该做什么
最重要的是在leetcode或hacker rank上做很多题。起初,这将非常困难。不要放弃,看看解决方案并尝试了解它们是如何工作的。你希望能够做几乎所有简单的问题,并练习很多中等问题。
尝试为自己设定一个目标并跟踪你的目标。每周尝试做*至少* 5 个问题。
弄清楚你想用什么计算机语言进行面试。最重要的是选择一种你熟悉的语言。如果这是 C++,那很好。但是,你可能希望注册使用更易于面试的语言课程。最流行的是 Python 或 Java。
阅读一些书籍以帮助你了解算法和数据结构。我将在资源部分列出这些。
列出你想申请的公司。在google上做研究。如果你愿意,可以和朋友一起制作这份清单,然后你们可以一起准备面试。对于每家公司,尝试查找有关面试结构的信息以及他们提出的问题类型。
通过 leetcode 或hackerrank 互相提问,与你正在从事软件工程的朋友进行模拟面试。和一群人一起做这件事会让你更有可能成功。
准备你的简历,然后给你的老师或其他人查看。也许你的朋友可以帮助你编辑它并就此提供建议。
查看你所在的学校的部门有哪些资源可以利用来帮助寻找和准备实习。一些例子:
大学一年两次的(春季和秋季)招聘会。弄清楚招聘会的日期,以及哪些公司将参加。列出你想面试的公司。
模拟面试。你的学校可能会为软件工程师提供一些模拟面试。你应该尽可能地利用这一点。
黑客马拉松。这是积累经验并有一些辅助项目来填写简历的好方法。拥有辅助项目将帮助你的简历在数千份其他简历中脱颖而出 。
填写您的 LinkedIn 个人资料。添加一张精精神神的照片,并确保你的简历是最新的。
8月至9月该做什么
参加招聘会。确保与你最感兴趣的公司的招聘人员交谈。最好参加计算机或工程学院的招聘会,如果有的话。
在你的学校参加一些黑客马拉松。这将帮助建立简历,并提供很多关于在软件项目中工作的良好经验。
从在夏季创建的列表中申请目标公司。
开始安排面试(请参阅下面的更多提示)。
9月 - 12月该做什么
这是你进行实际面试的时候。你准备得越多,面试时你就越不紧张。你会被拒绝很多。这很正常,重要的是不要放弃。我的建议是先去你不太感兴趣的公司面试,这会给你带来宝贵的经验,一旦你有了经验,你最多可以去你最想得到工作的公司面试。