第一次面试别人是怎样的体会

Author Avatar
XibHe 2月 26, 2017
  • 在其它设备中阅读本文章

不安的开始

iOS开发没人要了

自从去年后半年以来,iOS开发相关工作就被唱衰。很多人抱怨裸辞后找不到工作,可谓是哀鸿遍野。看到了太多这样的帖子,身边也有相识的人遭遇了公司解散,失业后迟迟找不到工作的窘境。这也直接导致了我内心的忐忑和不安,不禁要问,iOS从业者的未来在哪里?我又该何去何从呢?这样的疑问,这样的不安,一直伴随着我。在结合别人的现实的遭遇后,分析了一下造成现阶段初级,中级iOS从业者找工作难的原因:

  • 市场过度饱和,培训机构追求自身利益,在iOS开发人员相对稀缺阶段,培训了大量的从业人员,扰乱了市场正常的供需关系,导致从业人员供大于需;
  • 鱼龙混杂的从业者,很多开发者并不是科班出身,只是听说iOS开发者的薪资待遇高,才决定去培训机构学习,经过四五个月左右的强制灌输和培训机构的包装后,摇身一变成了具有两年开发经验的iOS开发者,其本身不具备计算机专业相关的基础知识;
  • 资本市场资金的收紧,导致流向互联网领域的热钱迅速减少,相比前几年互联网行业的创业潮,很多创业者张口闭口我们是颠覆者,一定会替代某某某,只要嘴炮一番就能忽悠到投资人的钱,今年的资本市场回归了理性。那些没有清晰盈利模式的初创公司迅速倒闭,相关中小互联网公司的用人需求在萎缩;
  • 市场需求的理性回归,很多培训班出身,或者工作年限不足三年,或者是一年工作经验用了三年的初中级开发者满足不了市场上很多公司对于中高级开发者相关的技术要求,于是,被市场无情的淘汰;
  • 行业内薪资待遇的降低,iOS开发已经结束了早期因从业者稀少而造成的市场红利时期,进入到了一个稳步发展的相对稳定时期。因此,薪资待遇回归到了一个正常的水准。那些早期享受到这种红利的开发者,一时间接受不了薪资待遇的降低;
  • 技术层面方面,iOS开发依托苹果提供的平台,该平台的封闭性决定了开发者所接触的技术面比较狭窄,脱离了苹果,不能完全胜任其他技术工作;

我所遇到的一个例子

带着这些不安,对于已经结束的16年,我做了一份总结,也包括17年的一些计划。或许是心志不坚,或许是颓废太久,这种不安仍旧存在,直到上周面试了一个来公司应聘iOS开发的应聘者……

周五下午,人事和我说能不能帮忙面试一下,本来是另一个项目组需要的人,但恰巧他们的负责人不在,就让我去面了。第一次面试别人还是有些紧张,好像自己第一次被别人面试一样紧张。但左等右等还是等不到人事通知我去面试,后来大概半小时后被人事告知那个来面试的人已经走了,据她说面试题只做了一半,人就走了,可能是被我们的面试题吓走了。但面试题我也看过,是四十道很基础的面试题呀!表示不解啊!本以为这次安排的面试就这样结束了,后来人事通知还有一个已经写完了面试题,在沙发区等着,于是我就开始了这次面试之旅。

短暂的两分钟的沉默,我简单看了一下他的简历,上面工作经验写着三年。心里便盘算着从哪些知识点入手可以探出对方是不是真的有三年工作经验。先是让对方做了一个简单的自我介绍,然后开始对着简历问一些问题,简历上写了四个项目,每个项目所用到的技术都是一些大众化的技术,比如,网络请求库AFNetworking,图片加载库SDWebImage,数据库FMDB,刷新库MJRefresh,适配库Masonry等各种三方库的使用。于是我便问了以下的问题:

  • NSOperation与GCD的区别
  • GCD中如何避免死锁和数据竞争
  • Block的使用及如何避免循环引用
  • 使用过哪些设计模式
  • 单例,什么是单例,单例的作用
  • 内存管理
  • 网络请求库的使用
  • JS与原生应用是如何交互的
  • 了解过RunTime吗
  • 通知是异步还是同步
  • 该如何对tableView进行优化,实现滑动的流畅性,以及如何避免tableView代理方法中冗长的代码
  • SDWebImage的运行机制
  • App中的多用户逻辑
  • 如何实现一个可以循环滚动的轮播图(类似于京东,淘宝首页顶部效果)
  • 给你一个新项目你会怎么做
  • 是否能看一下你的技术博客或是GitHub上的开源项目

对方对上述问题的回答模棱两可,十分的模糊。其中涉及到GCD那块的问题,只说了用过,GCD的如何避免数据竞争和死锁,以及它与NSOperation的区别只是把什么是NSOperation用名词解释了一下,而对于Block的循环引用问题,支支吾吾想了半天回答的文不对题。设计模式是典型的MVC,倒是提到了MVVM,但这里也只是简单的提到,就没有什么下文了。单例的使用,边想边说,整了半天也没有将声明单例的具体方法说明白。内存管理这块,据他说,学iOS开发时MRC已经没人用了,他就直接用的ARC。JS与原生应用交互这块说没有用过。那么RunTime呢?说是底层的东西没有怎么了解过。tableView的优化方面,说是用的原生API的代理方法,这个还需要优化吗?
SDWebImage的运行机制,把它的使用方法说了一遍。App中的多用户逻辑,说是服务器的事,客户端不需要考虑。轮播图功能的实现,说的是使用NSTimer。给你一个新项目你会怎么做,说的是先花一周进行需求分析,再新建工程,使用CocoaPods把那些要用到的三方库引入到工程中。问完了这些问题,我还是抱有一丝幻想的,心想也许是太过紧张了,再看看他做的项目吧!

看了下对方手机上他参与开发的项目,是一些与美食推荐相关的项目,有一个已经停止维护,拉取不到任何数据了。剩下的都是一些数据使用tableView展示的普通项目,没有什么逻辑特别复杂或是需要使用很高明技术的功能。自此,我仍然没有放弃,心想或许对方还研究过其他的技术点,于是就问对方,是否能看一下你的技术博客或是GitHub上的开源项目。对方回答说,没有。此刻,我也只能道了两声谢谢,说有结果人事会通知你。心里想着,本来还想问有没有使用过Swift,可是现在看来,已经没有问的必要了。

结束

v2ex

红利已经结束了,那个只要会使用tableView等常用控件就能找到工作的时代结束了。
曾听一位前辈说过,

“感觉每个做技术的一开始都是一粒沙子,不断修炼学习吸收营养变成大颗粒的沙子。 再学习其他东西把自己变成土块儿,时间是一把大筛子,每次过滤掉小沙粒,只留大块儿在上面,在你被筛掉之前要么变的比网眼大留下来,要么赶紧被筛掉转行吧!”

最后来个总结吧!猥琐发育,别浪!

–EOF–

若无特别说明,本站文章均为原创,转载请保留链接,谢谢