如何系統(tǒng)有效的學(xué)習(xí)ios編程
如何系統(tǒng)有效的學(xué)習(xí)ios編程
由于iphone手機(jī)帶來(lái)的手機(jī)應(yīng)用狂潮,現(xiàn)在很多人都希望從事這塊的開(kāi)發(fā)。很多初學(xué)者可能會(huì)問(wèn),怎么樣才能學(xué)好iOS開(kāi)發(fā)?為此,以下是學(xué)習(xí)啦小編分享給大家的有效的學(xué)習(xí)ios編程的方法,希望可以幫到你!
有效的學(xué)習(xí)ios編程的方法
1、蘋(píng)果的 Programming Guide 很有用
蘋(píng)果的programming guide 寫(xiě)得很好很詳細(xì),不過(guò)個(gè)人覺(jué)得不太適合入門(mén),如果基礎(chǔ)比較扎實(shí)又想提高一下必須看看 Concurrency, Block, Core Data (尤其是core data 在多線(xiàn)程中的實(shí)現(xiàn)),Core Animation (想要做出好看的app, 一定要有炫酷的動(dòng)畫(huà)效果,小牛哥的一個(gè)開(kāi)源app里面也有很多 2D/3D動(dòng)畫(huà)實(shí)例:programming guide, Google 一下就可以找到,都是免費(fèi)下載的。
2、有空一定要看看喬布斯的傳記。
作為 iOS 開(kāi)發(fā)員,一定要讀懂理解蘋(píng)果的產(chǎn)品,為什么蘋(píng)果的產(chǎn)品這么簡(jiǎn)單易用功能又強(qiáng)大?為什么一個(gè)快要破產(chǎn)的公司后來(lái)可以?huà)侂x微軟谷歌幾條街? iPod,iPhone,iPad 這些跨時(shí)代的產(chǎn)品是怎樣研發(fā)出來(lái)的? 小牛哥當(dāng)時(shí)買(mǎi)的是有聲讀物 , 每天擠地鐵時(shí)聽(tīng)聽(tīng),兩個(gè)多星期才聽(tīng)完第一遍,每次聽(tīng)都收獲匪淺。在面試的時(shí)候顯擺一下里面有意思的故事,面試官馬上對(duì)你刮目相看。
更重要的是要把里面關(guān)于UX (用戶(hù)體驗(yàn)) 設(shè)計(jì)的理論應(yīng)用起來(lái)。比如在蘋(píng)果設(shè)計(jì)iPod的導(dǎo)航菜單時(shí),喬幫主提出: 不管用戶(hù)想聽(tīng)什么,只要點(diǎn)擊3次就可以找到。(因?yàn)槌^(guò)3重導(dǎo)航用戶(hù)容易get lost) 小牛哥從此就注意,每次只要用UINavigationCroller 就保證不超過(guò)3重菜單,Sometimes有 SB UX 想要加好幾重導(dǎo)航,小牛哥只能感慨的長(zhǎng)嘆:?jiǎn)汤蠋椭魉啦活堪 ?。。然后很快就?huì)看見(jiàn)一個(gè)新版本的UX設(shè)計(jì)。
3、一些很好的視頻必須看看
什么是跨時(shí)代的偉大產(chǎn)品,什么是創(chuàng)造歷史,看看第一代iPhone的發(fā)布視頻吧。這個(gè)小牛哥反復(fù)看了幾遍,除了學(xué)到一些做presentation 的口語(yǔ),還學(xué)到了一些有用的UX 原理。(忍不住要感慨一下: 喬老幫主太牛了,如果沒(méi)有iPhone, Andriod 也不會(huì)有今天繁華的局面,人類(lèi)智能手機(jī)的發(fā)展將倒退好幾年。也許正因?yàn)檫@個(gè),上帝才不讓喬幫主多活。。。嗚呼哎哉!上帝什么時(shí)候才會(huì)再賜一個(gè)喬幫主給人類(lèi)啊!)
在這里不能不提一下,很多人做ppt/presentation時(shí), 喜歡把一大堆文字和表格放到一頁(yè)上,誰(shuí)會(huì)看啊? 眼睛都忙不過(guò)來(lái)怎么聽(tīng)清楚說(shuō)什么啊? 我們做ppt都應(yīng)該想老喬的那樣,簡(jiǎn)單大方,每頁(yè)幾個(gè)字或幾張圖片,這樣觀眾一看就明白說(shuō)什么,
YouTu 上還有很多優(yōu)秀的關(guān)于 iOS/UX 的視頻,大家有空看看,能學(xué)到很多。
例如,這個(gè)系列的視頻不錯(cuò):
UIKonf 2014
4、最好把英語(yǔ)學(xué)好
這個(gè)不是特別重要,但是學(xué)好了,你就更容易脫穎而出。
其實(shí)不管哪門(mén)編程語(yǔ)言,最好的資料一般都是英文的,學(xué)好英文就可以學(xué)更多更好的技術(shù),更容易了解編程的思維。
小牛哥本身英語(yǔ)也不好,四級(jí)都要考幾次,關(guān)鍵就是要多用,天天用,上面提到的視頻就是很好的口語(yǔ)教材,有空一定要多聽(tīng)多說(shuō)。
提高英文寫(xiě)作水平的一個(gè)很有效的方法就是多背好文章。當(dāng)年為了把文章寫(xiě)好,背很多這本書(shū)里的文章,效果不錯(cuò),大家不妨試試,
有效的學(xué)習(xí)ios編程的建議
找到一名編程小伙伴
我還找到一種學(xué)習(xí)方法,那就是有一個(gè)可以交談的、活生生的人。
我的合伙創(chuàng)始人Josh,主要做Python開(kāi)發(fā),實(shí)際上和我一起學(xué)習(xí)Objective-C,并為我解答了很多編程理論方面的問(wèn)題(“怎么讓一個(gè)if語(yǔ)句再次起作用?”),在我真正遇到難題時(shí)幫我調(diào)試。
至少有了極具耐心的編程伙伴,他可以解釋基本的編程原則,這是莫大的幫助。在我用Objective-C搞清楚具體細(xì)節(jié)之前,Josh經(jīng)常幫助我思考解決某個(gè)問(wèn)題的大部分邏輯方法。
善用資源
如果你不夠幸運(yùn),身邊缺少有耐心的程序員解答問(wèn)題,那么,其它一些地方可以讓你從真實(shí)的人那里獲得幫助:
Stack Overflow
關(guān)于具體語(yǔ)法或?qū)崿F(xiàn)的問(wèn)題,Stack Overflow是我最近訪(fǎng)問(wèn)最多的網(wǎng)站之一。我自己還沒(méi)有在那兒?jiǎn)栠^(guò)問(wèn)題(由于該社區(qū)對(duì)初學(xué)者相當(dāng)友好,我對(duì)提問(wèn)持謹(jǐn)慎態(tài)度),因?yàn)槲液苌傩枰?wèn)——通過(guò)瀏覽其他人的問(wèn)題的答案,我的大部分問(wèn)題就得到解決了。
Treehouse
Treehouse通過(guò)視頻課程教授編程,還建立了社區(qū)論壇,你可以在這里討論有困難的bug,或者你在聽(tīng)課過(guò)程中碰到的具體練習(xí)。
askadev
在你需要幫助的時(shí)候,askadev支持你聯(lián)系到有經(jīng)驗(yàn)的開(kāi)發(fā)者。我還沒(méi)有嘗試過(guò)這項(xiàng)服務(wù),因此我不知道有多大用處、或是否囊括了所有編程語(yǔ)言,不過(guò)它是免費(fèi)的,下次你有需要,不妨一試。
Codementor
如果你想給有經(jīng)驗(yàn)的開(kāi)發(fā)者支付現(xiàn)金來(lái)獲得幫助,Codementor會(huì)把你和熟悉你在學(xué)的語(yǔ)言的人匹配到一起。它們涵蓋了Android、iOS、HTML、CSS、PHP、Python,以及很多技術(shù)。
小黃鴨問(wèn)題解決
如果你以前沒(méi)有看到,《小黃鴨式解決問(wèn)題》的博文是非常有用的。具體操作是:對(duì)著一個(gè)小黃鴨或其它靜物,比如面包機(jī),闡述你的問(wèn)題,大聲點(diǎn)兒。大聲講述問(wèn)題的過(guò)程,經(jīng)常有助于你自己意識(shí)到答案(或至少知道錯(cuò)在哪里了)。我已經(jīng)發(fā)現(xiàn),大聲地討論我的代碼是一種難以置信的好習(xí)慣,每次在我找別人幫忙之前,我都要盡量這樣做。
學(xué)習(xí)規(guī)范
在我學(xué)習(xí)編程的時(shí)光里,最影響我的就是對(duì)于我正在使用技術(shù)的誤解和陌生。比如,開(kāi)發(fā)API意味著我需要理解API的工作原理、怎樣使用POST和GET請(qǐng)求、怎樣分析JSON數(shù)據(jù),甚至我需要掌握接收J(rèn)SON數(shù)據(jù)。
學(xué)習(xí)Objective-C不是開(kāi)發(fā)iOS app所需要知道的全部,至少,不是我想開(kāi)發(fā)的那種。我犯了個(gè)錯(cuò)誤,我認(rèn)為只要知道Objective-C就行了。甚至更糟糕的,我經(jīng)常遇到困難,因?yàn)镾tack Overflow回答問(wèn)題的人、在線(xiàn)教程和書(shū)籍章節(jié)都在解釋如何用Objective-C開(kāi)發(fā),完全跳過(guò)了必需的、我需要知道的、基于web的原則,因?yàn)樗麄冋J(rèn)為我知道了。
如果我今天重新開(kāi)始,我將首先補(bǔ)充、積累HTML和CSS方面的知識(shí)。當(dāng)我開(kāi)始碰到一些我不太了解的新技術(shù)時(shí),在準(zhǔn)備用Objective-C實(shí)現(xiàn)之前,我會(huì)大概了解一下。
任何語(yǔ)言都可以起步
如果你真的不確定從哪里開(kāi)始,或者你想開(kāi)發(fā)什么,請(qǐng)不要因此受到影響。雖然我花時(shí)間學(xué)習(xí)Ruby和Python、還沒(méi)有用它們完成任何項(xiàng)目,但是我不覺(jué)得時(shí)間被浪費(fèi)了。
初學(xué)者通常的起點(diǎn)是學(xué)習(xí)HTML和CSS去開(kāi)發(fā)網(wǎng)站。它們實(shí)際上是標(biāo)記語(yǔ)言,如果你想開(kāi)發(fā)移動(dòng)或web app,貌似學(xué)習(xí)HTML和CSS是浪費(fèi)時(shí)間。但是在這種情況下,你將獲得知識(shí)和經(jīng)驗(yàn),對(duì)你繼續(xù)學(xué)習(xí)編程語(yǔ)言是有幫助的。
如果你急切希望開(kāi)始學(xué)習(xí)編程卻不知道從哪兒開(kāi)始,就挑一本書(shū)、教程或在線(xiàn)課程,只要你喜歡,就搞定它!一旦你對(duì)想開(kāi)發(fā)的東西有了更好的理解,你總是可以選擇學(xué)習(xí)一種不同的語(yǔ)言。
找到你真正關(guān)心的項(xiàng)目
對(duì)我而言,最大的學(xué)習(xí)曲線(xiàn)可能就是找到讓我堅(jiān)持學(xué)習(xí)代碼的動(dòng)機(jī)。過(guò)去我嘗試了很多次:在我小時(shí)候?qū)W習(xí)HTML和CSS,幾年后學(xué)習(xí)Ruby的基礎(chǔ)知識(shí),最近在學(xué)Python。
我決定學(xué)習(xí)Objective-C,不是因?yàn)樗鼊龠^(guò)了Ruby或Python我才喜歡,也不是因?yàn)槲艺J(rèn)識(shí)學(xué)Objective-C的人,只是因?yàn)槲矣幸粋€(gè)iOS app的想法清單,我想完成——我真的想去開(kāi)發(fā)。
我學(xué)習(xí)Objective-C的動(dòng)機(jī)比以前學(xué)習(xí)任何其它語(yǔ)言都要強(qiáng)烈,因?yàn)槲蚁腴_(kāi)發(fā)的私人項(xiàng)目在鼓勵(lì)著我。
最重要的是,隨著難度加大,我感到沮喪、遇到困難時(shí),我沒(méi)有放棄——因?yàn)槲艺陂_(kāi)發(fā)我真正關(guān)心的項(xiàng)目。每次我設(shè)法實(shí)現(xiàn)一些新功能,運(yùn)行良好,得到的收獲甚至更好了,因?yàn)樗俏矣屑で榈捻?xiàng)目的一部分。
如果你正在考慮學(xué)習(xí)編程,而你沒(méi)有選擇語(yǔ)言或平臺(tái)的任何限制,我明確建議選擇你真正有激情的項(xiàng)目,這樣才能為項(xiàng)目需要所選擇的語(yǔ)言打下基礎(chǔ)。
每個(gè)人的學(xué)習(xí)方法都不同,因此你可能有著與我不同的經(jīng)歷,不過(guò)如果你只是剛起步、或在考慮學(xué)習(xí)編程的事情,那么希望我的經(jīng)驗(yàn)和錯(cuò)誤能幫你學(xué)得更快。
注1:小黃鴨調(diào)試法,又稱(chēng)橡皮鴨調(diào)試法,黃鴨除蟲(chóng)法(Rubber Duck Debugging)是軟件工程中使用的調(diào)試代碼方法之一。就是在程序的調(diào)試、糾錯(cuò)或測(cè)試過(guò)程中,耐心地向小黃鴨解釋每一行程序的作用,以此來(lái)激發(fā)靈感。
iOS10省電使用技巧
技巧一:在設(shè)置里找到【通用】,然后在【存儲(chǔ)空間與iCloud用量】里,關(guān)閉【后臺(tái)應(yīng)用刷新】功能,就ok啦~因?yàn)殛P(guān)閉此功能以后,軟件就不會(huì)頻繁的自動(dòng)刷新內(nèi)容,達(dá)到省電的目的。
技巧二:在設(shè)置里面找到【iCloud】,然后在找到【Cloud Drive】,關(guān)閉iCloud Drive即可。如果這個(gè)數(shù)據(jù)同步打開(kāi),運(yùn)行時(shí)將會(huì)非常耗電,且有時(shí)候數(shù)據(jù)會(huì)同步一兩個(gè)小時(shí),沒(méi)準(zhǔn)你的電就是這樣被消耗光的,所以謹(jǐn)慎開(kāi)啟!
猜你喜歡: