iOS程序员面试

我从事iOS开发也有5年之余了,因为没有写博客的习惯,再加上周末有时会接点私活,所以很少更新博客。最近看到很多网络上的大V在谈iOS的面试,自己担任过面试官,也被人面试过大大小小十几家公司,所以我觉得自己还是有资格谈谈这个问题的。

一、面试的问题

现在国内的一线互联网公司面试iOS 一般都会有2到3轮的技术面试或笔试,和1轮的HR面试,从我接触过的腾讯、阿里、唯品会、UC、网易这些公司来看,问到最多的有这几个方面:

1.项目经历
项目经历是最能反映一个人的能力的,项目的大小、迭代周期、自己在里面担任的角色和职务,都是面试官最感兴趣的点。一般在大项目里面呆过一段时间的,并且表现还可以的,都能顺利第一、第二轮面试。我这里指的大项目是注册用户数级别在千万以上,DAU在百万以上的项目,比如手机QQ、微信、支付宝这些。另外就是大项目可以没有经历过,但是其他类型的小项目做过很多,经验还比较丰富的,或者是在网络上有一点名气,写过一些开源项目的,这样的人一般公司都愿意要。
然后再说说迭代周期的问题。互联网公司最讲究敏捷开发,跟传统的软件公司比起来周期短的多,常常是半个月到一个月就发一个版本,如果你没有在这种节奏下工作过,可能一开始会很难适应。
最后,就是自己担任的角色。很多人喜欢在面试的时候把自己的角色夸大,明明只是做了一个模块,却说整个架构是他设计的,这样其实很不好,面试官不是傻子,能面试你的一般多多少少对整个项目开发和架构有点了解,如果问题一两个细节你答不上来,可能面试就over了,所以夸大其辞是不可取的。但是你可以突出自己做的那个模块的重要性,详细的说说你在这个模块上花了多少工夫,用了哪些比较好的方法和设计模式,使模块的稳定性、可维护性得到提升,以点带面,顺带谈谈架构,这样面试官会觉得你眼光比较长远,也很踏实。
2. 技术细节
既然是技术面试,总免不了技术细节上的考察,这个各个互联网公司的考察倾向不同,像腾讯比较喜欢问设计模式和一些语言基础的东西,有时候也会问问算法。阿里比较喜欢问一些图像处理和底层算法的东西。UC和网易喜欢问C和C++相关的问题,唯品会就简单一点,UI方面和网络方面OK 基本就没问题。当然,这些只是根据我自己的亲身经历总结出来的,各个公司,不同面试官考察的侧重点都不一样,这个仅仅只能作为参考。总体的一个原则就是在你的简历里面找可以深究的技术点,如果你简历里面毫无亮点,那你估计连面试的机会都没有了。
对于不懂的态度,我想还是那句话,尽量展现自己知道的知识点,哪怕结果不是很确定,也要把自己的推理过程说出来,这些都是为面试加分的点。
3. 性格和时间规划
直接的性格测试这个对于程序猿来说已经比较少了。像以前华为面试的时候会把很多人叫到一个小房间里,搞一个具有争议性的话题,分小组讨论,现在很多公司不会很明显的考察,只是在面试的时候会适当问一些叫你很难回答的问题,或者是故意要你在短时间内完成一个不太可能完成的任务,然后看看你的表现。面对这种困难的时候,一定要记住几个原则:一、要自信,哪怕你不懂的,也要尝试去理解问题,找到思路,千万不能轻言放弃。二、要做好时间规划。找到解决思路后,把问题拆分,简单的先做,难的放后面,确保在规定时间内完成最多的任务。三、可以适当求助度娘或者谷歌,一般面试不会不让你带手机,而且程序员就是在搜索引擎的帮助下完成的,所以善用搜索引擎,可以达到事半功倍的效果哦。
4.想了解公司哪些情况或者是自己的目标
这个一般是HR问你的,有时候跟HR聊天是使用些技巧的。比如对公司的期望,你如果直接问薪酬待遇这些,肯定是不行的,但是你可以了解公司的薪酬结构,有没有期权或股份(如果有,近期有没有上市打算),还有社保、餐补等其他福利,如果一个公司这些福利做的很好,那么薪酬一般不会差,至少也是达到行业平均水平的。如果是创业型公司,刚起步没多久,就主要了解公司的融资情况,盈利模式和老板的性格、之前的经历等等。因为创业公司能不能成功很大程度上是看老板,如果老板之前有过成功的创业经历,那么再成功的可能性也比较大。还有盈利也很重要,虽然现在的互联网企业大部分是先烧钱培养用户,做大以后再盈利,但如果市场不好的话,很可能还没做大就已经把钱烧完了,这时候你像有好的待遇是不可能的。
最后,就是你自己的职业规划问题。如果你打算两三年后自己创业的,可以先去小公司看看,了解一下你需要准备哪些东西,包括商业计划书、融资渠道、市场情况等等,也积累一些人脉。大公司像BAT这种能进的话也可以进去,但是要做好一两年后出来的准备,因为这些公司业务已经很成熟的,在里面你很难有大的提升,体现不出个人价值,但是了解下大公司的架构和做事的规范还是可以的。那些不大不小的,又没有在行业里面比较靠前的,就不推荐去了,毕竟你是打算自己创业的。 而对于暂时没有创业打算的朋友来讲,则是中型或者大型的公司更佳适合,因为这些公司普遍来说待遇方面会比小公司更好一点。

二、面试或笔试之前的准备

前面说到,面试中可能会问到一些算法题,这方面可以提前准备,网上比较多谷歌和微软的面试题,什么反转二叉树啊,前序遍历、中序遍历啊、双向链表啊这些都是经常问到的,我就不详细列举了,有几本书大家可以有空看看:
代码之美(Beautiful Code)
编程之美
设计模式(Design Pattern, GOF著)

然后就是看看自己写过的代码,特别是你在简历上强调的那部分,回忆一下之前重构或者解决bug的经历,以及里面用到的技术点。
最后,搞清楚你要面试的岗位有没有什么特别的要求,比如对于系统底层的了解或者是某种框架的了解。如果有这个需求,就要着重看一下了。

三、推荐渠道

这个其实跟面试关系不大,但是对你录用与否以及录用之后有一定影响。一般来讲,是公司内部人推荐最好,因为他了解公司的优缺点,能为你提供参考,公司的面试官也会着优先考虑内部推荐的人。其次是猎头,好的猎头能帮你谈薪水,给你提供指引,但是差的猎头也能毁了你,我就试过跟一个猎头闹僵,最后搞到面试完都没去的,而且猎头掌握你的个人资料,对你以后求职有一定的影响。最后,就是自己投简历了,这里面也有个优先级,最好是官网找到职位描述,然后给HR发邮件,其次是各大招聘网站,最后是现场招聘会。

其实说了这么多,有些跟iOS关系不大,但是也挺重要的。希望能对朋友们有所帮助吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值