从事iOS开发不经意间,已经两年过去了,记得当初看到OC是,我根本就不知道那些个东西是什么?从开始学习开机,到一个个英文开始,为了能找到工作,愣是耐下心去坚持看下去。
现在回想起来,很是庆幸我没有放弃,虽然我不会写文章但是总有那么一点东西,会在不经意的瞬间给人些许的帮助。
第一:基础
一定的编程经验
这里说的编程经验是有编程经验或会一门编程语言,对OOP有一定认识,最好是了解一些设计模式;但是这都不是必须的,因为我是一名体育生,在学校只是学习过flash,第一次用mac的时候都不会开机,Mac的基本操作对我像座山。即使这样我一样走到了现在,所以说刚开始学习一门东西的时候,难不是问题。只要做好了准备,你会成功的。
英语
对于我来说做iOS英语是一大难题,但是通过编程我的英语学得也蛮快的,每天都在学习编程和英语。开始的时候最大的恐惧是开英文的API文档,有些代码我根本就不知道什么意思,注释是英文,文档解答英文,视频还是英文。我绝望过,我也放弃过,但是还是不服让我硬着头皮去看代码-----
接下来我在每天晚上都要总结一下,我学到了什么,哪怕是一个单词,一段代码我都会Push一下自己。接下来我看别人的小demo,找着做,每次看到我也能照着做出功能后,就想着做别的慢慢地,这种恐惧感就会减少很多。这样我就有继续开发的信心了。
书籍
要学习 iOS 开发,有很多人认为一定要读书,但是我却选择的看视频,有人说视频浪费时间看别人代码来的反而快点。是的,但是我认为如果是初学者,在不懂得代码规范,没进入iOS编程门槛的学习者,视频反而更有利于我们的学习。至少我们班简单的知识点汇集成一条溪流,听到声音看到实现这种记忆方式,我感觉要比单纯的看demo好很多,当然正常语速是不行的是我选择的是2倍速看视频,这样比较节省时间。
当基本知识了解以后,看项目是必须的,代码要自己反复的去敲打,去看去了解。同时要去和别人讨论,汲取别人的思想,看看别人怎么学习的。
接着你可以再找一两本书籍,补充一下 OC 的基础知识这里推荐 BNR (Big Nerd Ranch) 的这本 Objective-C Programming The Big Nerd Ranch Guide,讲解地比较细致,能帮助你更好的理解 OC,更重要的是教你遇到问题时,如何去解决问题,以及这个问题对应的一些知识点,如何使用文档等等。
要选择性的去读书:一本好的入门教材很重要,要契合自己当前的水平,且常常会有收获,这种成就感会激励着你继续学下去。
在看书的过程中,往往会有这样的经历:书中提到某个人、观点、知识点、书、文章,然后就顺着它提到的这些东西出去了,可能某个知识点又牵扯到另一些内容,然后就这样越走越远。想起了一个故事——一段经历-----
还有就是如果有可能,最好每天都看点,这其实是很难的,因为总是会有优先级更高的事,或者之前的某些习惯在干扰。一旦断了几天,就不想再拿起来了。
还有,苹果官方的 Start Developing iOS Apps Today 也是很不错的入门材料。
第二:
视频
国内的推荐MJ的视频,当初也是看的这个很多知识点讲得很到位,语速也蛮快的,同时配有Demo,总之听下来会对 iOS 开发有比较全面的了解。
同时推荐一本小册子:objc-zen-book,花不长时间就能看完,里面是一些 Best Practices,对于编写优质代码会很有帮助。
笔记
这是一个持久的过程,任何阶段都适用。以前也没太在意这个,觉得概念性的东西,脑子过一遍,就大概知道了,然后就去啃其他的东西了,现在看来,如果有记笔记的话,会更有助于消化概念、知识点,也可以记录自己的思考过程。
记笔记可以加深对知识点的理解,而成为编程巨星的唯一秘诀就是:对所做的事情理解地越深,就会做得越好。同时如果遵循遗忘曲线去复习的话,效果更佳。对知识点了解地足够透彻后,Debug 时才更有可能知道问题出在哪,解决问题也更容易有思路。
笔记不仅可以记知识点,也可以记录调试过程,比如这篇笔记,有一种调试方法:小黄鸭调试法
许多程序员都有过向别人(甚至可能向完全不会编程的人)提问及解释编程问题,就在解释的过程中击中了问题的解决方案。一边阐述代码的意图一边观察它实际上的意图并做调试,这两者之间的任何不协调会变得很明显,并且更容易发现自己的错误。
生活中我们可能不会真的这么去做,这时抽离出另一个自己,记录下跟ta的对话,也是个发现问题的好方法。
练习
这也是一个持续的过程,知道了些概念或原理后,总是会想着去验证下是不是这样,无论结果是否如自己预期,实践的过程会降低对语言的陌生感,慢慢地培养一种驾驭这门语言的自信,如果出了错,正好可以重新梳理一下。
目标
如果静下心来看完了 BNR 的这本书,以及MJ的开发视频,那么对 OC 应该比较了解了,一些常用的 UIKit 用起来也没什么问题了,比如 UIViewController / UIView / UIScrollView / UIImageView / UITableView。也熟悉一些概念,如 KVO / MVC / Delegate / DataSource。
接下来就进入了,编程的折腾界面了