美文网首页
当下移动开发唱衰,iOS开发者如何才能涅槃重生?

当下移动开发唱衰,iOS开发者如何才能涅槃重生?

作者: 一意孤行的程序猿 | 来源:发表于2020-06-23 14:18 被阅读0次

    2007年1月9日,乔布斯发布了第一代iPhone手机,他重新定义了人们对于手机的认知,那一天,也是移动互联网时代的开端。

    次年7月,在 WWDC 苹果全球开发者大会上,苹果宣布 App Store 正式对外开放,这也意味着属于开发者的移动互联网时代真正开始,iOS 开发应运而生。一转眼,十多年过去了,移动 App 基本成为了大众互联网产品的标配。移动技术的飞速发展,成就了一批人,但红利期过后,必然遇到挑战,有人说 iOS 市场不行了,有人说不需要原生技术了,有人说不好找工作了。

    事实果真如此吗?

    有些人工作年限很长,还是被淘汰掉了,我发现他们身上都有这样的共性:

    1、做iOS开发多年,基本都在做着重复性的工作,忙于应付各种业务需求的讨论、开发、测试、发布、维护升级,有新的需求继续迭代开发。

    2、通过频繁跳槽积累项目经验和工资,但真正经历大公司严谨的技术面试后才发现自己的基础知识没打好,很少研究Objective-C 和 Swift 的底层原理。

    3、开发技能零散,没有深入研究过第三方源码,学习技术的自驱力太差。有业务需要用到哪里的知识,就去谷歌一下拿来用,实现完功能就完了。

    更有甚者,工作5年,连基本的内存管理问题都答不上来,对指针懵懵懂懂,对系统内核一窍不通。随着移动领域的成熟和发展,iOS 开发者势必是从小型团队到大型,从草台班子到专业团队。

    实际上,在这个互联网时代,几乎每一家公司都拥有自己的APP,每一家互联网公司都需要自己的iOS开发人员。在真实的市场环境中,iOS 中高级开发工程师的就业形势是非常可观的。

    这些年移动开发领域相继诞生了组件化热修复动态化大前端小程序等热门技术,大多数开发人员,通常是上一个热点技术没搞懂,又有新的技术流行,比如React NativeWeex 还没用热乎,又开始流行Flutter 了。其实这些技术看似“纷繁杂乱”,实则是殊途同归,它们背后都是一些通用的底层技术和创新的设计思想

    再比如,热修复动态化大前端的底层技术,都是 JavaScriptCore 这样的 JavaScript 虚拟机技术;再比如,大前端Flutter 的渲染,使用的都是 WebCore 中 Skai 这样的渲染引擎。

    归根究底,与其关心下一个热点是什么,还不如静下心来好好消化掉这几年浪潮留下的关键技术,理解编程的本质,建立完备的知识体系,在这个基础上再去理解各种“新技术”,必然会驾轻就熟。

    因此,我给大家推荐几个学习晋升的方向:

    1:底层探索能力

    很多人会讽刺:面试造航母,上班拧螺丝! 其实不然,面试的高要求对于一家优秀的iOS需求单位来说是必须的!

    • iOS开发实现的确有很多的方式,但是一个真正懂得原理的开发人员在日后的开发工作中是非常重要。我见过一些开发人员:遇到BUG都是直接面向百度,不知道为什么直接 command + c/command + V OK,解决了,打版走人,下次又遇到了还是要面向百度,其中浪费的时间和小伙伴之间的沟通成本可想而知!

    • 底层原理只是你在工作开发中偷懒而逃避选择使用而已(或者全然不太了解)

    • 技术不断更新,底层原理是永恒根基

    • 底层原理是非常重要的,只有真正掌握原理才能迎接未来无限可能。

    下面是我推荐大家学习的内容:

    OC 底层探索篇也是大家熟悉而又陌生的地方,平时处处用,就是不知道为什么!

    2.性能优化以及架构能力

    只要你面试要求 20-30K 必然要求性能优化能力!

    • 怎么优化启动速度,应用包的瘦身!

    • 界面优化(卡顿检测以及分析解决)

    • 内存管理方面也是面试以及平时开发的重灾区!

    • 架构并不属于性能优化,但是我要求每一个 3以上开发 都要有一定的架构思维!

    3.数据结构算法

    数据结构算法应该是每一个程序员必备的根据。我记得我的导师跟我说过:一个程序员需要两样东西:智商和勤奋

    • 英文能力衬托你的勤奋度

    • 数据结构算法反馈你的智商等级

    数据结构与算法并不只是抽象的概念,掌握好的话可以写出更高效、运行得更快的代码,这对于如今盛行的网页和移动应用开发来说尤为重要。如果你最近一次使用算法是在大学课堂上或求职面试时,那你应该还没见识到它的真正威力!

    这个主题的大多数资料都有一种通病——晦涩难懂。满纸的数学术语,我觉得一种有趣的学习方式也是非常重要的!

    跨平台能力

    跨平台的方案有很多:

    如上表所示,RNWeex采用的技术方案大体相同,它们都使用JavaScript作为编程语言,然后通过中间层转换为原生的组件后再利用Native 渲染引擎执行渲染操作。而 Flutter 直接使用 skia 来渲染视图,而Flutter Widget则使用现代响应式框架来构建,和平台没有直接的关系。

    从性能方面来说,Flutter 的性能理论上是最好的,RNWeex次之,并且都好于传统的 WebView方案

    而从社群和社区的活跃来看,RN和Flutter无疑是最活跃的

    总结:我个人针对现在的行情比较推荐大家学习:Flutter

    • 同时现在很多人也开始着手学习了

    • 如何衬托你的优势,我个人还要推荐在平时入门到项目的过程,不妨花点时间探索了一下背后的原理:渲染的流程,Flutter和原生的共存通讯优化

    • 下面这张思维导图大家可以参考学习

    加分项

    现在的iOS开发为什么会遇到瓶颈是因为:前面储备过少,坐吃山空! 技术不断更新的时代,我希望你沉下心来与时俱进,不断储备技能为自己加分

    其实这里并没有非常具体的推荐学习方向,总的如下几点!

    5G时代,小视屏/直播技术都是现在当红,并且掌握人群非常少的技术,OpenGL ES、Metal、FFmpeg等等!

    而应用逆向安全,是大部分大厂都一直重视的,只是在小公司突显不出来,如果对于大厂有想法的,可以尝试学习!
    当然除了跟iOS有关系的,比如被炒火的Python,谣传比iOS好找工作的前端等等都是可以学习的!
    技术储备和亮点,这些都得根据个人兴趣或者公司需求来进行学习,当然越多的储备就会使你后面的路走的越容易!

    后记

    现在很多大公司招人已经明确限制需要 211、985 的学历,而对于我们大多人这种双非二本学历,连敲门砖都木有。但是,能否拿到 offer,除了真的很幸运,也和本身的努力分不开。

    持续更新--请iOS的小伙伴关注! 喜欢的话给一个赞吧!

    推荐👇:

    作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:789143298 ,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!

    申请即送:

    • BAT大厂面试题、独家面试工具包,

    • 资料免费领取,包括 数据结构、底层进阶、图形视觉、音视频、架构设计、逆向安防、RxSwift、flutter,

    相关文章

      网友评论

          本文标题:当下移动开发唱衰,iOS开发者如何才能涅槃重生?

          本文链接:https://www.haomeiwen.com/subject/sixhfktx.html