移动互联网下半场,iOS开发者如何“高薪”成长?(32)

发布于2019-04-20 11:27:38

大家好,我是戴铭,是极客时间《iOS开发高手课》专栏作者。最近收到很多同学们各种各样的反馈,有说工作几年,感觉好像什么都会点,又好像什么都不太精,开发不费劲,但遇到优化问题就懵;有说迫切希望提升开发能力,看了各种各样的学习资料,花了不少时间精力,还是一知半解不系统;还有的说写了不少项目,含金量却不高,一被问到底层就各种哑口无言了。

其实大部分同学遇到的问题,我在面试应征者时也经常看到,工作3年也好5年也罢,时间不足以衡量一个技术人开发水平的高低,究其根本,就是因为知识体系零散,而技术迭代太快跟不上节奏,基础打的不牢固,对底层原理不理解。

这就是为什么有些人工作很久还被淘汰的原因。因为还算不得真正的iOS开发高手。

iOS开发之前非常火爆,如今红利过去,市场缩紧,就有人说工作不好找了,其实只是因为竞争大了,如何才能真正的提高自己的“硬核”实力,既不畏惧大环境的影响,也不害怕职场竞争,成为一名真正的iOS开发高手?

今天跟大家聊一聊,我的亲身经历和一些经验吧。想要成为iOS开发高手,”高薪”成长,让自己的技术有个指数级的增长,你可以尝试下面3个方法:

窍门一,将代码放到 GitHub 上。

看到这个一般人的反应就是觉得自己的代码和那些高大上的开源库比起来相形见绌,有种拿不出手的感觉。但是要想提高技术,是提高自己的技术,只要和自己比就好了。将代码发出来不是献丑而是为了交流,交流就会获得信息,都说信息时代科技进步都是指数级,这个道理在这里也同样适用。

窍门二,主题分享。

在滴滴时,记得第一次技术分享是在组内做的一个白板分享,为了避免分享时跑题和讲不全,我在分享前专门把要分享的内容在 A4 纸上画了一遍。白板讲时拿着那张纸边看边讲,讲完后我发现在 A4 纸上画的这个过程最有价值了,在这个过程里我对整个相关内容会做一个总结,会考虑重点,铺垫等等因数,这个轮回下来在整理过程中我发现其实对知识点有了更深的记忆。

每次的分享其实都会考虑比较多的事情,首先是内容。谁都不愿意听到处都能够看到的东西,这样为了保证新鲜感,首先要根据自己的主题看看那些到处都能看到的东西是什么(这个过程其实比较痛苦需要查找大量资料),尽量避免那些大家耳熟能详的料,多分享些经过自己思考总结出来的理解,我觉得某个知识点只是搞懂了和实践成功了还是远远不够的,在搞懂的基础上去想为什么这样设计而不那样设计,通过自己的理解想通了那才是有意思的事情。这样就会迫使自己看大量的知识,自然而然也就学习到了大量的知识,有种被推着往前进的感觉。

窍门三,在定的时间节点里将涉及到的问题尽可能问到底。

另一个非常关键的事情,就是时间节点的设置。比如某版本需求提测时间点,再比如某次分享的时间点。有了这个时间点,就可以在节点时间到达前将问题考究透,这段时间先不去关注其它东西,每次节点完成都可以好好犒劳下自己,这样下次进入另一个周期时能够充满战斗力。

有一个我影响很深刻的工程大小瘦身的任务,这个也是有个时间节点。在这个任务下达之前,我们已经手动做过了一轮对无用资源的清理,剩下的只能依靠工具了。我几乎用遍了所有相关工具,当时有种孙悟空在东海龙宫试兵器的感觉,怎么都不顺手。又没有定海神针,那么只能自己造了。现有工具主要的问题是准确度不高,所以每次都需要手动核对下,这样每个版本来回几次,我们代码又这么多,这种工作量会让人吃不消的。但是任务又不能不完成,想着用户在外面急着打车需要安装滴滴时,程序包太大耽误下载时间又浪费流量该多不好。

这种检查核对工作重复枯燥又很耗时,工期又很紧,但是为了用户体验,我还是决定挑战下自己。我发现,提高准确度达到不需要人工检查是很有难度的,连 App Code 都没有做到。可人有急智,我发现通过模拟编译的过程,将代码整理成有效的结构进行分析和比对可以很容易自己控制各种检查规则。想完就撸起袖子加油干,几天后就做了出来。不过开始时没注意时间复杂度,导致速度慢得无法接受。于是一点一点地抠,把它们一个个转成空间复杂度后速度得到了质的飞跃。接下来几天,在实际工程代码检查过程中又解决了一些运行时写法的问题。为了提高体验我还做了一键清理,将无用的代码直接注释掉。这样在后面版本里节省了大量的人工检查时间。

这些方法大家不妨尝试一下,坚持 100 天看看效果。分享是一种让自己成长很好的方式。我个人平时比较喜欢分享,会将日常学习和工作中的经验分享到我的博客和微博上,也会将一些技术总结通过代码发到 GitHub 上,也会参加 GMTC 全球大前端技术大会,和 Swift 开发者大会来进行分享。

参加Swift 开发者大会

参加GMTC全球大前端技术大会

另外一个爱好是绘画,首先要感谢大家对我手绘图的喜爱,有同学问我怎么想到用手绘图解 iOS 的知识点的。其实几年前我开始每天下班画上 2 个小时画,工作忙起来后,我会在周末找一整天的时间画,一旦拿起笔就停不下来,可以不吃不喝(别学我)。再之后周末要做技术分享,也没时间画画了,于是想着可不可以把两件事结合起来,把技术内容画出来,更加直观、有想象空间。

还有一些其他的画稿(篇幅有限,放2张图)。

对于我的专栏《iOS开发高手课》,很开心看到很多同学很用心的评价,非常认真的学习,作为 iOS 开发的高手课,内容是会难一些,希望大家能够坚持学习,构建完整的知识脉络,掌握“硬核”实力。

感兴趣的同学可以准备入手了,现在订阅还可以邀请你加入「iOS 学习群」,我们一起交流学习进步;还给大家申请了额外福利,现在订阅还可领取价值4800元的 GMTC 全球大前端技术大会演讲 PPT(获取方式:极客时间服务号后台回复“iOS”)。

部分资料图如下:

图片

戳我订阅《iOS开发高手课》