※ [本文转录自 Soft_Job 看板 #1Sk9_TGL ]
作者: shi359 (归人还是过客) 看板: Soft_Job
标题: [心得] 新鲜人面试心得 (MTK/A10/Dell/Synology)
时间: Fri Apr 19 00:03:38 2019
由于自己找工作时在版上获益良多,
因此决定 po 个弱弱的心得文回馈一下XD
这篇文主要对象给像我一样经历平凡,成绩和实做能力都普普的人
希望能提升你们的信心 :)
===============================================================
背景
青椒学硕
大学成绩不是很好... 大概后 60%-70% QQ
没有太多的 project
CPE 考了几次才过,两年前奋发图强开始刷 leetcode + hackerrank
基本上就是 top 100 liked, top interview 的 easy - medium
有过两个暑期实习经验
然后实验室这两年... 其实没啥长进,也没学到太多
===============================================================
1. MTK 软韧体开发 @新竹
如果是第一次面试的话,会先做 C code 测验和英文测验
C code 只有 50 分钟,约 20 题选择题和两题上机考
建议先做选择,时间其实不太够
选择题大都考 macro, pointer, ++ 之类的问题
这边超推 geeksforgeeks 的题库,全部看过一轮并消化绝对不是问题XD
上机的部份不难,但 IDE 超难用,compile 又慢
最后来不及写完 QQ
英文的部份比较不确定,由于我没考多益,所以要另外再考
基本上就是听+读
上述做完后,就是和主管进行面试
不得不说,发哥的面试是我面过觉得最尊重面试者也最有条理的公司
建议这边可以准备 slides,面试大部分的问题都会从你的 slides 去问
所以你的优势就是能够利用简报的内容引导面试官问的问题
技术方面的问题不外乎 OS/计组/网络 的基本概念
有时候会从你作过的 project 去延伸
行为面试的部份都会问到
a. 做过最难/最有成就感的 project 是什么
b. 怎么克服困难
c. project 时间管理的问题
白板题有时候会有,不过不多,有的话也是很基本的问题
前前后后面试了三四个部门吧...
发哥是我第一个面试的公司,或许是这个原因,所以前几次都很紧张
事后回想起来都觉得自己当初面试有一大部分根本在胡言乱语,
难怪前几次都不会上XD
结果: offer get
===============================================================
2. A10 DDoS @台北南港
当初是校园征才时留 CV
过一两个礼拜后 HR 通知面试
这是我觉得面试型态最谜的一间,每个人面试流程都不一样XD
我自己的部份总共有 4 关
第一关是手写 2 题 C code: bit operation 和 circular queue 实做
不过回到家才发现第一题我误会题意,当成字串在处理。
接下来三关都是跟主管或工程师面试
第一位是漂亮的资深工程师姊姊
大致问完背景后,考两题白板题:
a. 给定一个 linked list node, 实做 stack push,
使得新的 node 会在 linked list 的头
这题一开始有点不懂,也很不直觉
虽然最后有做出来,不过似乎不是他想要的
b. Leetcode 98 - Validate binary search tree
一开始写出一个错误的版本,面试官请我举出各种 test cases 后发现自己写错才改回来
最后问一个情境题,我觉得满有趣的:
假如你有好几台 servers 在月球上,要怎么更新 server 的系统,
考量到有可能会更新失败(请举例会发生什么问题),
要怎么做才能避免或解决更新时遇到的状况
这题没有标准答案,基本上就是看你对开发有没有 sense
第二位是美国回来的主管,英文面试
一开始有点吓到,因为没预期要用英文 QQ
他问的问题很活,先问我 DDoS 有什么好处,试着举出 DDoS 类型等
并接着你的回答继续问下去
如果遇到不会或不确定的问题,他会问一些引导问题,
让你从这些问题中推导出正确答案
坦白说最后被问到很崩溃,整个被钉在墙上
不过还满喜欢这样的面试,能够从中学到不少
中间有一两个问题因为太紧张,被问到头昏脑胀,有点胡言乱语
所以让我用中文补强 哈哈哈
第三位则是一位工程师,人很好,看我前面被摧残那么久
问的问题都不难,也都是点到为止
问了两道白板题:
Leetcode 347 - Top k Frequent Elements
Leetcode 206 - Reverse Linked List
还有其他 interrupt, race condition 之类的问题
结果: 隔天早上收到录取通知,没有板友之前遇到的问题
==============================================================
3. Dell 软韧体开发 @台北
不知道为什么 dell 的面试文超级少...
Dell 的会议室很特别,是用台湾县市命名
我被带进桃园的会议室
第一关都是主管面试,气氛很好
没有问技术问题,都是行为面试: 经历,修过哪些课,做过的 project ...
不过他们好像很在意我没有硬件 background...隐隐约约猜得到应该是没希望了QQ
第二关是工程师,两位面试官都很年轻
问了几个简单的白板题,因为不难,所以很快就解出来
a. 给定 n, 给出 n*(n-1)*…*1 的乘积, 分别用 loop / recursive 去作
b. Leetcode 1 - Two sum
c. 给第一个 array 和一个数字 n, 找出所有比 n 大的数字和他的 index
最后有小聊一下,告诉我第一份工作很重要!
觉得应该是我没有 hw background 加上做的 project 也都比较无关
结果: 无声卡
==============================================================
4. Synology @台北
传说中的魔王级面试...
其实没想像中的可怕,考的题目其实也都是 leetcode easy~medium 的常考题
我自己觉得比较要克服的是写白板题的紧张 QQ
不过我到第二关就 GG 了 QQ
第一关
首先自我介绍,但由于我做的领域和面试官的领域不同
所以花了满多时间在解释论文和 projects
之后考了两题白板题:
a. Leetcode 54 - Spiral Matrix
b. 延伸上一题,假设给定一个 matrix, 数字是呈螺旋状的连续数列, 如下列
1 2 3
8 9 4
7 6 5
并给定一个数字, 请找出该数字的座标
一开始我是给出像第一题 traverse 的解法,中间讨论修掉 bug 后,
面试官问我能不能提出更简洁的方法,才想到用 mod 去算。
其实第一关对自己不是很满意,写的 code 也很多小 bug,感觉他是勉强让我过的XD
第二关:
也是先稍微自我介绍,被问了几个观念问题: Table join , thread v.s. process 等
接着白板题:
a. Leetcode 287 - Find the Duplicate Number 限制 O(1) space
b. 给定一个 linked list, 两两交换
e.g. A -> B -> C -> D 变成 B -> A -> D -> C
第一题傻傻的写了个 merge sort 的解法 ... O皿O
最后是面试官问我能不能用 "数学" 的方式,才解出来
感觉是没有第一时间解出来,所以到这边就结束了...
最后连 HR 都没看到,直接是一个高高壮壮的男生过来告诉我可以离开了...(怕)
==============================================================
最后的心得...
从去年底到现在,其实还有面试其他家,不过都没有下文
中间难免感到挫折,会开始自我怀疑到底哪里出问题 QQ
不过面试没上 应该是常态吧...(?)
我觉得可以每次结束后纪录一下,回想自己有哪里能够改进,
或是问问面试官的意见
都会让下次面试表现更好!
希望这篇文章能给像我一样对自己没什么信心的板友一些参考和鼓励
对于一个将要毕业的学生,又没什么经验的人
我觉得最重要的还是认真刷题 + 补强基本知识
肯花功夫下去,一定会进步的
三年前的我连 recursion 可能都还写不太出来呢...
最后也非常谢谢实验室同学和同系学长姐的帮忙和鼓励