iOS学习计划


花了一上午的时间来整理以前的博客文章,绝大部分都是关于Swift的语法知识,因为自己最开始是用Swift上手入门的。现在看起来这些文章都十分肤浅。其中部分是官方文档的翻译,部分是自己的理解。自己对知识总是有很强的敬畏,完全没有脸再贴出那些最开始的文章。

但这篇最初拟下的<u>自学计划</u>,还是有必要共享出来。

但是在重新贴出来之前,想说明这是一个自学计划,如果你想参照这个计划来学习,建议有一定的英文基础(当然下面列出的资料绝大部分是有中文版本的)、有过一点编程的知识(我也仅仅是在大学学过C、C++以及工程专业相关的一些有限元算法之类的课程)。当然,更希望你能根据自己的实际来设计一个更加适合自己的学习计划。


Really, anyone can code. It's not that hard at all.

But, before you passionately embark on this journey. You gotta have a plan - no need to be detailed. But, by just showing you some basic steps and their corresponding due dates, you can largely assure yourself this will work. So, psychologically speaking, you set out to be a winner in the very beginning.

The next thing which is worthy of doing is to take a so-called "integrated learning" strategy. Let me elaborate on this a little bit. An integrated learning strategy is something I would also call a miscellaneous learning strategy. Well, the name tells it all - while you are learning, you have to make use of all the senses or mental capabilities that you have. See, while I was following one of the tutorials below to design apps, I don't just read those tutorials through and follow them exactly step by step. Sometimes, I read out loud sentence by sentence and mess with the code. Sometimes, I try to explain to me what those programming terminologies mean, however shallow my understanding is. Other times, I do nothing but sit there reconstructing the code in my mind. Before bedtime, I usually would try to recall how much I have learned today.

As you might have realized this method is very efficient and can be used to learn things other than programming. If you want to streamline this strategy a bit and make it simple. The self-explaining process is something that should never be left out - when you can make others understand something, then that "somethingF" has definitely been truly conquered by you.

So, I mentioned I bought this Mac on February 27th. I spent half a day to download necessary apps and familiarize myself with this machine. And, then I began scavenging through the Internet on how to start iOS programming. I found two beautifully written articles, which inspired me. They are also easy-to-follow step-by-step tutorials. So, I paste the links here just to show my respect.

第一篇文章
第二篇文章

Based on these two tutorials. I designed my own plan, which is originally written in Chinese. And I don't have any intention to rewrite this. So, I will just leave it be this way. This plan is not finalized yet and will constantly be adjusted and revised - simply because I haven't been through all the stages myself.

入门阶段(阶段一:时长30Days)

入门教材的选择:

  • 一定要极易上手。也就是说自己在编程语言(Swift、OC)并不熟悉的情况下,仍然能够写出一个功能完整的简单App。
  • 教程应该简洁地、清晰地在整个学习的过程中讲解了iOS编程的重要概念、编程语言的语法规则,能够让自己作为初学者也能够容易、正确地理解。
    推荐的材料(材料半数是英文原版,但是也可以搜索到中文翻译)如下,材料的学习顺序也可以作为参考:
    • The iOS Apprentice - Getting Started
      这套教程有4个App,每个App的功能都很全面,完全是fully-functioned的产品。所以这套教程的价值非常好。但是,我个人感觉学习曲线比较陡,每一个App都有很多内容需要去理解:比如,在第一个小游戏中,作者就加入了显示html内容,这对于一个新手来说,可能是比较难理解的(尤其是像我这样并没有什么编程基础的人)。所以,我跟完前两个App,就换到了Apple自己的入门教程:Start Developing iOS Apps (Swift)。之后,再继续肯这个部分的教程。
    • Start Developing iOS Apps (Swift)
      在完成iOS Apprentice的前两个App之后,我开始使用这个教程,而这个教程有很多内容复习了iOS Apprentice学到的内容。所以,这个对于学习来说是非常好的;其次,我在学习Apple的这个入门教程的时候,可以利用学习到的知识,自己去实践,而不用完全跟着教程走。
      因此,将自己对这三个教程的学习路径总结起来,大概是这个样子的:
      • iOS Apprentice - Book One (Getting Started)
      • iOS Apprentice - Book Two (To-do List)
      • Start Developing iOS Apps (Swift)
      • iOS Apprentice - Book Three (Photo Album)

本来打算将iOS Apprentice这四本书完全看完。<u>但是有一个问题自己很难解决:自己仅仅是在重复一个看书、敲代码的过程。但是,对于为什么要使用这个UI控件,这个UI控件还能够使用在什么场景之下,自己就不能很好回答。</u>但是对于一个App来讲,一般来说无非是40%左右的UI,加上30%左右的网络,再加上30%左右的其他。UI这个部分自然是十分重要的。

因此,下一个阶段的学习计划明显要做调整。要将整个UI部分的编程通过大量的小Demo的编写,实现对绝大部分常用控件的精通。举个例子:比如文本框UITextField的使用就有很多注意的地方:
- 外观上:占位文字placeholder、attributedPlaceholder;
- 密文输入:secureTextEntry;
- 右边清除按钮在何时显示;
- 左边可以添加一个视图;
- 如何监听该文本框(target action、delegate、还是notification机制);

进阶阶段(阶段二:时长45-50Days)

阶段二这个部分主要是深入学习编程语言和完善自己UI、多线程、网络和第三方框架的知识。

编程语言

通过第一阶段的学习,你应该对Swift语言有了一个基本的理解,同时能够理解面对对象的编程。那么这个阶段你必须掌握另外一门语言Objective-C,尽管现在Apple力推Swift语言(看文章日期),但是目前许多的公司的项目应该还是OC语言编写和维护的。

Apple官方有一门很权威的OC语法的书,中文版也有人翻译出来了。只需要你好好搜索一下就OK。

UI、多线程和网络

请购买一个比较新的培训班课程(你可以自行选择购买途径)。为甚么自学还学要培训班教程?你可能会问。答案很简单,<u>你的时间很宝贵</u>。一定要记住,编程是一门严重依赖经验的技术,当你能够从别人那里在短时间内获取到如果自己单独摸索需要较长时间才能够获得的经验教训,这是很值得的事情。

就以刚才UITextField的例子来说,你如果是自己摸索,我相信你一定能搞懂那些基本的东西。但是如何将刚才所学的东西,写一个成品的拿得出手的(不用炫酷吊炸天)的登陆页面Demo出来,你可能又得花两天时间。但是手里面有教程的话。你半天就能写一遍,剩下的一天半,你可以把刚才的代码再写个三、四遍;或者去学习文档中其他没有提到的UITextField的属性和方法;或者继续后面的学习;或者总结一下前面学习的内容。看到了吧,优势就是这么明显。

当然,你有可能发现到了后期,你在2倍速度播放的情况下还能很轻松地看出这个老师内容讲错了,那也请你看完。因为,谁都会错;另外,他可能会讲到一些其他的内容。

<u>你的时间很宝贵</u>,所以切记如何快速、全面的掌握知识是最重要的事情。文章开头,装逼用英文提到了“integrated learning strategy”这个东西。实际上就是一个学习方法的问题。你在学习的过程要做到自己不是被动接受,而是主动获取,要整合自己所有的感知来学习每天的内容。每天睡觉前,我都会快速的复习一下今天学习的知识;有时候做饭的时候回将今天学到的内容讲述给自己听;如果,你有一个学习的伙伴,那就更好了(可以把内容讲给你的伙伴听,我做过大概一年的英语老师,我深知当你自己能讲清楚的时候,你一定是明白的)。

项目实践(阶段三:时长30Days)

过了这个阶段,不仅仅是你iOS编程的知识有了提升,应该对于一些常见的设计模式也有了理解。更重要的是,你已经完全入门了,所以关于如何学习编程你应该很清楚了,学习的速度和方法都应该有很大的提升了。

那还需要做什么??

  • 还可以继续你购买的教程,来模仿一些较完整的项目;

  • 当然,你也可以直接利用你学到的技术来模仿自己喜欢的App;

到了这里,你就自由了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 倾听和允许孩子哭泣或是发脾气,远比要求孩子不要哭,转移注意力、甚至恐吓等方式更加具有长期效果,也许你恐吓孩子...
    婧涵亲子讲师阅读 216评论 0 0
  • The n-queens puzzle is the problem of placing n queens on...
    Jeanz阅读 289评论 0 0
  • 上学时候,喜欢去书店,尤其是初中一二年级;男男女女,三人一组,五人成群。有的喜欢散文,我那时是不大喜欢的,单调乏味...
    老王的烂摊子阅读 764评论 15 9
  • 1写出三个群里姐妹和你有的共同特点,(具体要写是哪几位姐妹有的特点),这些特点给你带来怎么样的正面影响。 第一,比...
    莹来道阅读 305评论 0 5