iOS开发:重新手到专家的一些建议

请输入图片描述
虽然你有可能在一周内学习到iOS开发的本质,但想要精通iOS开发需则要花费更长的时间。问题是你如何重新手变成专家?在这篇文章中,咱们主要就这个主题给出一些建议(若是你有好的建议和相关文章欢迎分享给更多开发者):html

1. 练习,练习仍是练习

iOS开发没有捷径可走。这是我在继续这个话题以前须要强调的东西,由于摆脱任何经常浮现于你脑海的幻想很重要。若是你仅仅在星期天的4PM和5PM之间学习/练习编程,那么你不会成为一个熟练的iOS开发者。不要误会个人意思,这么作可能会颇有趣,可是它很难让你成为一个老练的专业的iOS开发者。除了极少数的人,大部分人都须要不断的练习和实践。若是你尚未准备好投入大量时间,这时候最好从新审视你的目标和理想。ios

2. 向其余人学习

提高开发技能和采用最佳实践的最好策略之一是学习别人的代码。这不只仅意味着浏览Stack Overflow或者SegmentFalt(专业的中文编程问答社区),但更重要的是其余开发者的各类开源类库和代码片断。git

无论什么时候你一头扎进各类类库的学习,好比AFNetworking或者Magical Record,很关键的一点是不要被各类代码淹没。有可能你不理解各类库中的代码,但这不是真正的关键,重点是从一个更高的层次来看源码和尽量多地学习,好比命名规范、最佳实践以及设计模式等。程序员

除了学习别人的代码外,建立你本身的类库是一个最好的学习方法。不久前,我用Core Data做为数据层开发了一款app,我没有使用Magical Record,我决定经过学习Magical Record建立本身的库,并从新建立了我须要的功能。这种方法不只帮我建立了一个更加灵活的库,也让我学习到不少Magical Record内部的工做原理。github

3. 不要仅仅复制和粘贴

这一点让我看到了正确学习方式的另外一个关键面:不要不动脑子简单地复制和粘贴。咱们经常会使用咱们在Stack Overflow或者苹果开发者论坛找到的各类代码片断,可是不要为了偷懒简单地复制粘贴你从网络上找到的代码,这样你很难完全理解它。最大的危险在于这可能会致使意外的行为,以至于你的代码之后都很难调试和修复。编程

有时候,复制别人的代码片断看着可能已经解决了你遇到的问题,可是我强烈建议不要这么作。阅读代码,理解你往代码库添加的东西,可能的话定制你须要的解决方案。不用说,这并不适用于开发者积极维护的库或框架。在项目中使用Magical Record前,若是你须要仔细检查它,那么我确信你已经理解了不一样之处。使用你本身的常识。segmentfault

4. 模式

Cocoa和Objective-C在不少方面都不一样于其余编程语言和环境。这意味着他们有本身独特的模式和最佳实践。我确信你已经熟悉了一些常见的模式,好比委托和通知。但还有不少模式能够开发过程当中帮助你,好比单例模式、观察者模式以及通用模式等。Cocoa Fundamentals Guide 很好地概述了Cocoa中大部分经常使用模式。设计模式

5. 了解你的工具

做为一个开发者并不只仅是理解语言和框架,理解你天天使用的工具一样重要。对于iOS开发来讲,这意味着你须要很好地理解Xcode和其余可能用到的工具,好比PonyDebuggerCharles。若是你想学习一些额外的技巧,你可能会对我此前的一篇文章(iOS Quick Tip: 7 Tips to Speed Up Your Development)感兴趣。网络

6. 与时俱进

即便你不能参加苹果一年一度的开发者大会--WWDC,但浏览大量的会议视频是个很好的学习方法,你能够观看你感兴趣的专题视频,它们都是由在某方面擅长的工程师演讲,他们能够告诉你一些细节信息以及相关使用说明。另外,你还能够多关注优秀的开发者,他们会按期写一些技术文章,好比好比Matt GemmellAaron Hillegass以及Mike Ash,你能够在我为Mobiletuts+写的这篇“Where To Go Next”文章中找到更多学习资源。mvc

7. 学习其余语言

我已经注意到学习新语言或者使用新框架让我对软件开发的总体理解有了明显提升。这种方法的优势在于不会限制你对最熟悉语言的认知和它潜在可能性的理解。我最近在研究Ember.js,并了解到它的建立者 Yehuda KatzTom Dale是从Cocoa得到的灵感。Ember.js对mvc的实现并无遵循JavaScript framework,不过若是你熟悉cocoa的话,就不会感受到奇怪了。

对于软件开发来讲,没有最好的语言,每种语言都有本身的优点和劣势。可是好的一面在于或多或少他们都有所不一样,这使得学习新语言变得更加有趣和更有启发性。好比对我来讲,Ruby在写DRY (Don’t Repeat Yourself)、易读的、干净的代码方面让我大开眼界。

总结

若是你不想花费时间成为一个更好的程序员,那么你可能要从新考虑下为何你把成为一个程序员摆在首位。但若是你会由于一个能够帮你的新类库或者开发工具而兴奋,那么随着时间的流逝,你在提升自身技能方面可能不会有什么问题。你真的必须热爱你所作的事情,并在这面擅长,这一点尤为适用于编程。无论什么人告诉你,你不会在一晚上之间成为一个老练的开发者,但若是你保持不间断的学习,并细心打磨本身的“手艺”,我想你的技术会有很好的提升。



转摘自:Cocochina
原文在:Tutsplus
整理:SegmentFault

相关文章
相关标签/搜索