来自网易大牛的 iOS 开发面试全攻略
Posted u010850094
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来自网易大牛的 iOS 开发面试全攻略相关的知识,希望对你有一定的参考价值。
一般来说,不管是网易还是其他的大公司,招聘流程都是:
简历的筛选-笔试-技术面试-HR 面,在技术面一般至少有两轮,如果岗位比较重要技术面试的场次可能有五六轮。HR 面结束后还有可能还有部门经理的面试。
相对而言, 校招倾向于考验学生的基础知识、思维能力和发展潜能。除了这三个方面,丰富的项目经历或者活跃于技术博客均可加分。
社招相比较于校招来说,会更加功利一点,更加希望招过来的人能够直接上手去做一些项目, 这样的话更倾向于考虑实际的开发技能以及项目的匹配度,还会考虑技术方面的价值观是否和我们有出入。
接下来的部分,会重点讲一讲笔试和面试过程中,面试官的考察点和可能存在的问题。
系统编程
在这个方面,我们会考核涉及到计算机的三大件,CPU、内存、硬盘相关的一些原理,比如进程、线程、进程间的同步,线程间的同步,内存堆栈等等。
网络编程
如果你只是做一些应用与开发,对于网络编程这方面的要求会低一点,但是你也要知道大致的一些知识,比如TCP 协议,UDP 协议,还有一些网络层的协议等等。
数据结构
这方面会考察一些基础知识,像链表、栈、树、图等等,树和图可能会考的比较少,但是一些常用的算法考察还是有的。
其他
笔试还会涉及到一些语言的基础,比如 C++/ C 等等。关于移动开发、ios 开发,还会涉及到 OC 语言和 iOS 的基础概念,网络方面的操作,一些持久化的东西怎么做的,项目经验等等。
面试的考察点基础知识
并不是说笔试通过以后,后面面试就不会再问基础知识了(当然说如果你是社招的话,这方面相对来说会少一点)。对于一些应届生来说,面试中考察基础知识,其是一个比较着重的考察点。
项目经验
一般来说,项目经验我们会问到:
◾ 你的项目结构是怎么样的?
◾ 你的项目流程是怎么样的?
◾ 你的项目难点在哪里?
◾ 你的项目收获又是怎么样的?
有的同学可能会在面试中直接说:“哎呀我就是做开发的,我没有流程巴拉巴拉,我就是接接上面的任务。”面试官让其回答项目的难点和收获基本上答不上来,这是非常不可取的。
动手能力我们会布置一些题目,需要大家直接动手写,包括编程题和算法题,一般来说这些题目网上是可以找到的,比如像找链表的倒数第几项、宏定义,还有简单的字符串题目、二叉树遍历,甚至说是手机号码的九宫格匹配等等,都是一些可能跟实际开发有一点点挂钩,但是还是偏理论的东西。
面试中会暴露的问题
简历过长
可能有的同学会有疑问:简历越丰富难道不是代表我越有能力吗?实际上,面试官平时的工作已经非常繁忙,五六页的简历他们来说信息量太大了,而且里面十分可能会有对他们来说无用的信息。
比较好的做法是简历尽量精简,一张A4纸就把所有关键信息罗列出来,剔除无关信息,比如一些与技术面试毫不相关的活动经历。
表述夸张
一个刚毕业的学生,他在简历上写:我精通 C/C++ 等语言。一个公司里做了五六年甚至十年的资深开发,也不见得会说自己精通 C++,因为语言的深度是非常深的,所以同学们尽量不要在简历上做这种描述,如果有面试官对这方面比较敏感的话,那么可能连简历的筛选都过不了。
准备不足
在毕业季,大家可能会参加很多场面试,往往在没有时间做好准备的情况下,直接上来就面试了,这样在面试的时候会比较紧张,面试官问的问题,你没办法发挥自己正常的水平来作答,这就是一个失败的面试。所以说,在面试之前一定要挤出时间做好准备。
准备太多
计算机科学或者软件工程,是需要通过不断实践来掌握的工程型学科。有些同学可能会为了面试去死记硬背,比如我问快排的时间复杂度是什么,有的同学很快就报出来答案,但是实际情况可能是这个同学对快排只有一点了解,真正实际动手去写快排就不会了。等于说他只是为了应试而记一些东西,这是面试的一个大忌。面试官有很多面试技巧来试探你知识的盲区,实际上面试官可能会先抛出一个浅显的知识点,先让你来回答,然后面试官针对这个知识点进行深入或者扩散探讨,然后慢慢地去挖掘一些面试人员真正不懂的东西,让面试者去暴露不足和缺点。
笔试/面试技巧固然重要,但开发同学的知识储备和项目经验是工作中更应该关注的内容。接下去的两周,我们邀请了业界优秀的 iOS 开发工程师,与大家分享工作和学习经验。
以上是关于来自网易大牛的 iOS 开发面试全攻略的主要内容,如果未能解决你的问题,请参考以下文章