于是,我成为了软件工程师求职优培20计划中的20分之1。
课程都是按照时下最前沿的考点制定的,我也顺利凭借着学到的知识在国内找到了实习。不过当时精神头确实不在工作上,东跑西跑,就是没有在加拿大工作……
两年倏然而过,临近毕业,我开始急了:今年的形式太严峻,加上我的重度拖延,校招HC所剩无几。于是我剑走偏锋选择了Amazon的SDE1,总算收到了珍贵的OA。
因为太怕这次机会都溜走,总想多准备准备,拖了一个月才提交。逼人的形势下,我终于开窍,VO一下来,第一时间请班主任帮忙约了Mock。
这次Mock可以称之为我上岸的关键点,所以想好好说说。
Amazon老师给做的Mock,帮了大忙
匹配的X老师正是Amazon的在职面试官。第一次面全职,我挺紧张的。自我介绍讲了一大堆,连intern做的项目都铺开讲了,占了好几分钟。
在最后的Feedback中,X老师指出了我的问题所在:自我介绍太过冗长。正常情况下,只需要讲述Education background + Intern experience + Thanks for giving me this opportunity即可,控制在1分半左右;
Intern experience讲述时间、公司、项目,或者讲一下Skillset,不要太Detail,也是控制在1分半到两分钟。
说得越多越容易出错,很容易说不到面试官想要的点,所以要言简意赅。并且需要留出时间让面试官问问题,比如他会问:在这期间遇到了什么样的Technical difficulty?(that is the point)
这是我第一次从面试官口中了解面试结构,受益匪浅。
自我介绍过后,他为我出了一道Number of islands的题。
这道DFS还是很常见的,遍历二维数组的每一个点。如果碰到0,什么也不用做略过。如果碰到1,查看四个方向上相邻的点有没有是1的。如果有是1的点,递归重复这个过程,直到四周的点都是0或者被访问过。
但我还是紧张地卡了壳,老师很Nice地给了Hint。
也算是解出来了,不过后面点评的时候,老师说我的Coding还需要改进。我没想到他会这么细地帮我挑毛病:
- 把数值变成0的话,底下要写Count;
- 访问过的点值可以换个颜色标注,这样自己也不会乱;
- 虽然代码块之间不打{不能算错,但是打了会让整个代码更清楚;
- 我把If条件和Return=0写在了同一行,他指出需要敲个回车空行……
越是细节越能决定成败,而这种细微的部分,我自己根本察觉不到。
他还说我在Coding时说的还是太少了,即使有些话无关紧要,也要多说,比如接下来我要Go through一下啦、That’s all这样的话,多说说没坏处。
总归是变量不够规范,代码不够清晰、沟通不够充分。
最后我还请教了老师一个问题,如果面试官反问我“你还有什么要问我的”,我要怎么回答?
他干脆直接让我打开Email,看了一下亚麻发给我的面试邀请,每个轮次分别是什么级别的面试官,并给出我建议:Manager就问产品是什么、组是什么样的、需要哪些其他的Team;职级低一些的SDE就问组内的技术栈,前端后端什么样。
总之,表达出自己的向往。
这次Mock之后我可算是心里有了底,专项做题,边练边说,同时注重代码的简洁。真正面试的时候,老师教得都一一用上了!