1. 会熟练使用Profiler来调试应用性能。比如其中有一个很好的模板叫Time Profiler,会告诉你应用当中哪行代码花了最长时间,当你界面卡顿的时候,用这个可以很快找到优化点。
2. 写测试,写测试不仅仅可以帮助你找BUG,更重要的时会让你去思考如何更好地架构你的应用,其实很多好的工程师,代码架构能力都是很不错的。同时也会用OS X Server和XCode配置 Continuous Integration。
3. 可以轻松编写多线程代码,熟悉NSOperation,GCD等
4. 熟知一些常用的系统类库的原理和Best Practics,比如Core Data,这个玩意儿要玩得好,也是很花时间的。
5. iOS应用,UI占很重要的一部分,可能大部分时候你只需要使用默认的UI组件就行,但是有些时候,你必须要自己去实现一些UI组件和动画,这个时候Core Animation啊,UIDynamics啊都是很值得去学习的点。
我一般的路径是,当要解决一个问题或实现一个功能的时候,我尽量自己去实现,但当自己写的东西无法达到预期的时候(性能太差,实现不了或代码逻辑过于复杂)我才会去找第三方库。
还有就是,如果你做了两年都觉得自己没啥大进步的话,那问题可能是你手头的项目并没有什么高的要求,没有性能问题要你解决,公司也对很多细节问题无所谓,那作为有要求的工程师,你要么自己有项目可以帮助自己提高(比如我总是会自己写应用来学习一些新API和技术);要么就换家公司吧。