【極客班】第一篇學(xué)習(xí)筆記

懶癌加拖延癥晚期導(dǎo)致我在第一周課即將結(jié)束的時候才著手寫了這么一篇心得筆記。

姑且從頭講起。

我是在網(wǎng)易云課堂上面報的這個極客班開辦的iOS開發(fā)課程,其實蠻后悔的,一開始尋思是自學(xué),就錯過了上一期的課程,無奈等了一個多月趕上了這批,其實也沒什么后悔的,之前也是過于高估了自己的自制力,還是找一個系統(tǒng)的教程被指引著學(xué)習(xí)比較好了,后來極客班開了一個網(wǎng)絡(luò)視頻的見面會,感覺兩位老師還有助教老師都是很負責(zé)、有趣的人,言傳身教,頓時踏實了許多,同時又感到壓力頗大,畢竟自己的本科專業(yè)跟IT行業(yè)差得很遠,雖然在開課之前跟著云課堂自學(xué)了兩個月的C語言,總覺得自己同科班出身的程序員的水平不可同日而語,自己一定要付出更大的努力,慢慢的跟上進度。

言歸正傳哈。

之前買了兩本Objective-C的書籍自己閱讀,學(xué)習(xí)了面向?qū)ο缶幊痰乃枷牒统绦虻幕窘Y(jié)構(gòu),繼承、多態(tài)也或多或少的涉及了,不過自己還是看得云里霧里的,一開始也沒有買mac,拿著臺華碩在notepad++里照著書上敲代碼,后來終于下定決心買一臺macbook pro,打開Xcode,頓時傻了眼,雖然本人也是雅思6.0的水平,可里面的全英文看著就可怕,頓時一股恐懼感涌上心頭,這個時刻也算是自己報極客班課程的導(dǎo)火索吧!但也是歷史的必然性(又跑題了)。


好吧!正文開始??偣卜謨蓚€話題:課程的總結(jié)以及對于學(xué)習(xí)方法的體會,拿來分享,順便達成任務(wù)。

第一周講了七個部分的內(nèi)容,總的概括就是一個Objective-C程序(以下稱OC)整體的結(jié)構(gòu),大概該怎么寫一個程序,系統(tǒng)的講了一下。

且不談OC的歷史進程,單單講一下這個面向?qū)ο缶幊?/b>(Object Oriented Programming,OOP)的思想,一開始自己看書的時候就覺得糊里糊涂的,我沒有C++、Java的學(xué)習(xí)經(jīng)驗,只學(xué)了號稱過程式編程的C語言。我買了兩本書,一本是詳細的《Objective-C程序設(shè)計(第六版)》和經(jīng)典的《Objective-C基礎(chǔ)教程(第二版)》,大致我的理解就是通過間接(indirection)的方法、利用指針(pointer)來簡化程序的編寫和修改。

有一個問題困擾很久,在聽第一周課的時候給出了答案,很是受用。當(dāng)時我不理解的是,OC里面的元素,類和方法與C語言中的結(jié)構(gòu)和函數(shù)有什么區(qū)別嗎?在編譯時的機制也是類似的,那么OC有什么獨特之處嗎?后來在聽李建忠老師的授課視頻《函數(shù)成員:方法》一講中講述了一個這樣的概念,讓我的疑惑煙消云散,他說:

(OC的寫法)通過語言語法的改變使得我們程序員在編程的時候就慢慢的具有了面向?qū)ο蟮乃季S方式。

而經(jīng)典的《OC基礎(chǔ)教程》里也提到了面向?qū)ο蟮囊淮筇攸c,令我印象深刻,畢竟自己的基礎(chǔ)比較薄弱,這句話說的蠻深刻,需要我慢慢品,在這里摘抄下來:

過程式編程建立在函數(shù)之上,數(shù)據(jù)為函數(shù)服務(wù),而面向?qū)ο缶幊虅t以程序的數(shù)據(jù)為中心,函數(shù)為數(shù)據(jù)服務(wù)。在OOP中,不再重點關(guān)注程序中的函數(shù),而是專注于數(shù)據(jù)。


下面來談?wù)劦谝恢艿淖鳂I(yè),而不是談每節(jié)課的細節(jié)。

聽課時延續(xù)了以前記筆記的傳統(tǒng),其實課程后面附了有關(guān)課程的課件,也就是老師講課的PPT以及范例的代碼,PPT上的知識點已經(jīng)很細致了,我記的筆記也主要就是補充一下老師口頭提到的一些注意事項和細枝末節(jié),如下圖:

讓人慚愧的聽課筆記

這么一點微小的工作,實在慚愧。

之前得知需要在簡書上寫一下學(xué)習(xí)心得,我當(dāng)時的想法是把聽課筆記貼進來,還為此特地搞到一臺掃描儀,后來助教老師跟我說寫你想寫的,有用的東西就好,我也發(fā)現(xiàn),聽課筆記其實并不是什么解惑的良藥,真正讓我受益、加深印象的只有完成編程作業(yè),也就是把代碼切切實實的敲到電腦上,運行成功,在編寫的時候把每個知識點都實踐一遍,在每個語法錯誤和bug中總結(jié)錯誤。

一開始我就是一個“未躬行”的迷茫的孩子,只聽課和記筆記,并沒有去讀范例的代碼并且實際的敲一遍,等做作業(yè)的時候慌了,感覺題干上涉及的知識點都了解,但就是敲不出,敲上了漏洞百出,無奈重新聽了課程上的部分重點,然后看著范例的代碼照貓畫虎,算是運行成功了。

從記筆記突然扯到了學(xué)習(xí)方法,是啊,其實李老師在第一節(jié)課的時候就提到要自己去實踐才能真正的理解知識,現(xiàn)在才真正體會了其中的意義。

這周的作業(yè)涵蓋了幾乎所有提到過的知識點,一開始敲的時候真的是很慢很艱難,欲哭無淚的感覺。第一個卡著的地方就是創(chuàng)建類對象還有實現(xiàn),像@interface、@property和@implementation之前看書的時候就知道,也知道是怎么一回事,可是都是紙面上的,李老師的課程也是在幫我們分析程序里面每個部分的要點和運行機制,貌似沒有提新建.m和.h文件的事情(也或許是我看課件的時候溜號了?),好在“一不小心”搞出來了(其實是照著范例和英文提示做出了長得一樣的東西了),就算是試驗成功。

后來做到繼承那一部分的時候,明明看起來格式是正確的,但總是報錯,正好有兩天我需要去外地辦事情,耽誤了點時間,但在往返的路上一直思考,隨身帶著書,又看了一遍,回家之后又參考了范例,才恍然大悟:最上頭的#import忘了import 那個.h的文件了,難怪?。】磥砑毠?jié)真的很重要,編譯器給出的提示比我當(dāng)初用Dev-C++做C程序設(shè)計時的提示高到不知哪里去了,現(xiàn)在終于又有編程的快感了,多謝Xcode!

個人覺得初始化器那塊挺麻煩的,它的工作機理和語法我還要多多研究??!我也只能照葫蘆畫瓢給init了,作業(yè)那一部分對不對還不得而知啊,這塊得再看看。

對了,還有一個事情,李老師自稱“內(nèi)存派”,事實也是如此,他對OC程序內(nèi)部的運行機制講得很透徹,正所謂“格物致知”,頓時覺得自己很幸運,既然老師有這么拿手的東西,自己一定也要繼承老師的光榮傳統(tǒng),把他的精神發(fā)揚光大啊~

第一篇筆記大概就寫這么多了,胡亂寫了一通,以后切記要梳理思緒??!再就是不能再拖延了,有想法就趕緊付諸行動,別過后耽誤了時間才去后悔,另外,“手頭的事情盡快做完”也是日后避免加班的“不二法門”?。‰m然并不知道是不是我太天真了,嘻嘻。

恩,花開堪折直須折,莫待無花空折枝,把握生命中的每一刻吧!

不說了,我再把之前作業(yè)的代碼默默的重敲一遍吧!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容