从最开始拿到iOS的学习资料开始,也有一年多的时间。之前因为没有开发机器,每次看到《Objective-C 2.0 程序设计》,都是翻倒10来页就为止。后来拿到了MacBook,心血来潮,也没有去看OjbecitveC,直接按照网上的iPhone的HelloWorld的教程去依葫芦画瓢,很快就大功告成。但是没有ObjectiveC基础,也就到此为止,一直在没有往前再迈一步。
春节长假,自己也有了最惬意的时光--坐在太阳低下,安安静静地看书,听音乐。于是也重新拾掇起来Objective-C。开始确实有点云里雾里,但是一旦把基本语法和OOP的实现方式了解后,后面就是一马平川啦。一个下午的是时间,大半本书就啃完了。今天,把Cocoa touch和XCode的基本章节也学习,实机跑过了,虽然书本上的技术相对最新的XCode版本,已经显得陈旧,但是稍微动动脑筋,也是很容易解决的。最后在这本书的带领下,做了一个完整的分数计算器,而且按照课后习题,做了自己的扩展部分。
感觉,从这次突击学习之后,iOS算是真正入门了。ObjectiveC的语法,iOS工程的文件结构,XCode开发工具的基本操作,iPhone界面的基本控件的使用等等,都算是了解了些皮毛。在这个基础上,接下来,我想就该读一下兄弟们做过的项目,如果可以的化,甚至想亲身参与一下一些开发工作。
其实,学习iOS和RoR,是出于完全两个目的。iOS是为了了解技术本身,让自己在工作中,在细节上,提出一些具体的建议。比如Cocoa Touch的MVC改善等。而RoR,则是为了学习敏捷开发的思想和实践,而Ruby,Rails技术是其次。所以,两个学习方式也不同,iOS的实例,即使不理解Source的框架意义,也要亲手一个字一个字的敲入,而最后的动手扩展也是完全由自己思考做成。而RoR则是,能有现成的就Copy过来,但是尽量去理解框架的意义和迭代的过程。
我想这两种学习方式,对这两个场合是适合的。当然,事实上也是,所有的开发技术经过这么多年的互相吸取,逐步进化。几乎都把当今优秀的设计理念融入到语言本身,所以即使在语法上有很大的不同,也很容易触类旁通。这在现实中也得到印证,技术达人,也许只学过寥寥几个语言,但是因为这几个语言足够深入,在遇到新的技术语言的时候,掌握也是非常神速的。
不过,自己在现实中也发现另外一点,就是语言学会了,不去使用很容易会忘,而经过一段时间的接触又会回到原来水准。这对于那种加入一个项目,有几个月开发周期的开发者来说,几天的适应期并不算什么。但是对于我来说,则是非常痛苦。Android,自己也算是一个有所研究的人,甚至给其他人做培训。可是,长时间不用,突然说要去评审其他人的程序。看到程序的那一刹那,就像在读天书,而我只有十几分钟的适应期而已。如何,让自己学到的东西,能保持一个熟悉度,一旦开始忘却,立马做些练习去巩固。对于我的学习来说,确实是一个不小的课题。
学习快乐,胜过工作快乐。开发快乐,胜过管理快乐。程序的快乐,胜过报告书的快乐。有时候,真的想自己是不是选错了行,大学教师是不是更加适合我。