各位大大好,小弟今年二月从研究所毕业,二月底开始找工作。
想说把自己找工作的经历写下来,希望对大家有帮助。
不常发文,希望排版没有乱掉...
# 我的背景
大学 134 CS / 研究所 113 CS
大学有一些兼职经历,写过Web后端、一些 CV 类应用,当过 PM。
毕业专题是破解 Mifare Classic Card。
研究所做的是软件测试和程式安全,不免俗地跟一下 Deep Learning 的风。
打过满多竞程类比赛,两次ACM亚洲区,一些 NCPC、NCPU 的经历,
也有CTF跟五次金盾奖决赛、黑客松
跟一些奇奇怪怪的比赛,得的奖应该不算少。(感谢神队友们)
语言能力的话,TOEIC 810、日文N2,
做过英文的新闻稿翻译跟软件工程协会的日文接待翻译。
# 准备过程
重新办了一个 LeetCode 帐号,刷了共一百题,只刷 Easy 跟 Medium。
过程中按照 Tag 刷,像是 Array、Linked List、Tree ... 这样。
投履历后,途中陆陆续续大概翻了这些书
Fundamentals of Data Structures in C(资料结构)
Operating System Concepts(恐龙本)
The C Programming Language
Cracking the Coding Interview
Computer Systems: A Programmer's Perspective
# 面试经历
1. Google (Taipei)
应征职位: Software Engineer, Campus Graduate, 2020 Start
2/24 12:12 收到 HR 邮件通知下午视讯
2/24 15:30 ~ 16:00 HR Phone Interview
2/26 5:25 通知 Technical Phone Interview 时间
3/9 14:00 ~ 14:45 Technical Phone Interview
用 Google Document 和面试官视讯做 Online Coding,总共有两题,都不难
在没有其他 library 可以用的情况下,写程式翻转一个字串。
我写一个循环两个指标不断 swap。
第二题有一点不好解释,总之很像是机器人找路径到右下角这种经典题目的变形,
我用 DFS 解。
要一边写一边跟面试官解释为什么要这样写,并且回答他的问题。
过程中会不断问你 Time complexity 跟 Space complexity。
这部分我答得很差,脑袋卡住几乎都答错。
面试结束后就发现了,但已经来不及了QQ
结果:3/11 邮件通知 Reject
2. 行政院国家资通安全会报技术服务中心 NCCST
有打过金盾的话应该对 NCCST 不陌生吧XD
应征职位:资安工程师
3/3 收到 Codility 6题 120分钟
3/6 写完
我觉得都是题目都是 Leetcode Easy,顶多接近 Medium,
但有一题 Tree 我写坏了只有 2X 分,其他都 100。
3/13 10:00 一面
自备简报自我介绍,长官人都很好,其中一个我记得是课长,
听的很认真,问题也很多。让人感觉很好。
他说他们主要想找对资安有概念,
并且程式能力强的人来写他们内部要用的 Sandbox。
因为 NCCST 是金盾奖的主办单位,
另外还有被问到觉得哪一些题目有趣,有没有可以给他们的建议。
3/23 10:00 二面
到了之后先做英文测验,是用笔电做的,
跟 TOEIC 差不多的模式,但题目比较少。
我觉得我答的没很好,有点翻车,但题目是简单的。(做完马上冲去厕所尬赛XD)
比起一面多一些长官来,基本上就是讲一样的简报。
3/30 14:28 寄信询问面试结果 / 告知通过
结果:3/31 邮件通知 Offer (N+11)K x 13
3. 趋势科技 Trend Micro
应征职位:【新战力募集】Software Developer - 软件研发工程师
2/23 请实验室学长内推
2/25 收到 Codility 3题 100分钟
3/6 写完
Leetcode Easy ~ Medium,虽然不会秀分数,
但我觉得没意外的话应该满分...吧...吗
3/18 17:00 一面 CoreTech 的 Cloud Development Engineer(SPN) 和
Cloud Development Engineer(ERS)
因为疫情关系公司都是采用 ZOOM 线上面试。
两位主管一起上,问了一些 C++/Golang 的问题我都不太会,
看来以后面试不能说自己会 C++,不然很容易被问爆。
其他倒是还好,像是 Process 跟 Thread 差异、Deadlock、同步问题都有问,
但我觉得答得不算很好,而且都是教科书答案。
3/25 15:00 二面 SPN 但告知找到人,
所以换一面 CoreTech 的 Software Engineer
有点不太记得,但我记得主要也是 OS 类的问题,还有 QA 的问题。
可能因为我大学跟研究所都有修 Software Testing / Quality Assurance 的课程,
实验室也有做 Automation Testing 的技术,所以 QA 类的我觉得我答得好很多。
3/26 10:00 二面 同部门QA,面 Software Engineer in Test
了解我的背景后,针对专案要我回答一下开发过程中一些问题,
软件开发流程、测试、Debug 等等。
还有了解一下 CTF 的细节与关于逆向的一些小知识。
面试官人很好,感觉对我的 QA 跟逆向能力比我自己还有信心,
害我有点不好意思。
3/27 16:00 HR Phone Interview / 告知尽量于清明连假前给答案
4/6 10:21 收到 HR 来信要通知后续
结果:4/6 电话通知 Offer (N+17)K x 14
职位:Software Engineer in Test
4. 辉达 NVIDIA
应征职位:System Software Engineer - GPU - NCG
2/25 收到 HR 电话
中国口音,有点噪声,听得不是很清楚。
3/11 13:00 PM - 16:45 PM 一面
因为疫情改用 WebEx 线上面试。
一开始先写一份考卷,用 Google Document 传过来写,感觉跟 Google 很像。
题目主要都是 C 语言的问题,有两题 Bonus 是 C++ 的问题。
C 的部分不难,而且题目很有趣,
都是一些 C 的概念问题,核心观念没问题的话基本上不会错。
我有一题没答出来,就是要自己写 malloc,使得要出来的空间对齐某个值。
C++ 的话我记得是 vtable 是什么,
还有什么时候用 user-defined copy constructor。
交出去后,面试官请我自我介绍,并问了一些比赛跟专案的问题,
有几题是情境题,问我会如何处理某些状况,还有效能优化的方式,
最后还问了平常有什么兴趣。
我则问了这工作主要是做什么,training program 的内容等等。
过几天收到上次那位中国口音的 HR 电话,说我分数很高,想邀约二面。
3/17 13:00 PM - 18:00 PM 二面
排了五个人要车轮战,中间夹了一个 Hiring Manager。
因为面到后面很累,而且 WebEx 一直断线,
跟不同面试官换了好几种方法都没办法解决,
我一心只想赶快结束,不太记得很细节的内容。
第一个面试官请我自我介绍,问了很多专案的问题,
然后意思一下问点 OS(没错,就是 Process v.s. Thread),
最后问我“你觉得台北市有几支伞?”,
我向面试官确认了问题的本质是否确实是字面上的意思,
最后根据人口数给一份推理和答案。
面试官说有时候主管会有很无理的要求,
所以想看一下我面对这种问题时会怎么样。
第二个面试官说他爱白板题,所以丢来 Google Document 要我写三题程式,
过程中不断问你问题,跟你一起写程式,跟面 Google 很像。
第一题:写一个检验 Binary Tree 合理性的函式,
因为时间不够,我写到一半他就说他知道我要怎么写了,下一题。
第二题:根据输入翻转某一段 Linked List。
第三题:没写完,只记得是有点复杂的找到字串排列版本。
Hiring Manager,问了很多社团、专案经验、如何处理冲突 … 等等的问题。
最后考两题逻辑题目,第二题我用数学回答,他说答案对,但希望是更直觉的答案。
第四个面试官问了我很多 CTF 的问题,跟我聊一些技术上的东西,
他说他都不了解这些,希望我跟他解释一下。印象满好的,没什么卡住。
因为 WebEx 完全无法用,第五个面试官打电话来跟我聊,
被一些 C++、OS 的问题电歪,还有情境题,
像是问我怎么 Debug 跟优化效能的过程等等问题。
接着跟我解释一下这个工作会碰到的内容,
最后跟我说其实他不知道要问什么,
他只会面 Senior 的工程师,实在不知道要怎么问刚毕业的新鲜人。
3/26 11:00 寄信给人资询问结果 / 没回
3/31 10:32 再次寄信给人资询问结果 / 回信表示有与人事经理确认,
但对方没回,等到回信会跟我说
结果:实在等太久了,直到现在一个月了也没通知
5. 中华资安国际股份有限公司
应征职位:机器学习资安应用技术工程师
3/05 Phone Interview
某日早晨突然就来了,通常不都会邮件通知吗?
问我的背景、对于机器学习跟资讯安全有什么想法之类的。
3/16 5:00 PM 一面
三位面试官,请我简报自我介绍一下,因为没有提前说,
我就拿去 NCCST 的那份介绍。
了解我的背景之后,各自问了一些专案的内容问题。
接下来由其中一位面试官问了很多 Deep Learning 的基本问题,
都很简单,但是考试完就忘记了,我都只能说出个大概。
跟着又问了一些设计 Deep Learning 应用上的问题。
告一段落之后,我被问了一些资安的问题,
像是 OAuth standard、防御 CSRF、SQLi … 这些问题。
但我其实都没准备,而且我 Web 超烂,所以都只能回个大概。
最后他们告诉我,因为疫情关系可能要等两个礼拜才能有回复。
面试官人都很好,一开始帮我倒水,后来带我离开时跟我闲话家常,
说大家都要去接小孩了,也跟我聊了我的同届同学(虽然我不认识)。
还有一个面试官则递给我名片,笑着说都是同校毕业,
以后业界走跳都遇得到,请多指教。
结果:3/31 寄信给面试官询问结果 / 回信告知人事经理冻结人员聘募
6. 华硕 ASUS
有很多公司我都婉拒了,但华硕的经验很特别,所以我把这次的经验写出来。
华硕不断打电话来,邀约我去面 软件研发工程师,我看了一下感觉兴趣缺缺。
过几天收到 HR 的信,邀约我面 Android软韧体研发工程师(行动通讯产品),
我回信答应,接着 HR 打电话来,跟我确定面试日期。
随后我收到征试时间通知函,又变成 软件研发工程师。
我整个问号到不行,回 HR 信确认也没回应。
面试当天早上有打电话来,可惜我还在睡觉,就没去面试了。
# 后续
最后选择去趋势。
这几天一直觉得,身处疫情中能找到工作的我实在是很幸运。
另外,虽然有很多公司找我去面试,甚至有的在毕业前就塞 Offer,
但第一眼就对胃口的很少,
有一些公司光是通电话或看到 mail,就能笃定一辈子不会跟他们有接触。
面试的过程中深深体会到了学海无涯,实在是太多自己不懂的了。
即使拼了命的面试前唸书,也还是会有遗漏的部分,CS 的领域真的太多太广了。
最后希望大家都能找到自己喜欢的工作。
谢谢大家。