自學(xué)iOS開(kāi)發(fā)改艇,從新手小白到高級(jí)工程師正確的打開(kāi)方式

自己目前大四汪一枚,自學(xué)iOS開(kāi)發(fā)一年左右,先后學(xué)習(xí)了swift和Objective-C姑宽。由于是自學(xué)(而且全院貌似就我一個(gè)人在學(xué))遣耍,深知自學(xué)之痛。所以在此分享一下我的學(xué)習(xí)路程炮车,希望可以幫到大家舵变。

個(gè)人以為,從iOS開(kāi)發(fā)小白到iOS開(kāi)發(fā)高級(jí)工程師瘦穆,可以分成以下四個(gè)階段:

1.熟悉語(yǔ)言語(yǔ)法階段(小白)

iOS開(kāi)發(fā)主要有兩種語(yǔ)言:Objective-C和swift纪隙。建議先學(xué)Objective-C,因?yàn)槟壳皣?guó)內(nèi)80%~90%的公司都在用Objective扛或,因?yàn)楫a(chǎn)品迭代原因绵咱,最近一兩年還不會(huì)大量遷移到swift。暫且不提開(kāi)發(fā)效率熙兔,從就業(yè)角度來(lái)講悲伶,你也應(yīng)該現(xiàn)學(xué)Objective-C。當(dāng)然如果你學(xué)好了Objective-C住涉,再去學(xué)習(xí)swift也很好麸锉,為以后做打算。

學(xué)完一門(mén)編程語(yǔ)言語(yǔ)法舆声,你起碼應(yīng)該熟悉一下幾點(diǎn):

(1)語(yǔ)言的數(shù)據(jù)類(lèi)型有哪些花沉,怎么去定義。一般有整形媳握、字符型碱屁、布爾類(lèi)型等。

(2)語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)有哪些蛾找。一般有數(shù)組娩脾、字典、各種容器等打毛。

(3)語(yǔ)言的基礎(chǔ)語(yǔ)句晦雨。if-else架曹、switch-case、while闹瞧、for等绑雄。

(4)語(yǔ)言的面向?qū)ο筇匦裕ㄈ绻敲嫦驅(qū)ο笳Z(yǔ)言的話)。如何去構(gòu)建一個(gè)類(lèi)奥邮,去寫(xiě)一個(gè)方法万牺。類(lèi)或者變量的私有與公有等。

(5)語(yǔ)言的一些專(zhuān)屬特性洽腺。例如OC的block脚粟、delegate等。

學(xué)習(xí)完這門(mén)語(yǔ)言蘸朋,你起碼能夠做到能夠?qū)懸粋€(gè)完整的類(lèi)核无。可以對(duì)一個(gè)事物抽象藕坯,然后熟練寫(xiě)出這個(gè)類(lèi)的屬性团南、方法等。如果寫(xiě)這些還需要去翻書(shū)炼彪,那繼續(xù)看吧吐根。

2.熟悉語(yǔ)言API,iOS的基本開(kāi)發(fā)UI控件階段(菜鳥(niǎo))

一門(mén)語(yǔ)言有成百上千個(gè)API辐马,不需要你去都記住拷橘,但是要記住常用的。例如OC中的UITableView的dataSource和delegate喜爷;GCD或者NSOperation開(kāi)辟線程執(zhí)行任務(wù)的相關(guān)方法冗疮;NSDictionary、NSArray相關(guān)的增刪查改方法檩帐;JSON數(shù)組轉(zhuǎn)換方法术幔;文件操作方法等。一些常用操作的API需要熟練掌握轿塔。

對(duì)于UI控件特愿,常用的有UIView仲墨、UITableView勾缭、UIScrollView、UIButton目养、UILabel等俩由。你應(yīng)該熟悉這些控件的屬性和相關(guān)的操作方法。例如UITextField如何讓文字左對(duì)齊癌蚁,如何響應(yīng)輸入框的變化等幻梯。

還應(yīng)該熟悉響應(yīng)的Controller,例如UIViewController,UINavigationController等操作兜畸。知道UIViewController的生命周期。如何通過(guò)delegate在界面之間傳遞數(shù)據(jù)碘梢。NSNotification咬摇、Block、KVO煞躬、KVC肛鹏、Category等都是需要在這個(gè)階段掌握的。

這個(gè)階段結(jié)束后恩沛,你應(yīng)該能夠仿出一個(gè)類(lèi)似于網(wǎng)易新聞客戶端在扰、QQ等這種APP的界面模型。暫且不管先不說(shuō)流暢性和內(nèi)存雷客。

3.了解iOS開(kāi)發(fā)的底層原理芒珠,并熟練運(yùn)用(初級(jí)、中級(jí)工程師)

所謂的iOS基礎(chǔ)搅裙,面試也經(jīng)常問(wèn)到的:iOS內(nèi)存管理(ARC&MRC)皱卓、iOS運(yùn)行時(shí)機(jī)制(RunTime)、RunLoop呈宇、多線程(GCD&NSOperation)等好爬。這只是概括的說(shuō),每一塊都需要掌握的很詳細(xì)甥啄。

熟練使用類(lèi)庫(kù)并閱讀類(lèi)庫(kù)源碼存炮,例如AFNetWorking、SDWebImage等(這倆是初學(xué)者必看的)蜈漓。同時(shí)自己也嘗試造一些輪子穆桂。

這個(gè)階段基本就可以正式干活了,也就是說(shuō)能夠參與寫(xiě)一寫(xiě)企業(yè)級(jí)的項(xiàng)目了融虽。如果在這之前享完,會(huì)寫(xiě)出很多漏洞和bug。

4.能夠熟練寫(xiě)一些框架有额,并對(duì)iOS開(kāi)發(fā)有自己的真知灼見(jiàn)(高級(jí)工程師)

因?yàn)閭€(gè)人比較菜般又,對(duì)這個(gè)階段理解也比較淺。如果有什么錯(cuò)誤的地方巍佑,還請(qǐng)大神糾正茴迁。

在這個(gè)階段的人,基本都會(huì)寫(xiě)一個(gè)或者多個(gè)開(kāi)源類(lèi)庫(kù)萤衰,上傳github進(jìn)行維護(hù)堕义。同時(shí)在項(xiàng)目開(kāi)發(fā)中承擔(dān)一些核心工作,使用C對(duì)一些底層進(jìn)行封裝脆栋。而不是寫(xiě)一些界面布局倦卖,數(shù)據(jù)獲取處理等操作洒擦。而且在寫(xiě)博客時(shí),更加著重于如何去優(yōu)化性能怕膛、如何去創(chuàng)造新的東西熟嫩。更有甚者,可以晉升項(xiàng)目leader活著技術(shù)總監(jiān)等褐捻“钗#或者直接不給公司干了,當(dāng)一個(gè)自由職業(yè)者舍扰,或者直接去創(chuàng)業(yè)倦蚪。

可以說(shuō),處于這個(gè)階段的人边苹,更多的不是為了薪水陵且,而是對(duì)技術(shù)的熱愛(ài)。起碼我是這么認(rèn)為个束。

以上說(shuō)的是該學(xué)什么慕购,下面繼續(xù)說(shuō)說(shuō)如何去學(xué)。

1.基礎(chǔ)

如果你是一個(gè)非編程相關(guān)專(zhuān)業(yè)的人茬底,例如藝術(shù)專(zhuān)業(yè)想轉(zhuǎn)iOS開(kāi)發(fā)沪悲,建議你先去學(xué)C,C可以說(shuō)是編程界的《易筋經(jīng)》阱表,學(xué)好了C學(xué)其他語(yǔ)言會(huì)很容易上手殿如。如果你有了編程基礎(chǔ),那就直接去學(xué)OC和swift吧最爬。對(duì)于基礎(chǔ)語(yǔ)法涉馁,看書(shū)就能解決問(wèn)題。本人學(xué)習(xí)swift看的是《Swift Programming Language》爱致,學(xué)習(xí)Objective-C看的是《Objective-C編程全解》烤送。看書(shū)的時(shí)候邊看編敲糠悯,這樣會(huì)掌握牢固點(diǎn)(雖然我沒(méi)這么做)帮坚。如果你是對(duì)編程極度敏感的人,基本看一遍書(shū)就都解決了互艾。否則你要多看幾遍多敲點(diǎn)代碼了试和。

2.入門(mén)

如果你感覺(jué)學(xué)著吃力,建議你先從視頻看起忘朝,因?yàn)橐曨l講解的詳細(xì)易懂灰署,當(dāng)然看視頻進(jìn)度比較慢判帮。關(guān)于視頻局嘁,本人推薦加iOS交流裙(六八一五零三七一六)溉箕,邀請(qǐng)碼填【墨子】,裙里有8年開(kāi)發(fā)經(jīng)驗(yàn)的iOS老師解答問(wèn)題悦昵,而且有大量的學(xué)習(xí)視頻和資料共享肴茄。

這個(gè)階段要多寫(xiě)一些demo,最好寫(xiě)幾個(gè)完整的項(xiàng)目但指。例如寫(xiě)一個(gè)有關(guān)天氣的客戶端或者其他的寡痰。下面是我當(dāng)初學(xué)的時(shí)候?qū)懙模?/p>

3.進(jìn)階

要想進(jìn)入這個(gè)階段,可能要比前兩個(gè)階段困難點(diǎn)了棋凳。前兩個(gè)階段只是看拦坠,思考的東西并不多,基本看了就會(huì)剩岳,很多人都可以做到贞滨。物以稀為貴,越容易學(xué)會(huì)越不值錢(qián)拍棕。

看牛人的個(gè)人博客是很好的學(xué)習(xí)方式晓铆,很多牛人都會(huì)把知識(shí)的總結(jié)寫(xiě)成博客。這個(gè)大家可以自己去找找绰播,這里發(fā)鏈接不太合適骄噪。

寫(xiě)博客,只是看博客還不行蠢箩,還要自己寫(xiě)链蕊。寫(xiě)的好壞不要緊,重要是寫(xiě)不寫(xiě)谬泌。寫(xiě)博客過(guò)程中示弓,能夠讓你對(duì)知識(shí)理解的更加深刻。而且寫(xiě)一篇優(yōu)質(zhì)博客呵萨,你回去查閱很多資料奏属,在這個(gè)過(guò)程中,你能夠得到很大的提高潮峦。

造輪子囱皿,紙上得來(lái)終覺(jué)淺,絕知此事要躬行忱嘹。只是看和寫(xiě)還不行嘱腥,還要敲。先從小輪子寫(xiě)起拘悦,可以先看別人的代碼齿兔,再去寫(xiě)別人寫(xiě)過(guò)的。熟練了以后,寫(xiě)別人沒(méi)寫(xiě)過(guò)的分苇。日積月累添诉,你會(huì)對(duì)iOS編程理解越來(lái)越深。

寫(xiě)在最后

如果你只是想開(kāi)發(fā)著玩玩医寿,那么你按照以上學(xué)習(xí)就差不多了栏赴。但是如果你真想走編程這條不歸路,你最好還要學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)靖秩、計(jì)算機(jī)網(wǎng)絡(luò)须眷、操作系統(tǒng)這些知識(shí),雖然這些東西在實(shí)際開(kāi)發(fā)中用到的很少沟突,但是如果不學(xué)這些基礎(chǔ)花颗,你在成長(zhǎng)過(guò)程中會(huì)遇到瓶頸。另外惠拭,搜索問(wèn)題的時(shí)候盡量用Google捎稚。多看看Apple官方文檔,多去StackOverflow問(wèn)答求橄,盡量熟悉閱讀英文的東西今野。國(guó)外有很多優(yōu)質(zhì)學(xué)習(xí)資源是沒(méi)有被譯成中文的。

師父領(lǐng)進(jìn)門(mén)罐农,挖坑靠個(gè)人条霜。愿大家在iOS挖坑的道路上越挖越深。涵亏。宰睡。如果有一天爬不出來(lái)了,希望不要來(lái)揍我气筋。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拆内,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子宠默,更是在濱河造成了極大的恐慌麸恍,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,294評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搀矫,死亡現(xiàn)場(chǎng)離奇詭異抹沪,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)瓤球,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)融欧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人卦羡,你說(shuō)我怎么就攤上這事噪馏÷蟮剑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,790評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵欠肾,是天一觀的道長(zhǎng)瓶颠。 經(jīng)常有香客問(wèn)我,道長(zhǎng)董济,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,595評(píng)論 1 284
  • 正文 為了忘掉前任要门,我火速辦了婚禮虏肾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘欢搜。我一直安慰自己封豪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,718評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布炒瘟。 她就那樣靜靜地躺著吹埠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疮装。 梳的紋絲不亂的頭發(fā)上缘琅,一...
    開(kāi)封第一講書(shū)人閱讀 49,906評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音廓推,去河邊找鬼刷袍。 笑死,一個(gè)胖子當(dāng)著我的面吹牛樊展,可吹牛的內(nèi)容都是我干的呻纹。 我是一名探鬼主播,決...
    沈念sama閱讀 39,053評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼专缠,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼雷酪!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起涝婉,我...
    開(kāi)封第一講書(shū)人閱讀 37,797評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤哥力,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后墩弯,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體省骂,經(jīng)...
    沈念sama閱讀 44,250評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,570評(píng)論 2 327
  • 正文 我和宋清朗相戀三年最住,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钞澳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,711評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涨缚,死狀恐怖轧粟,靈堂內(nèi)的尸體忽然破棺而出策治,到底是詐尸還是另有隱情,我是刑警寧澤兰吟,帶...
    沈念sama閱讀 34,388評(píng)論 4 332
  • 正文 年R本政府宣布通惫,位于F島的核電站,受9級(jí)特大地震影響混蔼,放射性物質(zhì)發(fā)生泄漏履腋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,018評(píng)論 3 316
  • 文/蒙蒙 一惭嚣、第九天 我趴在偏房一處隱蔽的房頂上張望遵湖。 院中可真熱鬧,春花似錦晚吞、人聲如沸延旧。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,796評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)迁沫。三九已至,卻和暖如春捌蚊,著一層夾襖步出監(jiān)牢的瞬間集畅,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工缅糟, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留牡整,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,461評(píng)論 2 360
  • 正文 我出身青樓溺拱,卻偏偏與公主長(zhǎng)得像逃贝,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子迫摔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,595評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容