歷時半年時間,把 Daniel Shiffman 的 《The nature of code》 通讀2遍,第一遍快速瀏覽,第二遍編碼實操,極大了提升了自己實際問題代碼抽象化的能力,遂做此小結(jié)。
為什么要學(xué)Processing
Processing是一款所編即所得的軟件,使用語言是Java,軟件內(nèi)置各種圖像工具,可以很快的編碼出圖像類的交互形態(tài),非常合適新手入門代碼,或編碼展示交互原型。
可以學(xué)到什么
1.偽碼的邏輯性
不同語言有不同的語法,但其背后的邏輯是相通的。因此編碼前,注重鍛煉自己的偽碼思考能力。當偽碼邏輯順暢后,編碼只是將邏輯語言轉(zhuǎn)化成代碼語言。碰到問題,先從偽碼思考邏輯,能極大的提高自己的實際問題代碼抽象化的能力。
2.面向?qū)ο缶幊趟枷?/b>
面向?qū)ο缶幊趟枷敫拍畋旧韺W(xué)起來不難。將某個任務(wù)抽象成幾個對象,對象有其自身的屬性,對象間通過方法發(fā)生交互。難點在于如何抽象對象這一步,抽象的好,代碼邏輯清晰,復(fù)雜度小。抽象的差,邏輯冗余,復(fù)雜度高。這一點在于多實操,多實踐能打通腦回路中的閉塞模塊。
3.死磕BUG的毅力
古人云:“寫代碼一半的時間都在寫B(tài)UG,剩下的一半是在修BUG”。筆者深以為然。當偽碼邏輯整理通順后,自信流暢的書寫完代碼,按下Run鍵,滿心期待著跑通效果,一堆 Error 讓你懷疑人生。沒有選擇,挨個Debug,直至跑通。人生何嘗不是如此呢,道理皆知,實操問題頻出,不死磕,便不能克服這個難點,咬咬牙,Print error。
學(xué)習(xí)成果展示
結(jié)合隨機函數(shù)形成隨機漫步的效果

結(jié)合向量熟悉平面中位置,速度,加速度的二維屬性

利用物理學(xué)基礎(chǔ)原理模擬物體在現(xiàn)實世界中的運動

結(jié)合弧度制,sin,cos,實現(xiàn)波形效果

結(jié)合繼承和多態(tài),實現(xiàn)粒子效果

確定目標情況下,感知外界環(huán)境,做出判斷

根據(jù)固定規(guī)律進行迭代進化

結(jié)合遞歸,進行規(guī)則圖形的繪制

根據(jù)優(yōu)勝劣汰進化算法進行迭代進化

通過測試集訓(xùn)練算法

展望
人工智能相關(guān)的技術(shù)不斷前進著,作為技術(shù)迭代的見證者,還是要利用業(yè)余時間多關(guān)注相關(guān)領(lǐng)域的知識。希望下一次能跟大家分享學(xué)習(xí) Android 或 Fullter 的感受。
附件
1.The nature of code 下載地址(提取碼:6yqw)
2.Github 筆者代碼地址