面试者说

美国软件工程师求职小记

2015-11-20  本文已影响1864人  3sigma

背景 & 瞎扯

刚来美国的时候,根本没想到会有一天拿到 f, g 两家 dream company, 以及热门 startup SnapChat 的 offer。能拿到这个意料之外的结果,运气固然重要,但实力也是不可缺少的。下面给大家分享一下找工作的历程。

本人 2014 Fall 开始在美国某校读硕。来美国之前,拿到某校的通信工程本科学位。通信工程是 EE 的分支之一,主要课程都是与电路、信号、数学有关的,因此平时都在搭电路、写 MATLAB。大一学过 C++ 和数据结构,然而编程作业基本都是抄好基友的,以至于至今对 C++ 的模板、友元等概念只停留在知道名词的层次。之后三年基本没写过除了 MATLAB 之外的代码。大四下拿到某校 ad 之后开始通过刷题学 Java。

到美国后开始努力刷题,在第一学期刷完 leetcode 一遍~然后寒假时面试 Google 的 summer internship 并顺利拿到 offer。2015年暑假在 Google HQ 实习,并顺利拿到 return offer。 在等 return offer 的过程中,面试了大约十家公司,拿到了 facebook 和 Snapchat 两个offer。

结果

面试细节

总结

facebook 非常注重代码的简洁程度。在不降低可读性的前提下,尽量用短小精悍的代码来解决问题。比如

int a;
if (isTrue()) {
    a = 1;
} else {
    a = 0;
}

可以用

int a = isTrue() ? 1 : 0;

来表示。以及

for (int i = 0; i < len; ++i) {
    sum += nums[i];
}

可以写为

for (int num : nums) {
    sum += num;
}

facebook 也很在意代码的时间复杂度。在白板上写代码的同时,别忘了记录每一行代码的复杂度。如果这一行的复杂度可以优化,不妨在旁边做一个标记,等完成全部代码之后再修改。值得一提的是,多了解几种 O(n) 的排序算法有奇效。

最后,�快速准确地写出高效优雅的代码固然重要,与面试官的交流也必不可少。

总结

心态

准备面试的过程中,尤其在拿到第一个 offer 之前,难免对自己有一些怀疑。这是很正常的。但不要因此变得消极。

教训

一定要看面经!

刷题

刷题不是万能的,但不刷题是万万不能的。

面试

八月初,我参加了 greylock techfair。这个techfair帮我拿到了70%的面试。

在 techfair 期间,通过跟公司代表聊天,我拿到了 Pinterest,Airbnb,Houzz,Shopkick,Fitbit 等公司的面试。techfair 结束之后,陆陆续续有 Facebook,Palantir 的 HR 来联系我(他们从 techfair 的简历簿里找到我的简历)。

实习/工作经历

在我看来,实习/工作经历是简历上最为重要的一项。今年各大公司普遍缩招,相应地bar也提高了一些。有一个好的实习经历无疑是一个巨大的plus。几乎所有面试官都会问我:你在Google实习做了什么呀?当然由于我的代码还没被launch,我只好笑着告诉他们我不能说。

今年facebook改了招聘战略:喜欢从实习生里招人。自家的实习生不够,就去抢隔壁Google的实习生。

课程和项目

对于转行的同学:一定要了解一些系统级的知识点。听说过有同学做出了算法题但挂在了系统知识题上,甚是惋惜。

最后的最后

一定要早准备!

时机很重要。今年linkedin的实习生可以refer。有同学被refer之后第二天拿到电面。我比该同学晚了一周招人,结果简历被秒拒。拒linkedin的员工透露,今年实习生refer得太多,导致到了后期没有headcount了,只好拒掉。

瞎扯

面试时刷题的最大动力就是为了能有朝一日与面试官谈笑风生,当然最后也实现了(笑)

上一篇下一篇

猜你喜欢

热点阅读