[心得] 2018 iOS 面试心得

楼主: m20021991y (Eddie)   2018-12-07 23:34:58
[代 po]
(Alfred / honestbee / iChef)
最近刚结束一连串的面试
准备过程中受到 Soft_Job 板前辈的文章帮助很大,
不论是面试分享的文章,或是职涯相关的文章,都让我受用无穷
秉著饮水思源的精神,我也想把面试心得分享出来给大家,希望可以帮助到需要的人。
背景:23y, 私大CS夜间部学士毕, 约 4 年 iOS 开发经验
第一次分享这样的文章,不确定把薪资直接写出来好不好,因此还是先以 N 代替
N = 现职月薪(单位:K),现职年薪 = N * 13
文中拿到的 Offer 年薪皆大于等于 1M
# Alfred 阿福管家
[面试获得方式]
Yourator 主动投履历
[面试流程]
第一关 技术团队 (两个 iOS 工程师,一个 CTO) + PM 面试 - 约 30 分钟
第二关 CEO 面试 - 约 90 分钟
[面试过程]
## 第一关 - 技术面试
由技术团队 (两个 iOS 工程师 + CTO) + PM 面试
进去后不免俗的双方先自我介绍一下,
自我介绍中间还因为第一次面试太紧张有点忘记要讲什么 囧
结束后由 PM 开始面试,由于我自己有做一个 App (下班后的 Side Project)
所以 PM 的话题多围绕在我做的 App 上,过程中像是在交流 App 的开发
(e.g. 这个功能怎么决定要做的?A/B Test 怎么实作?
用了什么数据分析的服务?举例一个根据数据来决定的功能?)
中间有穿插约 3 题的 Objective-C 问题,都算是基础,不难
CTO 也有针对我做的 App 提问了两个假设性的情境题,
两题都算是比较偏向团队合作的问题,感觉得出来很着重在团队合作这块
第一关过程约三十分钟,快结束前由我问了一些公司及团队的问题后,
就换第二关 CEO 面试。
## 第二关 - CEO 面试
一样先自我介绍一下,然后就开始面试
面试主要也是围绕在人格特质、了解过去的经验、
为什么想换工作、为什么选择唸夜校等
对方表示原本一面前是有 Take home test 要写的,
但因为看我有一个还不错的作品,所以团队讨论过后觉得可以直接省略这块
聊到一半 CEO 说:你好像还不是很了解公司
(我有大致上了解公司做的产品是什么,也有下载使用,但了解程度的确是很片面没错)
当下抖了一下想说完了大概要被请出去了 XD
不过之后 CEO 也和我介绍了一下公司、团队、主要的营收方式等
但可能因为记性不太好再加上聊了一个半小时聊太多了,有些对话有点想不起来
第二关过程大概一个半小时左右,整体面试下来还满愉快,
团队每个人给人的感觉都很好相处,很亲切,
CEO 在过程中也给予我相当正面的评价,真的非常感谢他!
[结果]
Got an offer
面试结束后 CEO 直接发口头 Offer (实在是受宠若惊)
当下有表明非常感谢,但因为同时也在看其他机会,
所以可能不会这么快回复 Offer,对方也表示没问题会等我
约三个工作天后收到 Email 正式 Offer
待遇:(N + 17) * 13
=====================================
# Honestbee 诚实蜜蜂 (台湾)
[面试获得方式]
HR 透过 LinkedIn 联络
[面试流程]
第一关 技术面试 (三个 iOS 工程师) - 约 100 分钟
第二关 文化面试 (两个 Backend 工程师) - 约 60 分钟
第三关 Engineer VP 文化面试 - 约 20 分钟
[面试过程]
## 第一关 - Technical Interview
由三位 iOS Engineer 面试,其中一位是 iOS team lead
看了 PTT 以前的几篇面试分享,有英文也有全中文面试的
不知道现在到底是哪个,所以面试前很抖,
不过我这次的经验是从开始到结束都是以中文面试
这次面试跟第一次一样,面试完对于被问了什么问题大概只记得一半,
不知道这样正不正常 XD
一开始一样不免俗的自我介绍,
介绍完毕后开始针对履历及作品集上的项目提问,
这边跟 Alfred 一样,面试官有先下载并使用过我作品集上的 App,
一样也针对 App 里面的某些功能做提问
个人觉得主要着重在:
— 基本功
— 过去经历
— 对架构的了解程度/想法
— 对语言的了解程度/想法(例:struct 跟 class 会怎么选择?)
— 团队合作
并且会针对你过去做过专案再一直细问下去,确认你是不是真的会
(例:我有提到专案中用的是 FLUX 架构,对方便请我说明 FLUX 是如何运作)
用了什么架构?用什么方法实现某个功能?用什么方法有什么优缺点?
说明使用过的架构 etc ...
因此对参与过的专案掌握程度要很高,才有办法回答每个问题
最后有一题算是上机考吧,给你一小段 code,
请你找出这段 code 所有可能的问题、或是可以优化的地方,并且讲出来
个人觉得题目出得不错也不会太难,大概 5 ~ 10 分钟就可把问题都抓完
算是把很多语言面 & 实作面的基础问题都浓缩在一题里面
不过因为是肉眼 compile 所以有些细节容易漏掉
我就是尽力把我看到的问题都讲出来,并解释为什么这样错了,
应该要用什么方法,最后还是有一两个漏掉地方,
在面试官的引(ㄊㄧˊ)导(ㄕˋ)下也有抓出来
最后是发问时间,问完想问的问题就结束一面了
过程中有提到因为是跨国产品,国外也有 Engineering team,
因此会需要英文沟通,可能大部分都是读 & 写,少部分口说,问我觉得英文 ok 吗?
(OS:糟了,这个开场白一定是英文面试的起手式
此时脑袋已经开始高速运转准备要接招了,但最后还是没被用英文问到问题 XD)
我表示读写一定没问题,说也ok,不过口说可能还是需要多练习才能讲得顺
结束后由 HR 简短说明接下来的流程,如果有二面的话一个礼拜内会通知,
重点会放在文化面试,然后就离开了
## 第二关 - Culture Interview
三天后收到二面邀请,HR 寄信通知后也直接打电话通知我
也说明了接下来的面试会如何进行,以及简短说明薪资福利,
还有面完对公司的感觉是什么,感觉得出来很重视面试者
一面完还特别寄信给 HR 说如果被拒绝的话可不可以也寄信跟我说一声,
看来是多心了呜呜呜
二面由两个 Backend Engineer 进行,着重在处事上面
两位面试官刚开始杀气很重,刚开始有点吓到,后来发现其实他们人很好也满有趣的 XD
(例:如果跟成员意见有冲突,会怎么办?被排了很多事做不完,怎么办?etc ...)
这部分就是照实回答,其实也没什么标准答案,平常遇到时怎么处理就怎么回答,
没遇到的就想一下遇到时会怎么应对。
还有一部分时间在闲聊,相对轻松一点,约 30 ~ 40 分钟就结束了。
结束后由 HR 询问面试到现在的感觉,以及询问期望的薪资,
HR 表示几天后会根据我开出的期望薪资给我一个回复后,就离开囉
(到这边终于算是拿到一个口头 Offer 了!)
原以为面试到此就结束了,
回家后接到 HR 电话表示 Engineer VP 希望可以跟我聊聊,
原本是要排在跟刚刚的面试一起,但因为有会议所以就没有一起面,
于是展开了第三面之旅
### 第三关 - Engineer VP Culture Interview
三度来到 Honestbee 办公室
一样是 Culture Interview,事前有先针对 HR 给可能会被问到的题目做准备
(例:遇到最挫折的事是什么?有什么兴趣或热爱的事吗?)
过程也会直接谈到期望的 Offer,说了期待的薪资后,
VP 表示由于我被归在 Junior iOS Engineer,所以会比我开的数字还要再减 10 万,
但因为一季会有一次 review,会有加薪及升职的机会,所以也是有机会升到 Senior 的
我也表示 ok。
面试很短,约 20 分钟而已,VP 人很帅很亲切,面试过程很轻松,
不会有什么压力,VP 会一边用钢笔纪录在笔记本上面,稍微喵了一下,字很漂亮 XD
结束后由 HR 说明接下来流程会怎么跑,大概会花多久
我询问完相关的福利之后就结束面试了。
后来问了一下 HR 为什么以前面试分享的文章都说有四关英文面试,
但我完全没有遇到,HR 回应说是因为不希望因为英文而错过真的优秀
但英文或许没那么好的面试者,所以才有修改了面试流程。
(我记得没错的话是这样,如果我有讲错请纠正我)
[结果]
Got an offer!
原本 HR 是说一个礼拜内会有答案
不过当天晚上就接到 HR 打来的好消息,表示 VP 觉得我 ok,
送件给新加坡 review 时也意外跑得很快,所以当天晚上就拿到 Offer 了!
待遇:(N + 31.5) * 12
=====================================
# iChef 资厨管理
[面试获得方式]
主动联系 HR (HR 半年前透过 LinkedIn 联系,当时表明还没有找工作的打算。)
[面试流程]
第一关 技术面试 (两个 iOS 工程师) - 约 160 分钟
第二关 HR 面试 - 约 20 分钟
[面试过程]
原本已经约好面试时间,不过因为其他公司的二面结果在 iChef 排定一面之后才出来
想把其他面试排在同一天,所以和 HR 姊姊改时间,
过程中多次打电话反复确认面试流程、时间相关的细节才终于敲定,
HR 也很有耐心的协助我,真的很对她很不好意思也很感谢。
## 第一关 - 技术面试
一面由两位 iOS 工程师进行
面试的问题一样不外乎语言的基础、用过的架构、用过哪些 Design Pattern、
哪些 Design Pattern 用在什么时候、有没有 Refactor 的经验等
我会在文末整理最常被问到的问题,在这边就不多赘述
没有什么太难或刁钻的问题,但有些基础问题还是没有答对或答得很好
(例:NSString 为什么要用 copy?),觉得非常惭愧。
面试到一半火警警报器还响起来,后来发现是虚惊一场,算是满特别的经验(?
HR 提到会有白板题,原以为会有算法题目,但后来发现没有,
只是有时候讲解东西会需要用到白板来辅助而已 XD
印象满深刻的是由于 iChef 是做 B2B 的 POS 系统,但有些店家会没有网络,
所以 App 必须也要在没有网络的情况下可以运作,
所以逻辑跟资料储存都会写在前端,因此也很重视 unit test,感觉是个很大的挑战。
## 第二关 - HR 面试
HR 相对技术面试而言就是比较轻松的了
主要就是一些满常被问到的人格特质相关的问题,了解找工作的动机等
(例:用几个词形容自己、觉得自己有什么缺点?etc...)
此时 HR 也会询问期望薪资,如果有二面的话会跟 CTO 面试
## 第三关 - CTO 面试
(很抱歉这段因为面试完没有马上做笔记
几天后想起来要写笔记已经忘掉大部分问题了)
一面约三天后收到二面通知!
二面也是一些常被问的问题
(例:遇过最困难的技术上的问题是什么?介绍一下做过的作品)
CTO 也不吝啬分享 iChef 团队内部的情况,团队的愿景、团队如何协作等
过程像聊天,CTO 人很亲切,大概有一半的时间是我在发问,
问完想问的问题后面试就差不多结束了,后续跟 HR 简单聊一下后就离开了。
[结果]
Got an offer!
两天后收到 HR 电话通知录取
待遇:(N+20) * 13
[后记]
面试/准备面试真的是一件很累人的事情,不论是心灵上还是身体上
心灵上要承受着面试后可能被拒绝的压力,
就算被拒绝后还是要打起精神继续面试下一家公司
身体上由于只能用下班时间来准备面试需要用的东西,
再加上下班后还有 side project 要顾,
光是履历 + 整理作品集就花了我两三个礼拜才真正完成,
更别说要整理出面试常被问到的问题,并且熟悉这些问题所花的时间跟精力有多少了
尽管如此,面了三间公司以后,让我收获满满
不论是透过和不同公司、不同的人面试,可以知道自己还有哪些地方不足
还是每间公司的面试方式、面试会问的东西、公司在乎求职者的是什么
在这边整理一下面试这三间公司以来,最常被问到的一些技术上的问题:
struct、class 差异是?怎么选择?
GCD 相关 (dispatch_sync、dispatch_async)
strong, weak, assign, copy 是什么,分别在什么时候使用?
retain cycle 是什么?怎样造成?怎么解决?通常最容易发生在哪些情况?
Category 是什么?
NSInteger、int 的差异是?
用过哪些 Design Pattern?
物件之间沟通有哪些 Design Pattern 可以用?Delegate 用在什么情况?
Notification Center 用在什么情况?
用过哪些架构?听过哪些架构?OO架构的运作方式是?有什么优缺点?
面到后来发现其实每家公司在乎的都满像的(当然我样本数只有三个不够多)
最重要的一定还是:基本功、基本功、基本功,
如果连最简单的 Retain cycle 都回答不出来的话,
我想也很难说服人自己可以写出一个稳定的 App。
再来就是你懂不懂得在哪些时机,使用哪些方法
哪些情况适合用哪一种?哪些又不适合?
(例:Objective-C 中 Category 跟 Class extension 的差异是?
Delegate 跟 Notification Center 分别在哪些时机使用?)
另外有 unit test 的经验看下来虽然不是必须,但有些公司还是会问有没有接触过,
如果有一点 unit test 的经验我想应该算是有加到分的(乱猜测)
个人觉得至少要懂 Dependency Injection、Mock、Stub 这些概念。
至于算法白板题,看了以前板上的文章会觉得好像现在刷题已经是基本中的基本,
不管到哪里一定会考。
但我很幸运的没有在这三次面试中遇到,不然我可能一面就通通直接被刷掉了 XD
虽然我有因此买了个白板在家自己练习、模拟解题,但在这方面还是非常非常弱,
只写了约 50 题的 Leetcode Easy。
最后补充一点,我觉得有一个(自己的)完整独立开发的作品也是相当重要
有一个从 0 到 1 参与的专案,会让你对专案的掌握度非常高,
接触到的“东西”也会相当多,技术方面一定是接触到最多的,在面试时会很有优势,
因为你是专案唯一的开发者,对专案非常熟悉,会有很多经验可以分享;
再来就是和人合作、沟通的能力也会因此而培养,很多公司重视的不只是技术能力,
协作、沟通、表达的能力也是非常重要的一点。
分享到这边,希望我的文章可以帮助到有需要的人,
如果有觉得哪里写得不好的地方有欢迎跟我说。
如果你是正在找工作的人,希望这篇文章有帮助到你,
也希望可以透过这篇文章给你一点信心,
祝福你/妳可以撑下去,找到心目中理想的工作!
作者: h5904098 (LBJ IS GOD)   2018-12-07 23:43:00
推推
作者: fidelity77 (小柚)   2018-12-07 23:46:00
23岁..太神了
作者: ID3238 (默默)   2018-12-07 23:48:00
作者: orange0319 (喵喵喵)   2018-12-07 23:55:00
好猛,强者,谈到的薪水也不差的说
作者: molopo (mmm)   2018-12-07 23:57:00
推 超神
作者: popcool (我不懂)   2018-12-08 00:12:00
想问一下,为何四年年资还是被归类为junior 啊?
作者: fortinet (fortinet)   2018-12-08 00:29:00
Senior或Junior跟面试出来成绩有关,跟年资没关系。各公司会有自己的认定标准,当然小公司较容易title乱给,总之不会是大约N年就一定叫Senior
作者: sharek (...)   2018-12-08 00:32:00
年资跟资深本来就是两回事
作者: duck10704 (duck)   2018-12-08 00:34:00
好强 推
作者: LinuxKernel (Linus Torvalds)   2018-12-08 00:36:00
薪水这样写其实没什么参考价值啊
作者: art1 (人,原来不是人)   2018-12-08 00:50:00
有自己的专案就能了解各种技术的使用时机吗? 感觉不出来
作者: starburs (星爆气流斩)   2018-12-08 00:57:00
N+31.5是什么概念…是他们很敢给还是你原本的N太低阿
作者: frejy (故事人)   2018-12-08 01:00:00
推分享不过也想知道31.5是公司敢给还是原本太低
作者: OhGNM (OhGNM)   2018-12-08 01:10:00
如果N+20*13也有破百的话,那N大概可以推出@@
作者: Argos (Big doge is watching u)   2018-12-08 01:21:00
三间都还在问ObjC喔?都没打算用Swift吗 XD
作者: rxhivzero (rx)   2018-12-08 01:53:00
给推23岁这样真的猛
作者: stkoso (Asperger)   2018-12-08 02:22:00
23破百给跪了
作者: GX90160SS   2018-12-08 02:30:00
N应该是60K左右+31.5的原因很明显,就是外商拉高月薪没保证年终想看私下上架的作品XD
作者: popcool (我不懂)   2018-12-08 02:36:00
算了一下N差不多是60k,第一次看到破百的junior,果然职称是给爽的吗XD
作者: GX90160SS   2018-12-08 02:43:00
这行除了第一份工作,基本都是看实力不看学历了
作者: stkoso (Asperger)   2018-12-08 02:46:00
第一份工作也才高中毕业 实在很难想像
作者: jlhc (H)   2018-12-08 03:08:00
startup真的很敢开
作者: DrTech (竹科管理处网军研发人员)   2018-12-08 08:29:00
心态正确,表达充满系统与逻辑。真棒
作者: Chris926926 (Jan Egeland)   2018-12-08 09:21:00
我妈问我为什么跪着滑手机...
作者: menshuei (红茶)   2018-12-08 09:23:00
真强者
作者: Linares (TaeyeonSone)   2018-12-08 11:16:00
23岁私大 猛
作者: iamyiz (Gigahertz)   2018-12-08 11:39:00
跪推强者
作者: gofigure (平行世界)   2018-12-08 13:34:00
读死书和不会读死书的差别 呵呵
作者: clamperni (肥宅牛牛)   2018-12-08 13:38:00
第三间面好久喔
作者: lk2986706we   2018-12-08 15:18:00
真的很厉害 推
作者: devilkool (对猫毛过敏的猫控)   2018-12-08 15:44:00
好厉害
作者: chocopie (好吃的巧克力派 :))   2018-12-08 16:39:00
作者: chongruei (POPO)   2018-12-08 17:01:00
推推
作者: ZuiYang (Zui)   2018-12-08 17:05:00
原po是写4年ios开发经验不是工作经验吧,看起来是学生时期就开始学,不过私大学士23就破百也是跪了...
作者: s12358972 (Spice)   2018-12-08 17:32:00
23岁私大夜间破百强者
作者: sp063439 (Isk)   2018-12-08 18:00:00
腿软惹
作者: siriusu (かがみは俺の嫁。)   2018-12-08 18:10:00
推推
作者: x3795566 (恬静与快乐)   2018-12-08 18:42:00
有机会可以分享进步的心路历程吗? 觉得你好厉害
作者: koka813 (shift)   2018-12-08 22:01:00
真的太神了23岁就这样!
作者: clamperni (肥宅牛牛)   2018-12-08 22:42:00
感谢面试分享 若有学习经历就更棒了
作者: VisualStudio (2015)   2018-12-08 22:51:00
作者: justill   2018-12-08 23:16:00
作者: winld (永远在跟时间赛跑)   2018-12-08 23:25:00
真的太厉害了
作者: ks0518 (Ao)   2018-12-09 01:06:00
推 觉得厉害
作者: whitecolor (白色)   2018-12-09 01:38:00
作者: kyrie77 (NTU KI)   2018-12-09 01:49:00
太猛了...
作者: lgates (衰神附身的男人)   2018-12-09 04:14:00
23岁在台湾这样谈到破百我还不跪着看
作者: galapous (墨)   2018-12-09 12:02:00
膝盖碎了
作者: THEWORLDS (天下)   2018-12-09 12:32:00
这有啥参考价值? 4年 然后n 高潮啥
作者: t64141 (榕树)   2018-12-09 14:28:00
年薪皆>=1M, 很容易推算出 n 的最小值, 楼上有啥好崩溃的而且这么详细的面试过程与内容, 参考价值很高阿
作者: GX90160SS   2018-12-09 14:46:00
整天推leetcode却连N都推不出来吗XD
作者: shady1023   2018-12-09 21:01:00
感谢分享
作者: rocooshiang (water_crazy)   2018-12-09 23:42:00
推!
作者: Argos (Big doge is watching u)   2018-12-10 09:36:00
所以现在那些学历基本教义派的是不是又要出来讲原PO特力屋
作者: bilibo (找寻最初的感动)   2018-12-10 11:02:00
23岁真的很猛!!
作者: THEWORLDS (天下)   2018-12-10 11:19:00
4年100没啥好参考价值阿 又是写app 到底懂不懂?
作者: femlro (母猪教谋神异端审问官1.5)   2018-12-10 11:20:00
嘘的通常都没破百 帮QQ
作者: THEWORLDS (天下)   2018-12-10 11:25:00
lol .... 抱歉...我真的没破百大概税后10多万而已一年
作者: AriesX (Aries)   2018-12-10 11:30:00
原来写出薪水才叫有参考价值喔?文内心得超丰富有没有看到光这些心得就可以帮助到很多要面试的人了
作者: THEWORLDS (天下)   2018-12-10 11:32:00
可能我没说清楚吧 我只是觉得写了4年了 又平均月破百去面试这几间野鸡公司竟然没有主管职 我很惊讶而已
作者: AriesX (Aries)   2018-12-10 11:33:00
觉得薪水没参考价值,不代表其他东西没参考价值ok?
作者: THEWORLDS (天下)   2018-12-10 11:34:00
整个面试下来只是依照年资跟过往薪水开价而已 确实 LOL我app没有特别懂啦^^ 但至少没到很菜是真的
作者: AriesX (Aries)   2018-12-10 11:36:00
补推,真的看不懂在嘘啥,眼里只有薪水,分享跟心得都无视
作者: THEWORLDS (天下)   2018-12-10 11:38:00
楼上你还看不懂吗 你如果有这个年资跟过往薪资 去面试然后只打了这些基本流程 真的就没参考价值你根本没办法以这篇当作目标去准备我要表达的只是这个 可能我常写api有这毛病吧
作者: eggli (eggli)   2018-12-10 11:46:00
"竟然没有主管职" <-- 我还以为这个版是Soft_Job
作者: rxhivzero (rx)   2018-12-10 11:48:00
...这几间已经算有知名度了 某人不会以为小公司破百很难吧 一定要主管职?
作者: THEWORLDS (天下)   2018-12-10 11:49:00
小公司破百还好 我朋友开的一堆破脑袋也是给200多我只是单纯觉得 这篇不能够当作目标去准备 就这样
作者: Argos (Big doge is watching u)   2018-12-10 13:22:00
B and Q 特~力~屋~
作者: CodingDuck (框框)   2018-12-10 13:22:00
楼上领多少我不知道,但从来没在软工版贡献过任何一篇面试文倒是真的,还能在软工温情版也能被嘘爆也是一种人才。楼楼上la为什么要 truncate 我QAQ
作者: Argos (Big doge is watching u)   2018-12-10 20:28:00
楼下一篇 破200?根本小家子气 这边基本新人都300万起跳
作者: frankshih (阿翰)   2018-12-11 08:06:00
强者,推个
作者: hellomotogg (你好机车)   2018-12-11 13:29:00
膝盖好痛
作者: bill750121   2018-12-11 16:25:00
请问有上架的作品或github吗
作者: a2470abc (D.F.)   2018-12-20 02:01:00
真的强者 怕

Links booklink

Contact Us: admin [ a t ] ucptt.com