前言:面试
先简单说说我最近的面试经历吧。面试的公司不少,大部分最后都能获得使人满意的结果,我将这些体会记录下来,面了这么多公司,若是不留下什么,那岂不是太浪费了。对于我来讲,这也是一次自我检查,在此次面试中总结经验,认清本身,同时但愿这些对即将换工做或者打算看看其余机会的你有一些帮助。算法
如下的部分有具体的面试经历,也有本身的一些总结面试必备技能和本身的一些感想。数据库
为什么离开小米?数组
离开小米的主要缘由是:个人职业规划与小米给个人规划不相符,还有就是流程化的东西太繁琐,本身有一些不适应,因此选择离开了小米。缓存
iOS开发——2019 最新 BAT面试题合集(持续更新中)安全
做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个个人iOS交流群:638302184,无论你是小白仍是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 你们一块儿交流学习成长!微信
很是感谢我周总(直接领导)和冰冰(师傅),在小米的这一年中给予我很是多的帮助,在我跟领导沟通要离开的想法时,领导开诚布公的跟我聊了不少,最终我仍是下定决定要离开小米,领导建议我先去面试一些公司,等找到合适的再走,裸辞的话心态上都会有一些问题,这样的领导真是没话说了,在小米不少领导都是不放人的,不少都把员工的下一家拖黄了才放人。在这一年得到的成绩:网络
一、二等奖转正绩效是A多线程
二、年终绩效 A+,得到明日之星架构
准备
其实我很早就开始准备了,准确来讲也不算准备,只是一直在总结iOS相关方面的知识,由于在华为虽然工做有时候比较多,可是仍是有大把时间能够本身学习一些感兴趣的方向。从过完年回来,我就有计划的复习和总结了一些知识。
看过的书籍,这里并非泛泛的读一遍,而是详细理解了大多数内容,通俗一点就是能够用本身的话将相应的知识解读出 来 。《Android开发艺术探索》(这本书真心不错,我反复读了四、5遍)、《iOS群英传》(比较接近开发使用,由于作过一些应用开发,读起来仍是比较简单的,读了2遍)、《剑指offer》(感受面试中碰到的算法,70%都能找到相应的题目,保证全部的题均可以手写出来就行)。4个月精读了以上书籍,还有其余的都是简单了解,这里就不列举了,读完这些书,应该可让你上一个层次吧(妈妈不再用担忧我面试啦…)。
刷题,主要是LeetCode(大概刷了300道题左右,天天3-6道,坚持下来,须要多复习,由于不少题过一段时间会忘记),还有看过一些牛课网。
看别人的面试经验,主要在网上,这里我列举两个比较好的。
一、 iOS客户端面试题集锦
二、 iOS阿里面试题锦集
投递简历
一份好的简历是很是有必要的,须要突出你的重点和闪光点,具体怎么写简历能够参考
CodeKK说简历
有了一份好简历,接下来就是投递简历,通常是:拉钩+BOSS直聘+内推,从我此次面试机会来看,三者比例是2:2:1,也可能我工做经验还不到一年,内推滴滴、阿里和腾讯直接就把个人简历刷掉了,可是内推也是具体到某个部门,若是被刷掉也不要灰心,如今大公司基本上各个部门都有本身的hr,能够在拉头和BOSS上多投递一些,万一其余部门看中你呢?
面试经历
这里我仅仅记录一些问过的题目(能记住的),答案我就不写出来,基本上均可以在网上找到相应的答案。
一面
一、iOS一些优化方案
二、最经常使用的版本控制工具是什么,能大概讲讲原理么
三、UNIX经常使用命令
四、c语言在iOS开发中的重要性
五、源代码管理工具的做用
二面
二面面试官是Eva?反正应该不是作iOS的,iOS的相关知识问的也很少,大可能是项目上的东西。
atomic的多线程安全
聊项目,都具体作了什么。
nonatomic在本身管理内存的环境
三面
应该是Eva吧,主要了解一些我的的状况,以及一些项目,最后问了指望的薪资,而后当场就给了offer。
毕竟1年多没有面试了,第一场面试仍是给我了很大的自信,也知道如今本身大概能要多少工资是合适的,因此大佬们准备跳槽的时候,最好先面几家小公司,这些仍是一个很不错的公司,总体的办公环境挺好的,如今也处于盈利状态,在教育类的app中也排的上名次。
快手
快手就在五道口地铁站出口不远地方,能看到很显眼的LOGO,看上去很霸气的样子,可是当我进入到快手前台的时候,连一个标示符都没有, 一度觉得本身走进了假快手,好吧,我是来面试,这些都不重要,接下来接待的人员把我领进了一个小屋里,等待面试的开始。
一面
面试官是一个很fashion的人,是从小米核心部门过来的,是iOS小组的领导。
问了关于数据库的一些问题,SQLite的相关操做,没办法,我在华为惟一一个作的和iOS相关的项目,可是不太擅长数据库。
网络相关的问题,网络的五层模型,又问了TCP和TIP,还有iOS相关的长链接,这里问的比较深。
开始iOS相关的知识,视觉控制器的生命周期(view的生命周期)内存告急的处理(手动释放不可见视图的内存和成员变量)
第一面这就算过关了等待二面。
二面
问了项目相关的问题,这部分根据本身的项目经验,因为你们的经验都不一样,这里我就不详细说了。
设定一个场景,怎么去实现相应的功能,由于快手这个部门想作社交,所以这里是问我是如何实现微信的联系人页面(包括与服务端有什么样的交互)
最后也是一个算法,写出全部数组的子序列
二面面试官是这个组的Eva,跟我讲了如今这个组的发展状况和快手如今的状况,因为快手成长很快,因此不能仅仅依靠一个APP,还须要在其余方面进行一些尝试,而这个组的任务就是在一些方面作一些尝试,大概就是这个样子。
二面也顺利经过,接下来就是HR面了,这时候正好是12点,他们要去吃饭,不过快手是提供午饭和晚餐的,第一个面试官带给我一份饭,还不错,后来HR跟我说,如今只是过渡时期,后面午饭和晚餐会改为自助餐的形式。
三面
HR上来很亲切,问了我一些面试的状况,难不难之类的,而后又聊了聊我大学和研究生状况,我只想说我“too simple , too naive “,大概了解我后,只跟我聊个人不足,以此来压低我指望的薪水。说了一下薪资指望,加了微信,让我回去等待,说发offer大概是2周时间,由于须要走各类审批流程,让我不要着急。
快手是一个很年轻的公司,技术仍是须要必定的积累,但愿不要像小咖秀同样昙花一现。
美团外卖
一面
一、简历上写的项目问了一遍,而后开始问知识点。
二、volley的源代码,在图片缓存部分讨论了挺长时间,http中缓存机制,
三、视觉控制器的生命周期
四、数据库
五、多线程(NSTread、NSOPeration、GCDA+block)
六、http协议get post的区别
七、手机适配一些方案
八、真机调试、项目上线注意事项
九、静态方法是否能被重写
这些大概聊了1个半小时,开始的时候还有些紧张,慢慢聊开了,就好多了,面试官的语速有点快,总是须要面试官重复一遍,我也不经意间语速也变快了,不过能看出来面试官仍是很厉害的。
二面
2次握手和3次挥手的缘由,以及为何须要这样作。
一、id和nill表明什么(nill和NULL的区别)
二、向一个nill对象发送消息会发生什么?
三、进程与线程区别
五、写一个NSString类的实现
六、http中的同步和异步
聊了一些项目上作的东西,问了问职业规划
因为二面面试官不是作iOS,原本面试个人人临时开会去了,因此这一轮面试没怎么问iOS相关知识,不过二面面试官一直是微笑,因此这一轮很轻松,更像是一块儿讨论问题。
面试完已是下午4:30了,因为面试当天是星期五,而周五美团的会议比较多,因此等了会,二面面试官说三面面试官在开会,面试另约时间,我仍是说此次一次面试完吧,这一等就等了2个半小时,期间hr跟我说三面面试官是个大牛。
三面
我认为iOS作的优秀的几个地方,而后又根据我说的问了问比较深刻问题。
一、iOS是如何进行资源管理的。
二、Python比较重要的几个特性
三、网络五层结构,每一层协议,因为我网络不是很好,还问了一些其余的问题(例如MAC地址和ip地址的区别等)。
为何离开原来公司,以及职业规划,而后由于面试完大概就晚上8点了,就先让我回去,下周让HR跟我联系,我想这是应该经过面试了吧。
美团技术仍是很厉害的,从面试官的水平就能够看出来,尤为是外卖核心部门,办公环境是不错,可是感受就是有点乱,不知道是否是由于今天面试的人不少,基本上一直有不少人来回走动,有一些嘈杂。
百度
求之不得的百度终于找我来面试了,以前无论是内推仍是网络上投递都被拒绝了,缘由是我工做不到一年,没办法谁让马云爸爸太厉害,我投递的是杭州的天猫,是作虚拟现实的小组(刚听到这个名字感受和本身不太相符),这是我到面试完后,才知道的,面试官也跟我说iOS上的需求可能不会不少,更多的是AR技术在iOS上的应用,包含OpenGL等技术。
一面
询问了我博客上写的一些东西,从项目立意谈起,到设计,再到详细的技术实现,可谓是面面俱到,因为本身写的博客仍是比较熟悉,回答的还不错。
一、GLSurfaceView的相关知识,OpenGL,Shader,绘制流程。
二、询问当前作的项目,以及到具体的实现和优化。
三、多进程间的通信,Binder机制。
四、询问看过哪些框架源码,EventBus,Volley讲了一下。
大概聊了一个小时左右,聊得还能够,基本上都回答上了,中间给了我不少建议,不懂的地方,也会仔细跟我讲解一番,其实有一半的时间都是跟我聊产品,为何这个产品好,怎样作才能迎合市场,而后怎么设计整个产品等,感受跟我如今水平不是一个层次的,果真,次日就给我发了一封邮件,说我如今暂时不太合适投递的岗位。
面试结果
除了阿里淘宝外,其余的公司基本都拿到offer,这段时间把华为这边的工做都交接完,休息几天,若是有空的话回家停几天。
最后总结
本身对于互联网有一些小小的看法:随着资本的冷却,整个互联网市场也逐渐的冷静下来。iOS应用开发从一开始能说几个四大组件的名词,能随便写个监听事件,就能拿到高达上万的月薪的时代了。
归根到底并非工做难找了,而是iOS应用开发工程师这个职位已经趋于正常,不再是没什么技术也能拿高工资的香饽饽。固然这个也不是绝对的,对于中高级的开发人员来讲,市场仍是比较缺乏的,尤为是知名企业对于招聘员工来讲,不只要求有过硬的技术,还要求有高素质,好的教育背景等等。
总的来讲,高工资能够给你,可是前提条件是你要足够优秀,或者说让面试官以为你很优秀。
其实面试过程就是一个把你本身推销给别人的过程,对于咱们(毕业不久的同窗,由于我毕业不到一年)来讲就是要让面试官感受你技术好,有培养价值。感慨有点多了,仍是来点干货吧,大概列举一下每一轮面试的大概范围和深度,可是也不是绝对的,仍是要看具体状况。
笔试
对于社招的同窗来讲,基本上不须要笔试,可是也有公司是须要的,例如 今日头条和网易都有笔试。笔试都是比较基础的一些知识,Python、iOS等方面的,通常不会有网络,计算机等方面的笔试,通常状况下你们都能答出来。
1、二面
近一段时间的面试经从来说,1、二面的问题没有什么很大的区别(公司基本上都有3面技术面,可是也有例外,我在美团就是2面技术面。),基本上都是一线开发人员。主要考察你是否有牢固的基础知识和是否在日常开发中能熟练使用。
是否能讲解清楚你所作的项目,以及使用到的相关知识。
一、iOS基础知识
二、Python基础知识,大概是多线程,线程安全,集合类,JVM,类相关知识等。
三、iOS一些源码的阅读
四、优秀的第三方框架源码阅读
3、四面
通常公司都是三轮技术面,可是也有四轮技术面的,不过很少。不少公司基本上每一轮面试官都会记录他所询问的问题,以便给下一轮面试官做参考,还有就是避免对同一个知识点屡次询问。因此到了这轮面试,基本上不会再询问比较基础的知识。
会从两个方面考察,
一、广度:比较新的技术(多线程,插件化等),http协议,数据库,iOS(通常不会询问以前面试官问过的问题)。
二、深度:通常会经过1或2个问题来考察,例如:项目中的贡献,所作的优化。设计能力,基本上很少,这个要看面试的岗位,由于我这里面试的只是高级开发,并非架构。
工做中的亮点和突出。
HR面
基本上到了这轮,你就算经过面试了。hr会询问一些你的经历,最主要的仍是和你商定薪资待遇。在这轮,你们应该要对本身的薪资水平有一个大致的了解,通常都是在原来的工资基础上增加20%~30%的样子,固然,若是你在面试过程当中表现很是优秀,也能够不受这个限制。固然若是公司诚心要你,就算你要的工资太高,hr也会委婉的告诉你,不会直接把你pass。
做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个个人iOS交流群:638302184,无论你是小白仍是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 你们一块儿交流学习成长!
文章来源于网络,若有侵权,请联系小编删除。