作者 | Ludovico 译者 | 弯月
出品 | CSDN(ID:CSDNnews)
我是一名刚刚毕业的欧洲研究生,我将通过本文分享个人找工作的经历。
有人可能会说美国有很多机遇,别的国家也一样吗?高科技市场对技术人员供不应求,但入门级的程序员好找工作吗?
我的答案是肯定的。然而,我们面对的竞争确实激烈得多,但我们要想办法拿到面试的机会,而且还需要一定的相关经验。
我的背景
我的大学专业是应用数学,但在大二的时候,我发现自己很喜欢写代码。于是,我经历了一段不同寻常的实习,这也是我在大学期间所做的最有意义的事情。通过实习,我找到了自己最喜欢的发展领域。我很庆幸在为了获得好成绩而努力学习之余,我还花费了很多精力探索自己的职业发展方向。
我在这期间内参加了两个活动:“Julia 贡献季”与“Google 代码之夏”,从事了一些开源软件工作,并编写了一个库:Surrogates.jl(https://github.com/SciML/Surrogates.jl)。
我非常感谢 Julia 社区,作为一名开源开发人员,我获得了极大的成长,学到了世界各地许多研究人员都在使用的软件开发技术与库的高级设计知识。
当时,我还在犹豫硕士毕业后是否还要挑战博士学位。为了坚定决心,我决定继续使用 Julia,同时与艾伦图灵研究所合作解决一些开放式研究问题。这段经历让我意识到学术环境并不适合我。这又是一个宝贵的经验!
在那段时间里,我女友在瑞典哥德堡读书,所以我决定搬去那边,同时在沃尔沃汽车公司实习,继续完成计算机视觉相关的硕士学业。
不久之后,我搬到了法国的小圣热尼普伊,在 CERN 工作了 6 个月,并编写了很多Python代码。就这样,我一边努力学习,一边慢慢探索自己的兴趣,考虑自己的职业发展,并在不知不觉中迈入了求职与面试的阶段。
准备面试
我的目标是机器学习软件工程师和应用科学家。我也申请了数据科学职位,但没有收到回复。我感觉数据科学入门级职位的竞争非常大,也有可能是因为我只是一个不怎么引人注目的候选人。
为了准备面试,我练习了两方面的技能:编程和机器学习知识。
在编程方面,我做了以下准备:
-
75个随机问题;
-
education.io 上的课程 Grokking the coding interview;
-
刷了 leetcode 和 binarysearch 上的很多题(约200道)。
我意识到,如果想紧跟市场的步伐追求高薪,则可能需要在几年后再次参加面试,所以我针对每个重要的编程问题都做了笔记(https://hollow-wood-560.notion.site/Coding-questions-FAANG-prep-9cdf280e5f30425fa188cbbaa6d1998c)。如果你想了解一下哪些题目值得刷,也可以参考一下我的笔记。
在机器学习方面,我做了以下准备:
-
阅读《Introduction to statistical learning》;
-
Grokking 的机器学习面试课程;
-
《Data Science Prep》卷 I、II、III。
面试
我于 2021 年 9 月左右开始申请工作。我同时申请了许多入门级的软件工程师职位。原因很简单,如果幸运的话,我能拿到多个offer,这样就有了交涉的空间。
我总结了一下自己申请过的公司以及最后的结果,其中三分之二的公司直接拒绝了我。
虽然在上述公司中,只有少数从事专业的人工智能研究,但我还是申请了这些公司,理由如下:这些大公司或多或少都有自己的机器学习团队,而我的专长就是这方面,所以我想最终我会找到一个称心的团队。
被拒
我的在线测试的表现非常糟糕,因为我很容易感到无聊,所以大多数面试都很快拒绝了我。而Helsing 在面试的过程拒绝了我,他们要求我必须在家中完成一个机器学习的问题,而且我的表现确实不好,所以也不出意外地被拒了。
Offer
为了能让自己在面试中放松下来,我会听一些音乐,并穿上最喜欢的衣服,给自己打气。
此外,我把面试当成“与另一位工程师一起解决一个小算法问题”的小游戏,不用考虑风险。也许无法保证每次都给出最理想的答案,但我会努力表达思考的过程。
最终,我收到了以下几个offer。
Meta
我收到的第一个offer来自Meta,面试过程包括:
-
技术面试
-
虚拟现场
-
技术面试1
-
技术面试2
-
行为考核
Meta 的面试难度非常大,这是我没想到的。我需要在 45 分钟内解决15~20个问题,不过我的表现还不错。对于 Meta 的面试准备,我建议重点复习一些常见的问题。
面试一周后,我就收到了offer!不幸的是,新毕业生的薪资待遇没有商量的空间,不过好在 Meta 给出的条件相当不错。
手里已经有了一个offer,这让我在接下来的面试中非常放松。
UBS
几天后,我又收到了来自 UBS 的 offer。UBS的面试包括一次技术面试、一次技术测试和一次行为测试。
然而,我拿到的 offer 只有基本工资,没有奖金,也没有任何补助。我与招聘人员进行了沟通,最后得到的答案是:“这是最优offer,不可能再上调。”于是,我拒绝了,毕竟这个 offer 也只是一个备选。
Snapchat
在此期间内,我还参加了 Snapchat 的面试。整个面试过程漫长而枯燥,难度不亚于 Google。尽管如此,他们在维也纳的团队确实是一流的,如果你喜欢计算机视觉,一定要考虑一下他们!
面试的经过如下:
-
行为测试,主要谈论以往参加过的项目;
-
C++ 技术考核;
-
向团队介绍一个参加过的项目;
-
虚拟现场面试:
-
计算机视觉技术面试 + 行为测试;
-
计算机视觉与概率/统计技术面试 +行为测试;
-
编程面试 C++ 与 CS 知识 +行为测试;
-
编程面试 C++ 与 优化问题 +行为测试;
-
编程面试 Python 与 机器学习问题 +行为测试。
几天后,我收到了 offer!他们给出的薪资待遇比 Meta 略低。我向招聘人员说明了这份 offer 的基本工资非常低,而且没有奖金,他们表示理解,但似乎也没有调整的空间。由于我很喜欢这个团队,所以我请求多给我几天时间考虑一下。
Google 的整个面试过程极其漫长!不过我早就预料到了。
-
视频通话:简短的技术面试;
-
技术测试;
-
虚拟现场(两天):
-
行为测试
-
技术面试1
-
技术面试2
-
技术面试3
-
技术面试4
现场面试结束后,招聘人员告诉我,反馈很好,我们可以继续向前迈进。后来,我又接受了一个机器学习团队的电话面试。同时,他们还询问其他公司给出的 offer。
几天后,我收到了 Google 发来的电子邮件。我欣喜若狂,因为我不仅拿到了 offer,而且薪资待遇还超过了 Meta!这也是我拿到过的最佳 offer!
老实说,我已经打算接受这个 offer了,但我想抓住这次机会锻炼一下自己的谈判技术。我给自己打气:我在 Google 的面试中表现非常出众,而且我有很多其他的 offer,所以我仍然有交涉的筹码。
于是,我与招聘人员进行了沟通,我们的通话持续了 30 分钟。当时我的压力很大,内心十分慌张,但我故作镇静,据理以挣。第二天,他带来了一个好消息,他们给我的 offer 追加了一笔股权。
Yelp
Yelp 的面试过程十分有趣。
-
在线测试
-
机器学习设计测试
-
虚拟现场:
-
机器学习设计
-
技术面试
-
行为测试1
-
行为测试2
经过一轮谈判,最终 Yelp 给出的 offer 与 Meta 差不多。我非常喜欢 Yelp 的文化,我遇到的每个人都非常友善。这对我来说是最愉快的面试经历。
最终决定
到了最后下决定的关键时刻!能够走到今天这一步,我感到非常幸运。同时,我也为自己所付出的努力感到自豪。
最终,我选择了 Google。因为他们给出的总薪酬要高得多,此外他们的团队主要从事机器学习的建模工作,而我的目标就是成为一名机器学习工程师。
起初,我有点担心自己的职业发展,而我拿到的 offer 也低于平均水平。不过,我明白,其实低级职位做好了,升职加薪也没有那么难,所以我很安心。
也许几年后,我需要寻找新的机遇,并重新评估自己的定位。不过,此时此刻,我只希望在 Google 努力学习,发展壮大,同时也尽己所能贡献自己的力量。
原文地址:https://ludoro.github.io/blog/career/2022/02/14/newgrad.html
本文为 CSDN 翻译,转载请注明来源出处
— 推荐阅读 —
二十年前,《程序员》创刊时,我们要全面关注软件人的成长。今天,我们依然初心不变:在一行行代码的背后,是一颗颗鲜活的开发者想要改变世界的雄心壮志。因此,《新程序员 004》从 C++之父 Bjarne Stroustrup、C# 之父 Anders Hejlsberg、MySQL 之父 Michael "Monty" Widenius、PostgreSQL 全球开发组联合创始人 Bruce Momjian 等程序员祖师爷,到阿里巴巴副总裁贾扬清、指令集创始人兼董事长潘爱民、Vue.js 作者尤雨溪……48 位技术大咖,共创我们的程序人生、我们的技术时代。《新程序员 004》已全面上市,欢迎订阅!