作者gocreating (小平)
看板Soft_Job
标题[心得] Wearisma 面试心得
时间Sat Mar 3 16:37:21 2018
网页好读版:
https://goo.gl/ZegAep
--
第一次知道Wearisma这家公司是因为实验室带我的博班学姊向我推销,说她有个学妹在里
面(其实也是我的学姊),所以我刚好有机会内推赚到面试机会。完整的职缺要求和公司
简介在PTT徵才原文「[徵才] 偀向软体Wearisma徵全端工程师(70~90k)」中都有提及了,
是一间英国公司,2018/03要在台湾设立总部,所以目前极力徵才中,虽然优先寻找一个
月内可以onboard的资深的工程师,但像我这种菜逼八也是会给予面试机会,未来有
junior的职缺可能也能进吧!
职缺概要
应徵的是全端工程师,基本要求如下:
- 资讯工程背景相关系所毕业,3年以上工作经验
- 良好的英语会话与表达沟通能力及杰出的团队合作
- 与国外同仁开会时,能接受弹性上班时间 (例如:12PM - 8PM/每周1~2天)
- 致力於撰写简洁有效率、可读性高、易於维护及测试的程式
第一阶段面试
面试前有信件提醒面试过程约20~25分钟,前後分为General Questions和Technical Task
两部份。面试官大约在面试开始前一刻加我skype,然後用讯息告知即将拨打通话,接通
後会简单问候,然後说明稍後的面试流程。
自我介绍
首先是简单自我介绍,我说明自己是主修资工,研究所的方向是ML相关,未来想成为一位
全端工程师,平时会做一些Side Projects来娱乐一下,面试官这时候感到兴趣,请我挑
一个Side Project来介绍,我就提供了SomeGuy(网页好读版中的网站)的网址给他,我一边说明,面试官也一边
询问使用了什麽技术。
研究内容
接着她表示对我的研究非常有兴趣,也想了解(毕竟徵才文中就有提及要做ML相关的工作
),我也简单介绍了自己做的研究方向还有使用的技术,接着被问到我的研究有什麽样的
Challenge,我就继续顺着问题补充说明,算是勉强过关。
知道Wearisma在做什麽吗?为何应徵?
其实在面试前有翻过Wearisma官方网站,但还是看不懂网站上的介绍,所以面试官向我详
尽地介绍了一次Wearisma是什麽样的公司,至於为何应徵的这题我倒是没有太多想法,就
回说想当个Web Developer。听完面试官讲解後,我对於Wearisma的理解如下,给大家参
考参考:
Wearisma是一间软体公司,提供一个平台来媒合品牌(Brand)与追踪者(Influencer)
,但主要客户是品牌,Wearisma会从追踪者的社群网路中蒐集资料,运用资料分析技术将
结果汇报给品牌,作为行销(Marketing)的依据。
Technical Task
题目长这样:
Given a string with left and right parentheses, how you verify the string is
valid (balanced)
Ex. ((())()()()) -> Valid, ()) → Invalid
一开始我觉得这问题很适合使用Stack来进行运算,解释完想法後面试官送了
())这个case
过来,我也理解这样子Stack在Empty时会发生问题,就改用Counter计算括号的方式重新
说明新的作法与思路,然後又再一次被
())(这个special case考倒,於是我又想了新的方
法,面试官最後才放过我XD
中文问答
问完Technical Task後,面试还剩最後3分钟,面试官也知道我英文颇烂,就特例跟我用
中文对谈了(面试官也是台湾人),大致就了解一下公司概况,台湾公司3月才会正式开
始,所以目前还没有Developer,最後就询问何时能开始工作,有问题也能信件保持连络
。
第二阶段面试
第二阶段是纯粹的Coding Test,面试官开了一个共同编辑的google docs给我,上面已经
列好题目如下:
Given an array A, write a function to move all 0's to the end of it while
maintaining the relative order of the non-zero elements. For example, A = [0,
1, 0, 3, 12], after calling your function, A should be [1, 3, 12, 0, 0].
乍看下会觉得很简单,开新的阵列来存不就好了,但是往下一看附带了2项限制:
Note:
You must do this in-place without making a copy of the array.
Minimize the total number of operations.
function可以用pseudo code来写,一开始可以写较差的版本,例如我先建立一个O(n^2)
的写法:
function move(arr) {
let len = arr.length;
for (let i = 0; i < len; i = i + 1) {
for (let j = i; j < len; j = j + 1) {
if (arr[i] === 0) {
arr[i].swapToNext();
}
}
}
}
一边写的过程中,面试官会询问你的思路,还会直接在docs上面用范例来演示程式执行的
效果,还给了我提示让我想看看能不能改善这个版本,後来顺利写出O(n)的版本:
function move(arr) {
let len = arr.length;
let idxHead = 0;
let i = 0;
while (i < len) {
if (arr[i] > 0) {
arr[i].swapToIndex(idxHead);
idxHead = idxHead + 1;
}
i = i + 1;
}
}
到此为止面试时间也差不多半小时,後面就单纯询问我有没有任何其他问题,然後结束本
次面试。
第三阶段面试
如果通过第二阶段的话,据说会面试一小时,创办人、工程师还有同事都会参加,还会考
最後一题Coding Test。但是我在第二阶段就被刷掉了,所以无法提供此阶段面试的细节
。
结论
英文面试
我自认英文读写能力中等,但听力和口说大概就没救了,人生中第一次用英文沟通这麽久
其实颇紧张,但如果能上的话我觉得是个很棒的练英文环境,而且每年还能免费去英国一
趟!面试部分也因为英文不好的关系常常词不达意,没办法百分百发挥。
省钱省时
整个面试过程只需要动滑鼠和敲键盘,不用在外面搭车奔波,也没有费时的笔试,其实是
个值得推荐的优点!
用心的面试流程
从寄出履历至邀约面试,以及面试的过程都能感受到Wearisma的用心。包括回信时间不会
拖拖拉拉,信中问候让人觉得很亲切,约面试时会double check,让人感觉谨慎,甚至约
第二次面试时刚好遇到年假,也能被体谅而顺延,个人觉得满贴心的!面试过程也很积极
地让我了解公司在做什麽,面试结尾时面试官也很坦白地说马上要面试下一位,从中也能
感受到公司对准时和效率的追求,整体而言真的可以感受Wearisma有用心在做好一件事情
。
--
http://i.imgur.com/OyDCwTJ.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.37.167.242
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1520066247.A.2CF.html
1F:推 oneheat: Leetcode NO.20 03/03 16:57
2F:推 oneheat: 另外想请问一下用stack在())的case会有什麽问题? 03/03 17:03
3F:推 harryron9: 我也觉得stack不会有问题 03/03 17:18
4F:推 sorryla: stack empty有判断好就不会有问题 03/03 17:26
5F:→ ken1325: 要英文精通我就不行了=.= 03/03 18:23
6F:推 Martin23: 推推 03/03 21:06
7F:推 freetempo: 推XDD 03/03 22:24
8F:推 matrixki: Leetcode 20 & 283 both questions are level easy 03/03 22:53
9F:→ matrixki: 感谢分享 03/03 22:53
10F:→ matrixki: 这就是国外工程师面试的常态呀 多数是easy&medium的题目 03/03 22:55
11F:推 brianhsu: 这不是标准的 stack 吗? () 之 後遇到 ) 做 pop,stack 03/03 23:25
12F:→ brianhsu: 是空的或 pop 出来的不 match 就是 u 03/03 23:25
13F:→ brianhsu: 非 balance 啊? 03/03 23:25
14F:推 pika928: 感谢分享 03/04 00:27
15F:推 srxrrr: 推分享!! 03/04 08:19
16F:推 doranako: 推分享 03/04 08:57
17F:推 VisualStudio: 推分享 03/04 15:47
18F:推 alfreadx: 推分享 03/04 18:57