应届生该如何准备 iOS 面试

2,073 阅读6分钟
原文链接: mrpeak.cn

每年都有大量的应届毕业生投入到iOS开发大军当中,我过去3年也面试过不少应届生,总体感觉出类拔萃者相当稀少,泯然众人者还是占多数,大部分人对iOS技术面试会是什么样没什么概念,更不知道该怎么去准备一场面试。其实毕业季学校都留给了每个人充足的自由时间去准备学习,对于,仅以过来人提些切实可行的建议帮助刚毕业的同学们,以下这些建议花三个月准备绰绰有余。

相信自己的选择,全力以赴

在开始准备面试前,一定要确信自己所选择的方向。这两年虽然iOS开发虽然有所降温,但市场对于优质人才的需求还是求贤若渴的状态,即使长远的来看,iOS开发也是一个可以深度发展持续提升的职业方向。一旦决定应聘iOS岗位,一定要全力以赴,切不可今天OC,Swift明天再抓一本java。再者,iOS整套的硬件软件开发体验,macbook,iPhone,Xcode,Develper API等等都是一流的。

建议一:动手做一个简单App

做过和没做过App之间有很大的差别,不用做复杂的app,可以是一个简单的demo,类似于计算器,日历,天气的app,这个app展示给面试官看的时候,可以表明以下信息:

  • 使用过Mac系统。
  • 有Xcode上手经验,知道如何调试App。
  • 能做基本的UI,清楚诸如UIWindow,UIView,UIButton这些基础的元素。
  • 发送过网络请求,大致知道HTTP的概念。
  • 有过本地的存储,可以是简单的NSUseDefault,了解持久化的概念。

所以App可以功能很简单,不需要花心思在UI的设计上,只是用来说明你知道iOS App开发是怎么一回事。

但这个建议实际上是加分项,很多面试官包括我本人都不强制要求应届生有iOS开发经验,毕竟在校期间更多的是吸收理论知识,但做过App会加印象分,更是一个积极的信号,代表你对iOS开发确实感兴趣。

做一个真实的App,比在网上找一堆面试题,记住所谓的标准答案要靠谱的多。而且强行记住的答案很容易露馅,Objective C的runtime知识岂是几道面试题可以说得清楚地。

建议二:完整的阅读一个github开源项目源码

做过App表明你上过手,但是阅读过优秀的开源代码会让你更自信,更容易让面试官相信你确实是个技术向的人。

这里推荐两个github上的项目,Objective-C和Swift各一个,选择任何一个深入阅读都可以,根据自己喜好即可。

CodeHub - Objective C

siesta - Swift

阅读过后要确信自己能理解源码的思路,标准是脱离代码后,你能把这个App的实现思路,从UI展示,数据存储,网络请求,基本架构都能大致说清楚,最好能说下具体那一部分的代码让你印象深刻,让面试官能相信你确实仔细的读过。

建议三:粗粒度梳理大学知识体系

这部分和关键,无论大公司还是小作坊,对你在大学期间所学必定最感兴趣,也是会深入挖掘的部分。大学课程虽然众多,但和实际工作贴近的却只有几门,准备起来不用广撒网,可以针对性的复习,主要可分为以下几类:

操作系统

操作系统的知识是重中之重,以后新技术的学习,不论什么平台,几乎都是以这堂课的知识为基础,主要知识点包括:内存,磁盘,I/O,线程,进程,系统调度等,这些知识点相关的基础都要能明白。

数据结构

数据结构也很重要,算法可以选择性的适度复习,有经验的面试官是不会让你手写Quicksort的。基础的数据结构,List,Heap,Stack,Tree等都要知道,时间复杂度知道如何计算,graph相关的可以不用看,这一块偏复杂,面试官也不会问。

计算机网络

能说出OSI七层模型,和每一层的职责,了解tcp三次握手的流程,大致了解HTTP协议格式,明白post和get的区别,查看过request和response的具体样本等。

C语言

C语言的重要性是被严重低估的,即使是不少有过工作经验的朋友,没有系统的学习过C语言或者类似的偏底层语言,对于知识深度的拓展都收到限制,C语言更接近计算机原本的样貌,比如真正了解指针的概念后,你才能对对象的memory layout有清晰认识,进而对你学习内存管理起到事半功倍的效果。

建议四:选一个技术点深入探究

选一个就够了,选一个你感兴趣而且有把握的。

比如你可以对HTTP深入发掘下,以后工作当中也会一直打交道,当然这方面的知识点还是很宽泛,你可以再选的细一点,比如http是怎么通过header来控制文件缓存的,能把完整的流程说清楚就可以了。

我面试应届生的时候,经常会问:你觉得你大学期间有哪方面的知识掌握的比较好?任何方面都可以。这题答得好,甚至可以挽回之前答错题带来的负面影响,是最后一次救场的机会。

建议五:主动Show自己

面对应届毕业生,面试官一般都是包容的,即使技术问题很多都没答到关键点上,还是想尽可能的去给对方机会,去发掘对方的亮点,所以应聘者也应该抓住一切机会将自己所学所会Show出来,你做过的项目也好,你看过的源码也行,甚至是你最有把握研究最深入的技术点,一定要说出来。通过知识告诉面试官,你对技术感兴趣,你大学四年没白费,你已经准备好投入实战岗位当中。

欢迎关注公众号:MrPeakTech