- 市场过度饱和,培训机构追求自身利益,在 iOS 开发人员相对稀缺阶段,培训了大量的从业人员,扰乱了市场正常的供需关系,导致从业人员供大于需;
- 鱼龙混杂的从业者,很多开发者并不是科班出身,只是听说 iOS 开发者的薪资待遇高,才决定去培训机构学习,经过四五个月左右的强制灌输和培训机构的包装后,摇身一变成了具有两年开发经验的 iOS 开发者,其本身不具备计算机专业相关的基础知识;
- 资本市场资金的收紧,导致流向互联网领域的热钱迅速减少,相比前几年互联网行业的创业潮,很多创业者张口闭口我们是颠覆者,一定会替代某某某,只要嘴炮一番就能忽悠到投资人的钱,今年的资本市场回归了理性。那些没有清晰盈利模式的初创公司迅速倒闭,相关中小互联网公司的用人需求在萎缩;
- 市场需求的理性回归,很多培训班出身,或者工作年限不足三年,或者是一年工作经验用了三年的初中级开发者满足不了市场上很多公司对于中高级开发者相关的技术要求,于是,被市场无情的淘汰;
- 行业内薪资待遇的降低, iOS 开发已经结束了早期因从业者稀少而造成的市场红利时期,进入到了一个稳步发展的相对稳定时期。因此,薪资待遇回归到了一个正常的水准。那些早期享受到这种红利的开发者,一时间接受不了薪资待遇的降低;
- 技术层面方面, iOS 开发依托苹果提供的平台,该平台的封闭性决定了开发者所接触的技术面比较狭窄,脱离了苹果,不能完全胜任其他技术工作;
带着这些不安,对于已经结束的 16 年,我做了一份[总结]( http://xibhe.com/2017/01/15/再见! 2016/),也包括 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 ,可是现在看来,已经没有问的必要了。
“感觉每个做技术的一开始都是一粒沙子,不断修炼学习吸收营养变成大颗粒的沙子。 再学习其他东西把自己变成土块儿,时间是一把大筛子,每次过滤掉小沙粒,只留大块儿在上面,在你被筛掉之前要么变的比网眼大留下来,要么赶紧被筛掉转行吧!”
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.