谈谈iOSer的进阶之路
”Stay hungry, stay foolish“ --Steve Jobs
做iOS开发也有好几年了,在之前就有开个技术分享的专栏,但也就停止想的层面了,一是上班时间本来够长了,个人空余时间有限,就懒得弄,二来也一直找不到要写或者分享的亮点,大多数技术文章网上都有。最近与同事闲聊时聊了一下这事,让我有了一个新的改观,其实你可以两周或者一周为一个节点,这个时间你定。把你研究学习的所得写出来,一来也是对这段时间的学习的总结有利于提高你自己,而来也是一个技术分享能帮到一些人那是最好,也许有些错误别人也能帮你指出。这也是开始这篇的动力点,后续一周或者两周的时间都会去对自己这段时间研究的知识点总一个总结。
“这个你百度一下就知道了”这是身边同事经常会说一句话。开发初期的时候很多不懂的都是百度,但渐渐发现网上百度的有好多的解决方案是不合理的、很粗糙或者错误的。有的也只是告诉你一个结果,没有说明原因。所以在写技术文章的时候,我给自己定下了一条原则,"Talk is cheap. Show me the code.",有理有据,实事求是。
上面是对我开始写文章的原因以及写文章的态度做了一个说明。下面我来谈谈我的技术进阶之路。主要从两个方面谈谈吧!1.技术深度的挖掘。2.技术的拓宽。1与2是相互结合的,2的目的也是可以用来反哺,在1与2冲突的时候,肯定是给1让路。
技术不要求多,但求精、求深
看到过很多唱衰行情差、工作不好找的论调,我觉得只是互联网的热潮退去了,才知道了谁在裸泳。现在行业对技术的要求越来越高了,大佬们也开始混子不是我兄弟了。之前公司大佬说过一句话“一个牛逼的程序员抵得上10普通个程序员”,虽然这话有点过了,不过也不无道理。所以技术过硬就是你的本钱,对技术的追求要求精、求深,最后触类旁通其他的也会很快上手。
一定要能稳的住,看到人工智能火了就去学一下,区块链火了又去学一下,前端火了又开始蠢蠢欲动。但结果呢?每一门技术都学不深不说,学起来还都非常费劲,最后都是半瓢水。我身边有个同事,来公司之前写过JAVA,也写过iOS,面试的岗位是iOS,一开始过来写SDK,后面又跳去要写APP,接着有段时间缺java的时候又去写java服务器,基本他写过的代码接受人都需要重构,最后被项目组抛弃调去的项目,这种局面很尴尬,按时他也有5年的开发经验了,但现在都是半瓢水。还有你真的觉得自己iOS 的这项技术都掌握了吗?你的基本功过关吗?“好” 的程序员和 “差” 的程序员,一般来讲都可以实现同样的需求。但是,他们写出来的程序在效率、质量、可维护性、可读性、可扩展性等维度可能存非常明显的差别,这种差别很大程度上取决于他们的技术基本功。对iOS开发体系有一个清晰的认识,不仅仅只是会实现功能,底层是如何实现的、如何优化性能、算法、数据结构、设计模式,其实与很多都值得我们好好研究一番,所以技术不要求多,求精、求深,得有一门看家本领。
技术的拓宽
光死守OC也是不行的,面对苹果的亲儿子swift,还有现在大火的flutter,这些移动端的语言你肯定还是得掌握的,还有服务器不香吗?最近我也是在学java,spring全家桶。毕竟精力有限,学习得有先后,对自己有清晰定位,我对自己最近的目标是成为一个优秀的架构师,所以java肯定是得学,iOS本职还是得钻研完善。我的学习优先级目前是移动端大于服务器。工作中遇到的难点为第一优先级,遇到不懂则次之,最后是学习新语言。学习的方法、如何利用资源这个也很重要。个人觉得视频学习是很快的,视频学完之后,一定要练习,多向身边人请教学习。在学习flutter时,我是先看的视频然后直接用现在做的项目重新去实现,千万不要觉得看懂了就行了,要去练习,去做!去做!去做!实践中才能发现里面的奥妙。在java学习的过程中,可以跟着视频写一个demo运行试试。没有项目就跟着练习或者自己写写demo试试。