作者michael0728n (蒜˙远古)
看板Soft_Job
标题[心得] google embedded SWE 面试心得
时间Wed Feb 17 15:56:54 2021
去年面试google时recruiter问要走一般SWE流程还是embedded
当下觉得很难选,上网找又很少embedded SWE面试资讯
事後想想不如自己写一个吧
板桥办公室新启用应该也有些embedded SWE缺吧,面试进来可以把座位填满XD
主要关注在embedded SWE面起来有什麽差,以及准备过程
不会提到问了什麽题目
======== 背景 ========
一线IC设计厂5年经验,然後转战新创
之前面过两次google
第一次leetcode刷了大概40题,面到onsite被HC reject
第二次刷了大概300题,onsite不够好没送HC
(HC = hiring committee 一个会议决定这个人是否通过,详情不是很清楚)
======== recruiter 接触 ========
recruiter直接透过email来询问,大概是因为之前有面过吧
我回覆有点忙几个月之後再说,就陆续信件往返了几个月
想说来面看看,recruiter也有大概说明面试流程
我当时的理解是这样:
phone interview => (virtual) onsite => team match => 谈判跟录取
事後回来看也是这样
======== phone interview 准备 ========
recruiter 给的资讯来看这边general SWE跟embedded SWE没差
另外先前不知道看哪篇文章说刷题分门别类刷比较有效率
这次尝试此方法来熟悉一些类别,的确很有效,尤其是找回记忆特别有效
熟悉的方法:
针对要熟悉的类别 (leetcode有帮题目分门别类)
先刷该分类的easy,刷了几题确定基础能写出来
再去刷mid,刷到10~15min能AC就差不多了
分类就array, tree, linklist, DP之类的,常见的资料结构跟演算法都刷一刷
这边弄完大概一百出头题
======== phone interview ========
题目大概在leetcode easy~mid之间,follow up有到hard我只有口述想法
面起来感觉的确跟embedded无关
另外题目完全没看过但很有趣
======== onsite interview 准备 ========
过了几天recruiter说通过了并转介给另一个recruiter
先聊了一下并有问说我想要走general SWE流程还是embedded SWE流程
当时得到的资讯是说走 embedded SWE会有一些关是domain interview
面完通过之後team match主要会跟需要embedded SWE的主管谈
(这边印象模糊,不太确定是不是这个时候得到的资讯)
最後可以拿到offer的话job title也会是SWE
当时觉得很难选(所以有了这篇文章)
我选了 embedded SWE 流程,然後recruiter信件给了我一些资料跟说明
有提到面试包含domain interview / general SWE interview
/ system design interview / soft skill interview(?)
资料里面有提到embedded domain大概要准备哪些知识
列的超多,但大概七八成就是OS课本里面那些章节
我准备这些知识的步骤是这样
1. 先上网查相关知识有个概念
最好是能找到一些大学OS网站的投影片看一看概念比较全
2. 想一下它们跟之前工作做过的project有什麽关联
或是实际上在linux写kernel driver or user space program怎麽用这些知识
3. 上网搜寻Linux怎麽实作这些知识(或直接看code)
或是各家硬体怎麽运用这些知识
例如我可能想知道Linux怎排程的,或是CPU cache有什麽实作技巧/各层多大之类
4. 试想如果我来面试别人,针对这些知识怎麽问问题
列出这些问题的中英文跟我拟好的回答
(因为我有排到非台湾site的面试官所以英文变更重要)
当时是弄了很久,拟了大概三四十题吧(有些抄网路上的),最後被问得不多但还是有用
我不确定有没有更好的准备方法
刷题部分我是分类刷一刷後随机刷
有看 cracking the code interview 我觉得帮助算大
里面的trick都看过,但就当整理复习
快到面试的时候大概想了一下如果我是面试官我针对embedded SWE会问啥
针对这种问题去刷 (array / bitwise之类的)
面试前看了一下大概三百出头题 (包含phone interview前刷的)
======== virtual onsite interview ========
因为不能讲题目,列点列出一些经验
* domain interview 写白板题的时间还是占不少
写完对面有问我一些,跟题目有关的 OS 或 embedded 相关问题
然後题目的包装我感觉都比较像是日常工作会遇到的问题
(帮总统规划飞去各州演讲的最短路径我感觉就不像是日常工作会遇到的问题XD)
有这样的题目包装,蛮容易延伸问 embedded 相关知识
* general SWE interview 那关,对方应该还是知道你是面embedded SWE
我被问到的题目我感觉还是有embedded相关,但不知道是不是general case
* system design 也是 embedded 相关,一样要花时间写code
* coding难度(体感),一半的关卡有问到leetcode hard,至少都有问到mid
没有一题是网路上有看过的
* 有一关软实力,细节有点忘了,就问一些日常跟同事工作相处的经验
======== misc ========
* team match 就是了解一下 team 也让主管了解你
可以趁机问一下部门技术线或风气之类的
之後如果你要去主管也要你,就再往下走
* 在任何一个stage收到recruiter的信约时间说要short talk / small chat
我认为都没有正面或负面的意思
有收到reject消息过,也有收到pass往下一关消息过
电话接了才知道
* 整个面完我感觉embedded SWE需要更多一点 embedded or OS 相关知识
但没有被问到很疯狂的演算法问题
整体面试差异比想像中小,没有因为是面embedded就很少code很多知识问答
(只能说我的经验是这样,不确定是不是普遍现象)
再让我选一次我还是选择走embedded SWE流程
因为跟之前工作有强相关准备起来还是比较有底
* 不用全部都面的超好也有机会上
我virtual onsite有几关事後知道自己有些地方讲错,还好还是有过HC
* virtual onsite都远端,我是分几天面,也有排到非上班时间面
(我排到有几场是一大早,所以就有猜测到是不同时区面了)
======== 刷题心得 ========
刷题我是leetcode另外开一个session刷,最後写了三百出头题
刷的时候卡十分钟就看讨论,看完不写,书签起来,隔天写
写的出来也一定看讨论,看有没有更好写法,有更好写法就比照前面步骤隔天写
有时候写完会发现,上次准备面试的自己,也有写过这题
回去看以前自己的写法,常常完全看不懂
才有感觉程式的可读性很重要,前一次大概是太注意刷很多题没管coding style
这样是不行的会炸开
但有些hard看完解法之後觉得解法太专一只能用在这题,我就会摆着不管他
有可能你之後真的一辈子没看过这种解法了,就自然忘记吧
但也有可能又在其他hard看到这种思路
看过两三次有点印象的话,那我还是会花时间吸收(仔细看懂+写个两题)
也因此学了一些思路
刷到面试前我hard大概可以解掉六成
另外刷到一半有体悟,刷题大概要锻链两个部分
其一是写程式速度跟稳定性,各种基础工具写的越熟速度越稳
例如某题你可能一看就知道是array binary search
写的不熟会卡一些奇怪的地方,right index要指哪里,要不要加一之类的
写的熟你可以很快写出来,甚至直接呼API看面试官有没有叫你要自己实作
另个例子是写tree traversal就会想说recursion截止条件是要怎样
是要传进来node是null截止还是node的child是null就不往下继续呼叫
卡一些奇怪的地方,多想几分钟,就比较吃亏
其二则是用什麽资料结构跟演算法解题,也是一般比较会被注重的地方
二很重要,整关炸开通常是二没想到
但是一也很重要,一做得好,暖身题或题组第一题可以快速解决
等於是帮後面的难题争取思考时间,也有更多余力注意corner case之类的细节
另外有空的话找人帮mock interview会有很大帮助
习惯时间压力是一个点,有人帮你看,你的解释是否能容易被听懂,也是重要
要不然就多面几家练习也行(?)
======== 总结 / take away ========
* 体感来说,选embedded SWE面试,会被问一些 OS / embedded 相关问题
白板题比较像日常工作会碰到的问题,然後借助题目延伸问相关知识
跟general SWE 面试没有差到太多
* 面embedded SWE 进来就是挂SWE
* google 还在招人
祝大家2021都能快乐工作罗
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.71.213.153 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1613548617.A.C70.html
1F:推 kyrie77: 强者推,刷题的部份说得很细XD 02/17 16:06
2F:推 fig498: 推强者,感谢分享! 02/17 16:30
3F:推 Swark0321: 强者,推五星推推 02/17 16:32
4F:推 yamakazi: 我跟你面同一个职位,但刷题第一关考三题middle,第二关 02/17 16:44
5F:→ yamakazi: 都在都问domain knowledge。 02/17 16:44
原来如此,可能不同面试官还是有差异
6F:推 shiauji: 感谢分享 02/17 16:59
7F:推 mpjp: 推推 谢谢分享 02/17 17:03
8F:推 Csir: 强者!! 02/17 17:11
9F:推 benian: 强哥推推 02/17 17:12
10F:推 decheng: 推,可以分享一下怎麽谈package 吗?谢谢 02/17 17:15
11F:推 aas5566: 推 02/17 17:49
12F:推 Inglenook: 推 02/17 17:51
13F:推 summerleaves: 推 02/17 18:24
14F:推 wvwvwvwvwv: 推 02/17 19:40
15F:推 xpasser: 推 02/17 19:41
16F:推 kangan987: 推 02/17 20:39
17F:推 yislin: 推刷题心得 02/17 20:49
18F:推 orz811017: onsite题目有那麽难喔QQ 谢谢分享 02/17 21:04
我的体感是难的题目会在几层follow up後浮现
至於如果因为时间关系没有摸到那些follow up
会不会因此吃 不推荐录取 我就不知道了
19F:推 eju901677: 推 02/17 21:47
20F:→ cha122977: general SWE interview都常都是找SWE来面 02/17 21:54
21F:→ cha122977: *通常 所以 题目不见得和embedded相关 02/17 21:56
22F:→ cha122977: 可能你的见试官有特别选题 02/17 21:57
23F:→ cha122977: 另外面试官的确看的到你面的职位 02/17 21:58
感谢补充资讯~~
24F:推 kuochuwon: 感谢分享 很有条理 02/17 21:59
25F:推 ortuortu: 推!! 02/17 22:31
※ 编辑: michael0728n (111.71.213.153 台湾), 02/17/2021 22:56:09
26F:推 aria0520: 推 google现在有比较prefer新鲜人之类的吗 02/17 23:33
27F:推 philip80220: 强,推详细 02/17 23:41
28F:推 wulouise: 好奇原po学校是EE/CS吗? 02/17 23:42
29F:推 bnd0327: 恭喜恭喜 02/17 23:45
30F:推 wulouise: 应该说科系,打错成学校 02/17 23:50
31F:推 craig08: 推分享 02/18 00:22
32F:→ cha122977: 一直都收不少新鲜人 问题在怎麽得到面试机会 02/18 00:29
33F:→ cha122977: 绝大部份新鲜人都是白纸 面试资源有限不可能都找去面 02/18 00:30
34F:→ cha122977: 新鲜人最好的管道是实习 不用和已就业的人竞争机会 02/18 00:32
35F:推 e12518166339: 好奇原po有碰到印度籍的面试官吗?我去年碰到有点崩 02/18 00:57
36F:→ e12518166339: XD 02/18 00:57
37F:推 Lucifer10896: 推 02/18 01:07
38F:推 Gazella: 谢谢分享 02/18 02:25
39F:推 taipoo: 推分享 02/18 02:51
40F:推 plcc122: 推 02/18 07:43
41F:推 GameDemon: 感谢分享! 02/18 10:02
42F:→ GameDemon: 不知道大大可否再多分享一些system design/domain的部 02/18 10:03
43F:→ GameDemon: 分 还要写code感觉有点难想像会怎麽出题 谢谢 02/18 10:03
44F:推 iammuse: 推 02/18 10:44
45F:推 surfingbboy: 我觉得我认识你耶 蒜 02/18 22:12
46F:推 Yujjlin: 推推 02/18 23:23
47F:→ viper9709: 推分享 02/18 23:44
48F:推 kiki86151: 推分享 02/18 23:49
49F:推 NTU5566NTHU: 感谢分享 02/19 11:14
50F:推 hao1993: 推强者 02/19 11:15
51F:推 remmurds: 推分享 02/19 12:41
52F:推 codefarmer: 希望大大能分享更多systems design 的部分 02/19 13:55
53F:推 celesti: 恭喜 不过google给的比一线ic设计厂多吗? 02/19 18:33
54F:→ celesti: 可以分享加薪幅度吗? 02/19 18:34
55F:推 zmcx16: 推分享 02/19 21:39
56F:推 sarsman: 推推 02/19 22:27
57F:推 tomap41017: 强者 02/21 12:47
58F:推 ntddt: 推faang面经 02/21 16:07
59F:推 chiahere: 强者推推 02/23 09:41
60F:推 imjeffreylee: 感谢分享 02/23 18:57
61F:推 ppc: 推分享 02/24 01:35
62F:推 n1canhelpu: 想请问是用C刷题呢? 还是C++ 谢谢 02/25 02:32
63F:推 powerccc: 朝圣推推 蒜头哥万岁<3 03/06 14:42
64F:推 landattack: 推 感谢分享 04/11 09:40