我所理解的iOS开发高手

推荐:程序员简历怎么写才好?免费修改简历!!

上周日很荣幸参加了逻辑教育在深圳举办的iOSer线下沙龙,还有点意思。不仅遇到了一群激情满满又非常上进的iOS开发者,也认识几个风趣幽默、奇奇怪怪的逻辑教育的iOS老师,另外还偶遇了几个我公众号的老读者朋友。

 

逻辑教育是全国最大的iOS开发培训机构,专注于iOS中高级进阶,是腾讯课堂的重要合作伙伴。它base在长沙,而我又是湖南的,这又是另外一种缘分。

本来主办方是希望我分享一下高级iOS技术水平需要掌握哪些技能,建议的学习方法并聊聊iOS未来的职业规划。但是我自己确实积累不够,自己也还在摸爬滚打中,所以我就结合自己的工作经历和iOS开发经验,谈谈我对iOS高手的理解,然后分享了3个我觉得比较有用但是很多人可能不太注意的小tips。

以下是本次分享内容的整理。

1. 我所理解的iOS高手

什么样的iOS开发可以称之为高手呢?是可以徒手撸 runtime ?还是手撕 runloop? 甚至有时候,我也还会灵魂拷问一下:我都做了10年的iOS了,我自己算不算iOS高手?

如果真的是要徒手撸 runtime ,那我就真的跟iOS高手还差十万八千里。

所以,我换了一种思路。我们大家都看过金庸,看过武侠小说或者电视。在武侠的世界里,你去观察那些武林高手,你会发现大部分的武林高手,都是一招鲜吃遍天。

什么意思呢?武林高手 = 普通武者 + 绝招。武林高手就是普通习武之人,然后加上一个绝招或者独门绝技。比如:乔峰就是普通武者加上降龙十八掌,段誉就是普通武者加上六脉神剑。

那同样的道理,iOS高手 = iOS普通开发 + 绝招。

他就是一个普通的iOS开发,加上一个绝招。这个绝招可能是音视频,这个绝招可能是外设连接,这个绝招可能是狂装酷炫吊炸天的动画,也可以是架构设计或者其他的。

iOS高手 = iOS 普通开发 + 绝招这个等式成立的底层逻辑是什么呢?

当然,我们都知道人的精力的有限的,不可能事事钻研,样样精通。除了这个之外,我认为这个等式成立的底层逻辑是这样的。

在面试的时候,我通常会问这样一个问题,假设你到了一个新的iOS开发团队,你最擅长的是什么?你可以说我什么都擅长,你可以这么说,但是我不信。

然后在职期间日常工作中,我们讲究好钢用到刀刃上。那你所擅长的技术能否跟团队的业务紧密结合呢,能否支撑业务的高速发展呢? 

然后晋升答辩时,你又会发现只有高度聚焦,才能取得技术上的突破,攻克相关技术难点,体现技术深度。在一个点上做透才能做出业绩,才能顺利的晋升。

所以,这样一套逻辑是说得通的。

2. 如何成为iOS普通开发

要成为iOS高手,先要成为iOS的普通开发。

如何成为iOS普通开发,这个大家都是过来人,都深有体会,网上也有很多iOS基础入门的书籍和课程。

这里我就结合之前我总结的iOS面试准备的脑图,以终为始反过来聊聊作为一个iOS普通开发需要具备什么样的知识体系,掌握哪些技能。

首先当然是iOS开发相关的基础知识,包括runtime,runloop,UI布局,机型适配,常用的开源框架等。它涉及的点比较全,但是要求并不需要很高,只需要能够看得懂相关代码,会用,原理性的东西略懂就ok了。

然后就是调试工具,主要是instrument自带的那一些,会用,会定位一些常见的问题就可以了。

然后就是一些通用知识和技能,包括最基础的数据结构和算法,我个人认为只需要掌握链表、数组,队列和栈、以及常用排序算法和树的遍历就足够了,就具备了完成日常开发任务的算法功底。

然后就是网络基础,包括各种网络协议等。另外,也需要有相关的产品owner意识,会关注一些产品指标和产品数据。

这样基本上就是一个合格的iOS普通开发了。

关于怎么样成为一个有潜力的普通iOS开发,我这里分享几个可能其他人没太关注,但是我个人切身经历来看还是挺有用的三个小tips。

3. 分享3个小Tips

第一个tips,就是要关注iOS系统的最新特性。

大家别笑哈,根据我的经验,能做到这一点的iOS开发人员不过超过30%。我是有数据支撑的。我面试招人有个必问的问题,是一个送分题,也是一个送命题。那就是iOS系统最新版本是多少了?有哪些你印象深刻一点的特性,你怎么看。一般来面试的人多少都会准备一下,但是能回答出这个问题的人不到一半。所以,我敢说能做到这一点的iOS开发人员不过超过30%。

你可能会想,我们在日常开发工作中,确实其实很少会用到多少新特性,一般都是用最老最稳定的接口和框架最好,这样兼容的系统版本也更多。问这种问题有何意义呢?

其实,我问的是一种习惯,一种热爱。你作为iOS开发者,连最新系统的重大特性都不关注,我觉得这个是有问题的,我不怀疑你能完成日常的开发任务,但是我会怀疑你的热情,怀疑你对iOS开发的专注与执着。反过来,如果你养成了这个习惯,你也会增加对这个事情的热爱。有句话说装着装着就成真的了。

第二,它是培养你的技术敏感性的一种有效途径。你会想这个技术和功能推出来的目的是啥,有啥应用场景。

然后,你也会慢慢养成产品思维,技术最终是要为业务为产品服务的。新出来的一个特性,你觉得好像跟你们的某个业务场景很匹配,但是这个时候产品策划可能并不知道iOS新出了这个特性,那你就可以主动提出来,做demo给产品演示,推动落地,在这个过程中也能增加的你在团队中的影响力。

第二个小tips:拥有一个iOS开发者账号。作为iOS开发者,688一年的开发者费用我强烈建议不要去省。

这个其实跟刚刚第一点也是有点关联的,是第一个tips的延伸。在公司上班,公司当然会注册公司的开发账号,但是一般公司账号的管理和权限控制会比较严格,就是没有严格控制,你也会小心翼翼担心配置出错,影响团队工作。

自己有一个账号,就可以为所欲为了。免费的东西,大家都不知道珍惜,你是花了钱的,时刻提醒你你是一个iOS开发者,你相对来说动力会足一点。然后,比如苹果新出了一个什么框架,你想试用,直接开干就行了。比如之前刚刚推出carplay框架时,你直接去配置一下,生成一个描述文件就可以demo整起来。

然后,可以体验一下App开发,提审,上架,运营,推广的全流程,如果能够自己业余弄个小项目上线那就更好了。同样,你有这个开发者账号,有时候也能够提升你的团队影响力。有时候公司账号资源有限,很多测试机都满了,如果你有账号,你可以分享跟同时一起开发调试,有利于提升你的团队影响力。

第三个小tips,就是要重视一些基本工具的熟悉和使用,刻意练习。

古话说的好:工欲善其事必先利其器。iOS开发发展了十多年,其实有很多工具是非常完善的。但是很多人容易把它忽略,因为平时需求都做不完。

但是,我个人经验来看,有几个工具是必须要去掌握的,如果你刻意去练习的话,也花不了多少时间。

首先就是抓包,我其实是见过很多iOS开发者不会抓包的。跟后台业务对接或者定位问题时,抓包有时候能够省很多事情。

第二个就是Instrument里自带的一些工具,其中最重要的就是Time Profiler,这个在定位卡顿,优化CPU占用时,优化启动速度时非常有用。

第三个是一些最常用的脚本,最基本的iOS自动编译打包,然后如果还会一些批处理或者其他脚本,有某些时候会有意想不到的用处。

磨刀不误砍柴工。其实我个人认为要掌握的工具也不多。你刻意练习的话也花不了多少时间。还是很值得投入的一件事情。

4. 如何练就自己的绝招?

关于iOS普通开发,我还可以结合自己的经历分享一些观点和tips,关于如何练就自己的绝招,我能讲的就不多了。只能跟大家分享一点非常初浅的思考。

 

首先,你的绝招得要能够服务于你的业务,所有的技术都要支撑业务发展,脱离了业务聊技术是没有价值的。

然后,要足够聚焦,在一个点上使力,持续深挖。在这个点上要达到一定的深度,至少在这个点上,你敢说我这个东西我们公司最懂。

如果能够做到业界知名,在公司外部也有影响力那就更好了。如果你做的这个点其他懂的人很多,那会收获更好的议价能力。

因为所有事情都要有人去做,但是相对核心相对聚焦的事情就那么多。这里需要特别注意的是要学会适当的向上管理,主动去影响你的领导,尽量多做一些更核心,更聚焦的任务。

5. 送给大家一句话

我之前总是会参加各种活动各种分享,活动结束之后也经常会感慨:那个谁谁谁太牛了,谁谁谁太厉害了,然后就没有然后了。后面有一次就看到了这句话:不要说很多感慨,要说接下来做哪几件事情。

6. 后记

其实我很少参加这种线下交流活动,也非常担心自己讲得不好,或者讲得不是大家想听的,浪费了大家的时间,最重要的是怕给公司和团队丢人。后面发现这种担心是多余的,来的听众都很和善,也收到了不少同学及时的正反馈。

分享和圆桌讨论结束之后,还跟大家又一起交流讨论了很久,最后放一张大合照,祝大家升职加薪,逻辑教育越办越好。


欢迎加我微信

勾搭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值