花了一上午的時(shí)間來(lái)整理以前的博客文章我纪,絕大部分都是關(guān)于Swift的語(yǔ)法知識(shí)麻顶,因?yàn)樽约鹤铋_(kāi)始是用Swift上手入門(mén)的『唤樱現(xiàn)在看起來(lái)這些文章都十分膚淺闲擦。其中部分是官方文檔的翻譯慢味,部分是自己的理解。自己對(duì)知識(shí)總是有很強(qiáng)的敬畏墅冷,完全沒(méi)有臉再貼出那些最開(kāi)始的文章纯路。
但這篇最初擬下的<u>自學(xué)計(jì)劃</u>,還是有必要共享出來(lái)寞忿。
但是在重新貼出來(lái)之前驰唬,想說(shuō)明這是一個(gè)自學(xué)計(jì)劃,如果你想?yún)⒄者@個(gè)計(jì)劃來(lái)學(xué)習(xí)腔彰,建議有一定的英文基礎(chǔ)(當(dāng)然下面列出的資料絕大部分是有中文版本的)叫编、有過(guò)一點(diǎn)編程的知識(shí)(我也僅僅是在大學(xué)學(xué)過(guò)C、C++以及工程專(zhuān)業(yè)相關(guān)的一些有限元算法之類(lèi)的課程)霹抛。當(dāng)然搓逾,更希望你能根據(jù)自己的實(shí)際來(lái)設(shè)計(jì)一個(gè)更加適合自己的學(xué)習(xí)計(jì)劃。
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.
入門(mén)階段(階段一:時(shí)長(zhǎng)30Days)
入門(mén)教材的選擇:
- 一定要極易上手杯拐。也就是說(shuō)自己在編程語(yǔ)言(Swift霞篡、OC)并不熟悉的情況下世蔗,仍然能夠?qū)懗鲆粋€(gè)功能完整的簡(jiǎn)單App。
- 教程應(yīng)該簡(jiǎn)潔地朗兵、清晰地在整個(gè)學(xué)習(xí)的過(guò)程中講解了iOS編程的重要概念污淋、編程語(yǔ)言的語(yǔ)法規(guī)則,能夠讓自己作為初學(xué)者也能夠容易余掖、正確地理解寸爆。
推薦的材料(材料半數(shù)是英文原版,但是也可以搜索到中文翻譯)如下盐欺,材料的學(xué)習(xí)順序也可以作為參考:- The iOS Apprentice - Getting Started
這套教程有4個(gè)App赁豆,每個(gè)App的功能都很全面,完全是fully-functioned的產(chǎn)品找田。所以這套教程的價(jià)值非常好歌憨。但是,我個(gè)人感覺(jué)學(xué)習(xí)曲線比較陡墩衙,每一個(gè)App都有很多內(nèi)容需要去理解:比如,在第一個(gè)小游戲中甲抖,作者就加入了顯示html內(nèi)容漆改,這對(duì)于一個(gè)新手來(lái)說(shuō),可能是比較難理解的(尤其是像我這樣并沒(méi)有什么編程基礎(chǔ)的人)准谚。所以挫剑,我跟完前兩個(gè)App,就換到了Apple自己的入門(mén)教程:Start Developing iOS Apps (Swift)柱衔。之后樊破,再繼續(xù)肯這個(gè)部分的教程。 - Start Developing iOS Apps (Swift)
在完成iOS Apprentice的前兩個(gè)App之后唆铐,我開(kāi)始使用這個(gè)教程哲戚,而這個(gè)教程有很多內(nèi)容復(fù)習(xí)了iOS Apprentice學(xué)到的內(nèi)容。所以艾岂,這個(gè)對(duì)于學(xué)習(xí)來(lái)說(shuō)是非常好的顺少;其次,我在學(xué)習(xí)Apple的這個(gè)入門(mén)教程的時(shí)候王浴,可以利用學(xué)習(xí)到的知識(shí)脆炎,自己去實(shí)踐,而不用完全跟著教程走氓辣。
因此秒裕,將自己對(duì)這三個(gè)教程的學(xué)習(xí)路徑總結(jié)起來(lái),大概是這個(gè)樣子的:- iOS Apprentice - Book One (Getting Started)
- iOS Apprentice - Book Two (To-do List)
- Start Developing iOS Apps (Swift)
- iOS Apprentice - Book Three (Photo Album)
- The iOS Apprentice - Getting Started
本來(lái)打算將iOS Apprentice這四本書(shū)完全看完钞啸。<u>但是有一個(gè)問(wèn)題自己很難解決:自己僅僅是在重復(fù)一個(gè)看書(shū)几蜻、敲代碼的過(guò)程喇潘。但是,對(duì)于為什么要使用這個(gè)UI控件入蛆,這個(gè)UI控件還能夠使用在什么場(chǎng)景之下响蓉,自己就不能很好回答。</u>但是對(duì)于一個(gè)App來(lái)講哨毁,一般來(lái)說(shuō)無(wú)非是40%左右的UI枫甲,加上30%左右的網(wǎng)絡(luò),再加上30%左右的其他扼褪。UI這個(gè)部分自然是十分重要的想幻。
因此,下一個(gè)階段的學(xué)習(xí)計(jì)劃明顯要做調(diào)整话浇。要將整個(gè)UI部分的編程通過(guò)大量的小Demo的編寫(xiě)脏毯,實(shí)現(xiàn)對(duì)絕大部分常用控件的精通。舉個(gè)例子:比如文本框UITextField的使用就有很多注意的地方:
- 外觀上:占位文字placeholder幔崖、attributedPlaceholder食店;
- 密文輸入:secureTextEntry;
- 右邊清除按鈕在何時(shí)顯示赏寇;
- 左邊可以添加一個(gè)視圖吉嫩;
- 如何監(jiān)聽(tīng)該文本框(target action、delegate嗅定、還是notification機(jī)制)自娩;
進(jìn)階階段(階段二:時(shí)長(zhǎng)45-50Days)
階段二這個(gè)部分主要是深入學(xué)習(xí)編程語(yǔ)言和完善自己UI、多線程渠退、網(wǎng)絡(luò)和第三方框架的知識(shí)忙迁。
編程語(yǔ)言
通過(guò)第一階段的學(xué)習(xí),你應(yīng)該對(duì)Swift語(yǔ)言有了一個(gè)基本的理解碎乃,同時(shí)能夠理解面對(duì)對(duì)象的編程姊扔。那么這個(gè)階段你必須掌握另外一門(mén)語(yǔ)言O(shè)bjective-C,盡管現(xiàn)在Apple力推Swift語(yǔ)言(看文章日期)荠锭,但是目前許多的公司的項(xiàng)目應(yīng)該還是OC語(yǔ)言編寫(xiě)和維護(hù)的旱眯。
Apple官方有一門(mén)很權(quán)威的OC語(yǔ)法的書(shū),中文版也有人翻譯出來(lái)了证九。只需要你好好搜索一下就OK删豺。
UI、多線程和網(wǎng)絡(luò)
請(qǐng)購(gòu)買(mǎi)一個(gè)比較新的培訓(xùn)班課程(你可以自行選擇購(gòu)買(mǎi)途徑)愧怜。為甚么自學(xué)還學(xué)要培訓(xùn)班教程呀页?你可能會(huì)問(wèn)。答案很簡(jiǎn)單拥坛,<u>你的時(shí)間很寶貴</u>蓬蝶。一定要記住尘分,編程是一門(mén)嚴(yán)重依賴(lài)經(jīng)驗(yàn)的技術(shù),當(dāng)你能夠從別人那里在短時(shí)間內(nèi)獲取到如果自己?jiǎn)为?dú)摸索需要較長(zhǎng)時(shí)間才能夠獲得的經(jīng)驗(yàn)教訓(xùn)丸氛,這是很值得的事情培愁。
就以剛才UITextField的例子來(lái)說(shuō),你如果是自己摸索缓窜,我相信你一定能搞懂那些基本的東西定续。但是如何將剛才所學(xué)的東西,寫(xiě)一個(gè)成品的拿得出手的(不用炫酷吊炸天)的登陸頁(yè)面Demo出來(lái)禾锤,你可能又得花兩天時(shí)間私股。但是手里面有教程的話。你半天就能寫(xiě)一遍恩掷,剩下的一天半倡鲸,你可以把剛才的代碼再寫(xiě)個(gè)三、四遍黄娘;或者去學(xué)習(xí)文檔中其他沒(méi)有提到的UITextField的屬性和方法峭状;或者繼續(xù)后面的學(xué)習(xí);或者總結(jié)一下前面學(xué)習(xí)的內(nèi)容逼争∧牛看到了吧,優(yōu)勢(shì)就是這么明顯氮凝。
當(dāng)然,你有可能發(fā)現(xiàn)到了后期望忆,你在2倍速度播放的情況下還能很輕松地看出這個(gè)老師內(nèi)容講錯(cuò)了罩阵,那也請(qǐng)你看完。因?yàn)槠羯悖l(shuí)都會(huì)錯(cuò)稿壁;另外,他可能會(huì)講到一些其他的內(nèi)容歉备。
<u>你的時(shí)間很寶貴</u>傅是,所以切記如何快速、全面的掌握知識(shí)是最重要的事情蕾羊。文章開(kāi)頭喧笔,裝逼用英文提到了“integrated learning strategy”這個(gè)東西。實(shí)際上就是一個(gè)學(xué)習(xí)方法的問(wèn)題龟再。你在學(xué)習(xí)的過(guò)程要做到自己不是被動(dòng)接受书闸,而是主動(dòng)獲取,要整合自己所有的感知來(lái)學(xué)習(xí)每天的內(nèi)容利凑。每天睡覺(jué)前浆劲,我都會(huì)快速的復(fù)習(xí)一下今天學(xué)習(xí)的知識(shí)嫌术;有時(shí)候做飯的時(shí)候回將今天學(xué)到的內(nèi)容講述給自己聽(tīng);如果牌借,你有一個(gè)學(xué)習(xí)的伙伴度气,那就更好了(可以把內(nèi)容講給你的伙伴聽(tīng),我做過(guò)大概一年的英語(yǔ)老師膨报,我深知當(dāng)你自己能講清楚的時(shí)候磷籍,你一定是明白的)。
項(xiàng)目實(shí)踐(階段三:時(shí)長(zhǎng)30Days)
過(guò)了這個(gè)階段丙躏,不僅僅是你iOS編程的知識(shí)有了提升择示,應(yīng)該對(duì)于一些常見(jiàn)的設(shè)計(jì)模式也有了理解。更重要的是晒旅,你已經(jīng)完全入門(mén)了栅盲,所以關(guān)于如何學(xué)習(xí)編程你應(yīng)該很清楚了,學(xué)習(xí)的速度和方法都應(yīng)該有很大的提升了废恋。
那還需要做什么谈秫??
還可以繼續(xù)你購(gòu)買(mǎi)的教程鱼鼓,來(lái)模仿一些較完整的項(xiàng)目拟烫;
當(dāng)然,你也可以直接利用你學(xué)到的技術(shù)來(lái)模仿自己喜歡的App迄本;
到了這里硕淑,你就自由了。