聲明: 極速學(xué)習(xí)
你是一個文科生栏渺,數(shù)學(xué)是體育老師教的。天天用手機(jī)锐涯,但從沒寫過一行程序】恼铮現(xiàn)在你想做一個程序(或者是自用的工具,或者是你覺得可以拿出去和別人分享的小游戲纹腌,甚至是可以賺大錢的網(wǎng)絡(luò)服務(wù))霎终。本教程教你3天24小時內(nèi)可以開始自己做項目。最多一周壶笼,可以成為100offers之類的地方一個有競爭力的工作人神僵。一個月雁刷,你很可能找到一個很好的IOS開發(fā)工作覆劈。
**不相信本聲明的去看前言。不然可以直接跳過到第一章沛励。 **
為了極速學(xué)習(xí)這個目標(biāo)责语。本教程盡可能的避免使用技術(shù)語言。到完成本教程的一刻目派,讀者自然就通過例子和事件學(xué)會相當(dāng)部分的技術(shù)語言坤候。
任何一個成熟的軟件工程師,日常工作的80%部分企蹭,使用的知識是小學(xué)數(shù)學(xué)白筹,加上大學(xué)入門課程的前幾十頁。原因不解釋谅摄。本教程的目的是教會你一個最少部分內(nèi)容徒河,但威力最強(qiáng)大的技能集。這有一個額外的好處送漠,Swift正在發(fā)展中顽照,學(xué)的多將來可能錯的多。本教程的目標(biāo)是:學(xué)的少,會的多代兵。
本教程是為零基礎(chǔ)的人寫的尼酿。零基礎(chǔ)是優(yōu)勢。至少你沒有各種壞習(xí)慣和錯誤的成見植影。壞習(xí)慣多裳擎,自以為是的各路技術(shù)控繞道。這些人是負(fù)基礎(chǔ)思币,學(xué)新東西會及其吃力句惯。去掉一個壞習(xí)慣,比培養(yǎng)好習(xí)慣要難的多(比減肥難)支救。負(fù)基礎(chǔ)嚴(yán)重的人抢野,可能十年學(xué)不會一行編程。例如你讓莫言學(xué)編程各墨,那基本不可能了指孤。為什么嬰兒學(xué)語言快?很重要原因是他們零基礎(chǔ)贬堵。學(xué)習(xí)第二語言就極其困難恃轩。
前言: 真理何物
擁有真值的句子和真理是不同的。所有擁有真值的句子的真值黎做,都是來源于最初幾個被規(guī)定為真的命題叉跛,和一些被規(guī)定為合法構(gòu)造句子的規(guī)則。所以有真值的具體必然是一個符號體系的內(nèi)在產(chǎn)物蒸殿。其真與否筷厘,和世界上其他東西無關(guān)。因為真理和符號體系之外的東西有關(guān)系宏所。所以擁有真值的句子的真假酥艳,不能完全覆蓋真理所指的東西。這就好比紅樓夢和字典爬骤,紅樓夢是好的著作充石,并不是因為它字字的用法都符合字典。
那么真理何物霞玄?在回答這個問題之前骤铃,我們必須弄清楚,世間是否有真理坷剧。如果真理是個不存在的東西惰爬,那就沒必要給出“真理”這個名字,使用這個詞也就沒有意義补鼻。我的回答是,世間確有真理。只需要一個明確的例子风范,就足以證明世間確有真理硼婿。
例如:語言是有用的寇漫。
a 自有哲學(xué)以來州胳,所有真理的討論都承認(rèn)上述真理遍膜。你可能會說,我不承認(rèn)上述真理瓤湘。但這必是謊言瓢颅。人生幾十年,思考交流都在用語言弛说。所以你對待“語言是有用的”這句話的態(tài)度挽懦,無疑就是對待真理的態(tài)度∧救耍或者難道說你日日堅持使用了幾十年語言刀疙,然而從不相信其有用辐烂?或者說样傍,你上網(wǎng)幾十年五慈,不相信電腦是有用的蔫磨?
b 社會上無疑會有少數(shù)人對待語言的態(tài)度不同淘讥,但這些人要么已經(jīng)被社會淘汰,要么處在被淘汰和隔離改造的過程中堤如∑蚜校《瘋癲與文明》講述的就是這個被精神病的過程。從這個角度來講搀罢,即便語言是有用的這條尚未完全的成為真理蝗岖,它必將成為真理。
**例如:真理問題被思考榔至,思考這問題的東西肯定不是真理問題本身抵赢。所以除了真理問題這個符號世界的東西之外,還有另一個東西,這個東西就是我铅鲤。所以我在划提。
綜合a和b,這個例子已足夠肯定確有真理存在。注意上面第二段說明邢享,真理不是純符號的東西鹏往,其必然而且只能在一個歷史的過程中完成。我們的擁有對未來的確定的態(tài)度骇塘,就是當(dāng)下的真理伊履。一旦我們擁有了對未來的絕對的確定態(tài)度,那么歷史就結(jié)束了款违。簡單的說唐瀑,在我們絕對的認(rèn)可了哪怕只是單個一條真理的時刻,歷史就結(jié)束了插爹。這是Hegel到Kojeve和福山反復(fù)講述的事情介褥。
所以真理何物這個問題,是無法用符號來完全回答的递惋。真理是需要用人的實踐來完成的一個歷史的過程柔滔。
我們可以從另一個角度來論證:
任何事物都有“時間”這個屬性。下一時刻的這個杯子和這一時刻是不同的萍虽。下一時刻都是對這一時刻的否定睛廊。所以人不能踏入同一條河流。既然如此杉编,怎么可能存在貫穿全部時間的真理呢超全?答案很簡單,只有通過實踐改造未來邓馒,才能完成真理嘶朱。一旦事物被完成,成為過去和歷史光酣,它就不能再被改變疏遏。
例如:“全球人類必將在同一個框架下進(jìn)行貿(mào)易”。這是不是真理救军?它最開始不是的财异。但Kojeve 設(shè)計了WTO,完成了。就成了真理唱遭。從純粹抽象符號和時間的角度來講戳寸,沒有什么東西是真理。因為時間本身就被假設(shè)包括一切不同的可能拷泽。但是疫鹊,一旦時間成為過去袖瞻,沿著時間走的那些東西被你按約定路線完成了。那真理就被建成了拆吆。
According to Godel:
Hegel's logic need not be interpreted as dealing with contradictions.It is simply a systematic way of obtaining new concepts. It deals with being in time. Not Hegel's logic but some parts of it might be related to a proposition (not concept) producing its opposite. For example, if A is defined as in Russell's
paradox (namely, A is the set of all sets that do not belong to themselves), "A belongs to A" produces its opposite. In Hegel, a condition produces its opposite condition in history: that is a process in time, and truth depends on time. Hegel's interpretation is like the figures in a puppet show; the second beats the first down. In terms of the unity of opposites and the idea that contradiction gives direction, antinomies receive a different interpretation. The Russell set becomes a limiting case of a succession of belong-to and not-belonging-to; it is no longer circular.
所以真理從符號角度來講:就是一個實踐建設(shè)的路線圖虏辫。該路線圖對所有的時間內(nèi)的否定因素都有處置,推論出所有的否定都會被再否定到原來的方向锈拨。沿著這個路線圖走砌庄,最后就到了預(yù)定的地點。這個過程就是辯證的否定之否定過程奕枢,也就是所謂的“揚棄”娄昆。你的路線圖是不是真理?你的路線圖好不好缝彬?答案是萌焰,不好的路線圖你把它完成成好的,那么這個路線圖就在所有情況下都是好的了谷浅。這就是否定之否定扒俯。
這個教程的目的就是給出這樣一個路線圖。從第一個字之始一疯,作者已盡可能的考慮了所有字句的錯誤的, 不確定的或者否定的方面撼玄,期待讀者在踐行中辯證,完成本書標(biāo)題的目的墩邀。這個路線圖展示了一個假設(shè)存在的人掌猛,如何24小時內(nèi),從零基礎(chǔ)學(xué)會用swift寫出app store里80%以上級別復(fù)雜度的app眉睹。
第一章:極速學(xué)習(xí)法
以下是幾本極速學(xué)習(xí)法的參考書:
The first twenty 20 hours by Josh Kaufman
Learn more, study less by Scott H Young
The 4 hour chef by Timothy
列舉這幾本參考書和講座資料荔茬。是為了證明極速學(xué)習(xí)這個技術(shù)是存在的。這些書的方法和本教程無關(guān)竹海。這些書的方法也未必適合學(xué) Swift+IOS 8的目的慕蔚。作者的觀點是,沒有統(tǒng)一對各科目都適用的極速學(xué)習(xí)法斋配。本教程就是定制的Swift+IOS8極速學(xué)習(xí)路線圖孔飒。
適合本書目的的極速學(xué)習(xí)方法的幾個原則如下:
1. 去除約束
成見是學(xué)習(xí)的大敵。我們學(xué)習(xí)語言和編程的目的是為了做事许起。不是為了成為計算機(jī)專家十偶。我們要寫小說,不是為了編字典园细。上古時代的計算機(jī)社區(qū),只有計算機(jī)專家才會編程序(甚至只有造計算機(jī)的才會)〗有#現(xiàn)在時代早已不同了∶推担現(xiàn)在的Mac Book, Iphone, Swift, Xcode,....這個強(qiáng)大的社區(qū)狮崩,足夠讓人飛速學(xué)會如何開發(fā)有價值的apps。前提是鹿寻,不要相信技術(shù)語言睦柴。一旦你進(jìn)入熱愛語法糖的技術(shù)控渠道,光是語法兩周你都學(xué)不完毡熏。技術(shù)語言是手冊性質(zhì)的東西坦敌,對學(xué)習(xí)不利。嬰兒不可能靠字典學(xué)說話痢法,哪怕是成語字典狱窘。
2. 反向?qū)W習(xí),正向?qū)W習(xí)财搁,分解任務(wù)
看著你的iphone 上任何一個app 5秒鐘蘸炸,用日常語言,想想這是什么尖奔?你會發(fā)現(xiàn)搭儒,所有app都具有的一個最本質(zhì)的特征(但任何一本 IOS 8 的計算機(jī)專家書籍不會告訴你的):
** 對不同的用戶手指動作序列,制造出由app作者規(guī)定的各種屏幕顯示**
反向?qū)W習(xí)是什么意思呢提茁?就是把你想做的事淹禾,翻譯成一個個分開的手指輸入和你想要的對應(yīng)的屏幕結(jié)果。然后到了不可分的(輸入茴扁,結(jié)果)之后稀拐,你再去查Swift,IOS8手冊和各種搜索引擎,開源代碼等等丹弱〉虑耍或者你直接上論壇發(fā)問題去問。
簡單說躲胳,分兩步走:
1. 要做的事分解成輸入和輸出分任務(wù)
2. 查找蜓洪,抄襲,上論壇提問坯苹,或者查手冊自學(xué)隆檀,如何用Swift+Ios8實現(xiàn)第一步里面的分任務(wù)
這樣做的好處是,因為你第一步里面給的目標(biāo)很明確粹湃。所以每個分任務(wù)只需要極小量的學(xué)習(xí)恐仑。你不會學(xué)習(xí)任何一點冗余的東西。我們舉個例子为鳄,例如你想寫個計算器裳仆,我們假設(shè)這個計算器已經(jīng)寫好了,在你腦子里面有了孤钦。但為了學(xué)習(xí)方便歧斟,我們假設(shè)這個計算器只有四個鍵纯丸,1,0静袖,+, =
現(xiàn)在來分析分任務(wù):
第一個任務(wù):按計算器的圖標(biāo)觉鼻,全屏被打開。
[這個任務(wù)apple已經(jīng)幫你完成了队橙。這屬于正向?qū)W習(xí)的一部分坠陈。任何一個圖標(biāo)被單擊,都會全屏打開捐康。]
第二個任務(wù): 按1+1這三個鍵仇矾,在一塊地方顯示1+1。
[你現(xiàn)在需要反向?qū)W習(xí)吹由,你立即發(fā)現(xiàn)你要查Button的說明書若未,這是IOS 8的內(nèi)容。你還要查顯示的說明書倾鲫。等等粗合。一個一個查∥谖簦看不懂沒關(guān)系隙疚,粘貼到你的項目里,然后少做修改磕道,觀察變化供屉。如果不符合你要求的輸入輸出效果,繼續(xù)修改溺蕉,繼續(xù)觀察伶丐。]
第三個任務(wù): 按=,顯示結(jié)果。
[因為你已經(jīng)在上一步學(xué)會了按鍵疯特。也學(xué)會了怎么變化顯示哗魂。這步你需要學(xué)的就是如何用Swift實現(xiàn)數(shù)學(xué)計算1+1,1+0,...而已。10分鐘你就學(xué)會了]
相信現(xiàn)在你理解了什么叫反向?qū)W習(xí)了漓雅。這里要提醒一點录别,如何把一個復(fù)雜的目的,分解成{按哪個鍵邻吞,顯示什么}的一對對的分任務(wù)很可能是及其困難的组题。這往往取決于你對你要做的事的理解深度。還取決于你懂不懂取悅你的app用戶抱冷。
思考題:如何設(shè)計一個能讓人專注寫作的app? 答案:iAWrite的Blog崔列。
正向?qū)W習(xí)是什么意思呢?在反向?qū)W習(xí)之前徘层,你需要學(xué)習(xí)一點點知識峻呕。不然沒辦法開始使用Mac Book利职。另外趣效,有很少很少的基本swift知識瘦癌,我估計大概是所有人在任何項目都有很大機(jī)會會用到的。這部分集中學(xué)習(xí)下跷敬,或者背下來讯私,比臨時查找更有效率。這部分知識西傀,類似于小學(xué)數(shù)學(xué)斤寇,是每個工程師日常使用最頻繁的∮倒樱或者類似用最常用的1000英語單詞娘锁。
想想看,英語這么復(fù)雜的語言體系饺鹃,80%的網(wǎng)頁莫秆,日常談話,技術(shù)文檔悔详,只使用1000字而已镊屎。Swift之類的計算機(jī)語言遠(yuǎn)比英語簡單,所以其最常用的茄螃,需要正向?qū)W習(xí)的東西缝驳,2小時足夠。學(xué)不會也沒關(guān)系归苍。背下來也行用狱。
3. 建立高質(zhì)量的working flow。
準(zhǔn)備好你的工作環(huán)境對于高效學(xué)習(xí)至關(guān)重要拼弃。閉上眼睛夏伊,設(shè)想下你最舒服的學(xué)習(xí)工作環(huán)境,實現(xiàn)它肴敛。如果不能實現(xiàn)署海,那閉上眼睛,想想什么東西將會在你學(xué)習(xí)時妨礙你使用全部精力医男。預(yù)先消滅它砸狞。如果不能消滅,那么忽視它镀梭。如果無法忽視刀森,那么去改變它。
記錄本报账,筆研底,筆記軟件都要準(zhǔn)備好埠偿。設(shè)想自己的工作流程,什么時候會用什么工具榜晦。什么工具最節(jié)省時間冠蒋,效果最好。這些要預(yù)先選好乾胶,試過抖剿。作出決定。伴隨你的工作流程的工具鏈對學(xué)習(xí)有決定性的影響识窿,盡管這影響你可能看不到甚至短時間內(nèi)感覺不到斩郎。
4. 反饋學(xué)習(xí)
無論正向還是反向,分解出來最小的原子知識之后喻频,你需要邊練邊學(xué)缩宜。
第一步:寫出你此刻要學(xué)習(xí)的原子知識。別急著動手甥温,這步可以讓你集中注意力锻煌,準(zhǔn)備好。
第二步:在計算機(jī)上涂鴉實驗窿侈,先寫幫助文件的例子代碼炼幔。然后自創(chuàng)一些短代碼,看輸入輸出是否符合你的預(yù)期史简。重復(fù)乃秀。
第三步:在筆記上標(biāo)記此點學(xué)習(xí)已經(jīng)完成。復(fù)制粘貼練習(xí)代碼到你的筆記軟件圆兵。