ios开发可以说已成为一种潮流,想成为一名成功的ios开发工程师,必须要经历三个不同阶段初级—中级—高级,只有踏实走好每一步,才会真正修炼成为一名ios高级工程师,但这一蜕变过程需要掌握哪些?简单的会搭建view,使用第三发库,万事大吉?说实话,还真是不够,接下来我们就来看看,一名优秀的ios高级工程师需要掌握哪些?
1.OC部分
你对Objective-C有多了解?OC是如何基于C来进行的封装?解释一下下面两行代码啥意思?
typedef __attribute__((NSObject)) CGGradientRef GradientObject;@property (nonatomic, strong) GradientObject storedGradient;
protocol、category这样的东西能否手到擒来?多线程部分的知识点掌握是否扎实?runtime这种黑魔法研究过没?代码足够优雅、后续维护容易吗?各种设计模式也得会吧?
2.UI部分
能快速仿造市面上这些主流App的UI吗?使用Reveal分析过微信、豆瓣、网易新闻、知乎、QQ、苏宁、淘宝、支付宝的UI吗?使用Charles去抓过他们的接口吗?
UI研究稍微深一点,比如侧滑菜单这种要怎么实现?如果你要做实现应该要了解UIView和 UIViewController,UIViewController和UINavigationController的关系了吧?我嘞个草,UIView一堆方法,UIViewController一堆方法,到底都是干嘛的啊?你难道不好奇?这块知识点一直是你的盲区,你能忍?我忍不了!
3.其他大功能点
你用过第三方类库,那么比如图片缓存这类,看过源码实现没?如果自己来实现的话,有哪些Caching Algorithms?该怎么取舍?各种常用的第三方类库你研究过原理没?
你的App在和服务器交流数据的过程中安全性怎么样?你是不是要研究一下加解密?HTTP理解的够清楚吗?想没想过自己来写接口?或者更甚至一些自己来写个简易的HTTP服务器?接口部分甚至用CGI来实现也可以啊!
·要写服务器,那应该要了解一下网络部分吧?TCP/IP 协议得熟悉吧?然后Wireshark各种抓包得会吧?
4.其它专业化的方向
视音频处理做过吗?此类诸如豆瓣FM、虾米音乐、喜马拉雅、QPlayer这类的App你去研究过他们吗?
游戏开发方向有没有兴趣?自己有没有去研究过呢?
5.项目安全优化等
项目中写单元测试吗?UI Automation 自动化测试做的怎么样?持续集成平台诸如Jenkins等会用吗?
App的各种性能优化、Crash的统计分析等等你做了没?
App本地数据储存够安全吗?你对逆向了解多少?敏感部分是否做了代码混淆?
6.知识体系要持续更新
官方的文档、国外的相关书籍采用的语言都是Swift,难道你不准备学学?除了native的,现在的HTML5也很火啊,难道不准备学?
英文练习的怎么样了?官方所有的开发者文档以及历年的WWDC视频看完了?这么多书,这么多大牛的博客,你难道从中一无所获?
以上是技术方面,你还需要时间学习研究,积累经验的。下面我们聊一下,一名优秀的工程师,在心态和思维上,会怎么做呢?
重复而低效的工作留给工具做
将重复而低效的任务,让工具做,将重复任务自动化,能够极大地提高效率,节约时间,比如,使用CocoaPods。
7.搜索,思考,阅读,动手尝试,改进优化,总结知识
一些优秀的 iOS 工程师并没有比你我聪明,跟我们一样只是普通人,但他们在上面这些事情上不懒惰,积极思考、尝试、总结,在同样的条件下收获多一点点,日积月累,于是他们变得优秀。而且这种积累所达到的层次,很难被人短时间追赶上,是非常具有竞争力的。
以上介绍的七点内容,小编主要是根据华清远见教育科技集团老师及优秀学员总结的学习路线来分享的,但无论有什么样的方法作为指导,都离不开自己,毕竟学习与成长没有捷径可走……
热点新闻