翻看自己以前的書簽阀参,真?亂!平時(shí)基本都是不停的加?xùn)|西瞻坝,基本很少去整理≈肟牵現(xiàn)在項(xiàng)目沒有那么忙了,抽點(diǎn)時(shí)間好好搞搞所刀⊙眉觯看到一篇非常好的文章,順便就去作者的博客看了看浮创。真的非常非常好忧吟,轉(zhuǎn)發(fā)一下。希望自己能靜下心??斩披。這個(gè)社會(huì)是太浮躁了溜族,自己更是比社會(huì)還浮躁。垦沉。煌抒。。厕倍。
文章是轉(zhuǎn)載:自學(xué) iOS 開發(fā)的一些經(jīng)驗(yàn) http://limboy.me/tech/2014/12/31/learning-ios.html
建議還是去看原貼
自學(xué) iOS 開發(fā)的一些經(jīng)驗(yàn)
不知不覺作為 iOS 開發(fā)也有兩年多的時(shí)間了寡壮,記得當(dāng)初看到 OC 的語法時(shí),愣是被嚇了回去绑青,隔了好久才重新耐下心去啃一啃诬像。啃了一陣闸婴,覺得大概有了點(diǎn)概念,看到 Cocoa 那么多的 Class芍躏,又懵了邪乍,怎么才能調(diào)用系統(tǒng)的相機(jī)?怎么保存信息?怎么做一個(gè)像 Twitter 個(gè)人頁那樣的頁面庇楞?總之就是不知道該從哪切入榜配。
現(xiàn)在回想起來,其實(shí)路一直都在吕晌,而且有很多條蛋褥,當(dāng)初如果有人能夠指出一條還不錯(cuò)的道,或許就能走得不那么艱難睛驳。于是就有了這篇文章烙心,希望對后人能有所幫助吧。
基礎(chǔ)
一定的編程經(jīng)驗(yàn)
這里說的編程經(jīng)驗(yàn)是至少熟練一門編程語言乏沸,對 OOP 有一定的了解淫茵,最好熟悉一些基本的設(shè)計(jì)模式。遇到過的好多 iOS 開發(fā)蹬跃,大多是從別的語言轉(zhuǎn)過來的匙瘪,所以有一定的編程基礎(chǔ),學(xué)起來會(huì)更容易 get the point.
如果是第一次接觸編程蝶缀,當(dāng)然也是沒問題的丹喻,只是要做好心理準(zhǔn)備,可能會(huì)比想象的難翁都。
英語
發(fā)現(xiàn)不少開發(fā)對于英語似乎有點(diǎn)接受不能驻啤,通常都是中文優(yōu)先,除非迫不得已荐吵,才硬著頭皮看看 StackOverflow骑冗,英文文章,文檔等先煎。忘了是誰說過「難走的路越走越好走」贼涩,通常如此。其實(shí)只要稍微 push 一下自己薯蝎,那些技術(shù)文章啃下來應(yīng)該不會(huì)有太大的問題遥倦,有過幾次成功的體驗(yàn)后,這種恐懼感就會(huì)減少很多占锯。優(yōu)質(zhì)的文章袒哥、視頻、書籍消略,多是英文的堡称,不邁過這個(gè)坎,將來要么成為瓶頸艺演,要么花更大的成本去填補(bǔ)却紧。
入門
書籍
要學(xué)習(xí) iOS 開發(fā)桐臊,自然要先學(xué) Objective-C (當(dāng)然現(xiàn)在也可以直接上 Swift,不過如果多人協(xié)作的話晓殊,OC目前還是主流)断凶,因?yàn)?OC 是 C 語言的超集,所以了解 C 語言對于學(xué)習(xí) OC 肯定會(huì)有幫助巫俺,不過就算不了解认烁,直接學(xué) OC 也沒太大問題。
這里推薦 BNR (Big Nerd Ranch) 的這本 Objective-C Programming The Big Nerd Ranch Guide介汹,講解地比較細(xì)致却嗡,能幫助你更好的理解 OC,更重要的是教你遇到問題時(shí)痴昧,如何去解決問題稽穆,以及這個(gè)問題對應(yīng)的一些知識點(diǎn),如何使用文檔等等赶撰。
來到一個(gè)新的世界舌镶,肯定會(huì)對這個(gè)世界充滿好奇,想訂閱一大堆博客豪娜,買一堆書餐胀,看各種教程和視頻,然后就變得浮躁瘤载,不知該從哪下手否灾,這會(huì)導(dǎo)致拖延癥。我渴了鸣奔,給我倒一杯水墨技,這個(gè)很直接,馬上就可以做挎狸,但如果是給我買一瓶飲料扣汪,而自己對那些飲料又不怎么熟悉時(shí),就糾結(jié)了锨匆,不如刷會(huì)微博崭别,看看朋友圈,玩?zhèn)€小游戲先恐锣。
所以一本好的入門教材很重要茅主,要契合自己當(dāng)前的水平,且常常會(huì)有收獲土榴,這種成就感會(huì)激勵(lì)著你繼續(xù)學(xué)下去诀姚。
在看書的過程中,往往會(huì)有這樣的經(jīng)歷:書中提到某個(gè)人鞭衩、觀點(diǎn)学搜、知識點(diǎn)娃善、書论衍、文章瑞佩,然后就順著它提到的這些東西出去了,可能某個(gè)知識點(diǎn)又牽扯到另一些內(nèi)容坯台,然后就這樣越走越遠(yuǎn)炬丸。想起了一個(gè)故事
三只獵狗追一只土拔鼠,土拔鼠逃跑時(shí)鉆進(jìn)了一個(gè)樹洞。這個(gè)樹洞只有一個(gè)出口,不一會(huì)兒,忽然從樹洞里跑出一只兔子蜒蕾。兔子飛快地向前跑,并爬上另一棵大樹稠炬。兔子因?yàn)榛艁y在樹上沒站穩(wěn),掉了下來,砸暈了正仰頭看的三只獵狗,最后,兔子終于逃脫。
對于這個(gè)故事可以從不同的角度去解讀咪啡,我更愿意以初心去解讀首启。兔子為什么會(huì)爬樹?為什么能砸暈三只獵狗撤摸?這不是重點(diǎn)毅桃,重點(diǎn)是,之前追趕的土撥鼠哪去了准夷?看書時(shí)難免會(huì)有延伸閱讀钥飞,這個(gè)深度我覺得不宜超過 2 層,不然很容易就回不來了衫嵌。
還有就是如果有可能读宙,最好每天都看點(diǎn),這其實(shí)是很難的楔绞,因?yàn)榭偸菚?huì)有優(yōu)先級更高的事结闸,或者之前的某些習(xí)慣在干擾。一旦斷了幾天酒朵,就不想再拿起來了桦锄。
還有,蘋果官方的 Start Developing iOS Apps Today 也是很不錯(cuò)的入門材料耻讽。
視頻
推薦斯坦福老頭子(Paul Hegarty)的 Developing iOS 7 Apps for iPhone and iPad 察纯,當(dāng)初也是看的這個(gè)(那時(shí)還是更老的版本),Paul 是資深的 Mac/iOS 開發(fā)(前蘋果員工针肥?)饼记,很多知識點(diǎn)講得很到位,學(xué)生們的提問也大都在點(diǎn)上慰枕,同時(shí)配有Demo具则,總之聽下來會(huì)對 iOS 開發(fā)有比較全面的了解。
同時(shí)推薦一本小冊子:objc-zen-book具帮,花不長時(shí)間就能看完博肋,里面是一些 Best Practices低斋,對于編寫優(yōu)質(zhì)代碼會(huì)很有幫助。
筆記
這是一個(gè)持久的過程匪凡,任何階段都適用膊畴。以前也沒太在意這個(gè),覺得概念性的東西病游,腦子過一遍唇跨,就大概知道了,然后就去啃其他的東西了衬衬,現(xiàn)在看來买猖,如果有記筆記的話,會(huì)更有助于消化概念滋尉、知識點(diǎn)玉控,也可以記錄自己的思考過程。達(dá)芬奇就記錄了10000多頁的筆記狮惜。
記筆記可以加深對知識點(diǎn)的理解高诺,而成為編程巨星的唯一秘訣就是:對所做的事情理解地越深,就會(huì)做得越好讽挟。同時(shí)如果遵循遺忘曲線去復(fù)習(xí)的話懒叛,效果更佳。對知識點(diǎn)了解地足夠透徹后耽梅,Debug 時(shí)才更有可能知道問題出在哪薛窥,解決問題也更容易有思路。
筆記不僅可以記知識點(diǎn)眼姐,也可以記錄調(diào)試過程诅迷,比如這篇筆記,有一種調(diào)試方法:小黃鴨調(diào)試法
許多程序員都有過向別人(甚至可能向完全不會(huì)編程的人)提問及解釋編程問題众旗,就在解釋的過程中擊中了問題的解決方案罢杉。一邊闡述代碼的意圖一邊觀察它實(shí)際上的意圖并做調(diào)試,這兩者之間的任何不協(xié)調(diào)會(huì)變得很明顯贡歧,并且更容易發(fā)現(xiàn)自己的錯(cuò)誤滩租。
生活中我們可能不會(huì)真的這么去做,這時(shí)抽離出另一個(gè)自己利朵,記錄下跟ta的對話律想,也是個(gè)發(fā)現(xiàn)問題的好方法。
練習(xí)
這也是一個(gè)持續(xù)的過程绍弟,知道了些概念或原理后技即,總是會(huì)想著去驗(yàn)證下是不是這樣,無論結(jié)果是否如自己預(yù)期樟遣,實(shí)踐的過程會(huì)降低對語言的陌生感而叼,慢慢地培養(yǎng)一種駕馭這門語言的自信身笤,如果出了錯(cuò),正好可以重新梳理一下葵陵。
目標(biāo)
如果靜下心來看完了 BNR 的這本書液荸,以及斯坦福的 iOS 開發(fā)視頻,那么對 OC 應(yīng)該比較了解了埃难,一些常用的 UIKit 用起來也沒什么問題了莹弊,比如 UIViewController / UIView / UIScrollView / UIImageView / UITableView涤久。也熟悉一些概念涡尘,如 KVO / MVC / Delegate / DataSource。
這個(gè)階段下來响迂,應(yīng)該會(huì)有:哦考抄,iOS 開發(fā)也就這樣嘛,多翻翻文檔蔗彤,熟悉 Cocoa Touch 的一些 Class川梅,差不多也能做出一個(gè)簡單的 App 了。
進(jìn)階
然遏。贫途。。待侵。丢早。
高級
。秧倾。怨酝。。那先。
其他
我覺得無論學(xué)習(xí)什么农猬,「速成」的心態(tài)是最要不得的,這只會(huì)讓自己變得浮躁售淡,一知半解斤葱,整個(gè)過程也很難讓自己的元學(xué)習(xí)能力得到提升。慢慢來揖闸,攻占一個(gè)城后揍堕,再去打下一個(gè),這時(shí)心態(tài)也會(huì)平和許多楔壤。
自己自己
幾百斤的人了鹤啡,很多道理都是知道的。但是知道真的有用嗎蹲嚣?人要能夠'思考'递瑰,感覺自己就是一個(gè)沒開竅的傻瓜祟牲。才剛剛有點(diǎn)腦子思考
每天糾結(jié)的時(shí)間比干活的時(shí)間還要多,到處找各種提高效率的軟件抖部。說道找軟件说贝,自己真的有點(diǎn)病。什么軟件都要搞一下慎颗,一個(gè)筆記軟件乡恕,先是OneNote,后來是為知筆記俯萎,在后來用MarkDown傲宜,macDown-gitbook-mweb-備忘錄-dayone-簡書 記個(gè)筆記?到處都是,到現(xiàn)在還沒有固定的套路夫啊。一開始就是想找個(gè)最好的軟件來用函卒,結(jié)果時(shí)間都花在找軟件上了。撇眯。报嵌。。熊榛。