鹅厂6年在职架构师告诉你如何成为iOS大牛开发者【进阶篇】

  

序言:   

如果从13年移动客户端大火开始算起,至今已经有五个年头了。现在移动端的形势也不需要太多的废话来描述,一句话总结就是:“浪潮退去,谁在裸泳一看就清楚。”我希望借助这篇文章来聊聊在我心目中,移动互联网下一个五年的趋势和机会,以及我们iOS工程师能做哪些准备,实现自我提高。本文主观性的看法比较多,文笔也比较激进,仅供参考。

  

我们都知道价格会受到供需的影响,如果某项技能在市场上紧缺,那么掌握这门技能的工作者工资就会相对高一些,比如14年前前后能写好UITableView就能找到一个相对不错的工作了。在我看来,未来几年的移动互联网,会出现”一个过剩,两个不足”,我会逐个分析并试着给出一些建议

  

在这里小编附带一些iOS开发的学习资料和面试题,至于其他资料视频我就不一一截图了,需要的可以加我新群领取711413569
鹅厂6年在职架构师告诉你如何成为iOS大牛开发者【进阶篇】“> </p>
  <p>(一)UI工程师过剩</p>
  <p>这一点是我老生常谈的了,首先要注意的是避免成为API调用工程师,因为这些UI方面的知识对个人价值的增长不是线性的,如果你还记得高中数学,请回忆一下y=ln (x)这个函数的曲线。从零到写好UITableView给一个工程师带来的收益,远远不是从写好UITableView到写好UIStackView能比得上的。</p>
  <p>就以UIStackView为例吧,先不说它从iOS 9才开始支持,而要想应用不支持iOS 9,怕是要等到猴年马月了。就说它提供的功能,虽然简化了已有场景,但这个功能完全可以通过封装已有的组件来实现,相信很多大型项目都有,为什么还要费力气去兼容版本,以及再学习一个新的API呢?人的精力是有限的,如果你总是追着苹果的脚步,每年补WWDC上那些新坑和老债,那么视野就永远只能停留在iOS中了。</p>
  <p>(二)专业技能人才不足</p>
  <p>这里的专业技能指的是移动端这个大话题中里比较垂直的知识领域,大概包含以下几个方面:</p>
  <p> 1,图像/视频处理</p>
  <p>随着网络基础设施的普及,以及流量费用的大幅度降低,4 g基本上已经全面商用了,如果说移动端前五年是文字为主,图片视频为辅的话,在接下来的几年中,用户对高质量图片和视频的要求会日益增长。</p>
  <p>由于我对这个领域并不了解,所以能够推荐的并不多,在我印象中,OpenGL这种跨平台的引擎,计算机图形学的知识,视频编码与协议都是可以花时间研究的,现在有很多优秀的创业公司也急需这类人才。严格来说这些知识都不算移动互联网方面的知识了,所以门槛较高,但门槛这东西是个双刃剑。它会增加你的学习难度,但一旦你掌握了这门知识,门槛又会变成你个人价值的护城河。</p>
  <p>我格外想要声明的是,CoreAnimation这类的东西如果不是工作中强制要用,一般就别碰了,就像没人会傻到用SpriteKit/SceneKit去写游戏一样,这种API密集型,又不能跨端的库是没有前途的,真正有价值的动画一定是用一套统一的DSL(领域特定语言)去实现,然后导出到各个平台上,所以开发者一定要多在动画的原理上下功夫,比如了解矩阵变换,线性代数这些,而不是把时间浪费在阅读官方文档上。</p>
  <p> 2,逆向工程</p>
  <p>研究逆向工程的作用不仅仅是破解程序,在我看来更多是学习底层的操作系统。在开发应用的过程中,我们使用系统提供的库,调用API就可以实现需求,其中的过程完全是黑盒,而逆向工程的目的就是要开盒子,利用一些工具从二进制层面入手,反过来推测应用开发者的代码和逻辑。这其中会涉及到很多C语言,操作系统,编译原理方面的东西,相对来说门槛很高。逆向工程对企业对价值也很大,因为大家都不希望自己被竞争对手一眼看穿,又对竞争对手对秘密颇感兴趣。</p>
  <p>以上的内容都可以花时间研究的专业知识。这些知识大多是自成体系的,没有较长时间的积累,很难入门。这一点非常重要,因为很多知识看起来非常专业,门槛也很高,比如我下一节就会提到这样的例子,但这些知识我并不鼓励学习。区分的标准是,你学习的知识是一个知识点还是一个体系,如果你学习的只是知识点,那么它只能是整个知识树上的枝枝丫丫,边边角角,如果你学习的是知识体系,就具备了衍生知识点的能力,也就是我反复强调的举一反三的能力。</p>
  <p>上面举的两个例子都是我认为不容易遭到时间的淘汰,比较值得研究的话题。在这些领域上的投入可以理解为线性的,也就是一分耕耘,一分收获。<h2 class=鹅厂6年在职架构师告诉你如何成为iOS大牛开发者【进阶篇】