- 執劍而舞:用代碼創作藝術
- (美)戈蘭·萊文等
- 1606字
- 2024-05-10 13:42:25
推薦序一
Casey Reas
2020年6月
如果我剛開始學習編程的時候有這樣一本書,那么此時的世界將完全不同。開始學編程的三年里,我一直在斷斷續續地學習——自學加上1997年參加的晚間編程補習班,但當時并沒有任何資源專門講解如何學習視覺藝術的編程。我的課程中只有數學運算與文本處理的編程實例和練習。這些編程練習挺難,也挺無趣,但是我知道,如果我要做自己想做的東西,就必須學會各種編程技巧。
在學完補習課程并且最終學到足夠的C語言知識之后,我真正開始了視覺藝術的編程之旅,然后,整個世界都變了。我的夢想開始啟航,我在接下來幾周內學到的東西,比以前幾個月學到的都要多。我把編程實驗的結果統合在一起,形成了實驗集《反應006》(Reactive 006)。這個實驗集成為我的敲門磚,讓我在1999年進入了麻省理工學院媒體實驗室,成為John Maeda領導的藝術+計算研究組(Aesthetics + Computation Group, ACG)的成員。ACG就是我夢想起飛的地方。ACG作為一個小型研究組,里面有藝術家、設計師和程序員,大家共同探索新的跨界融合方式。2001年,Ben Fry和我為Processing 1.0制作了一部分實例。我在ACG工作了兩年,這段經歷幫助我明確了未來的方向,也引領我首次開始嘗試講授創意編程。
正如我在開篇所講到的,計算機科學所使用的教學方式并不適合視覺藝術的學生。因此,像我這種給視覺藝術專業和設計專業教課的教師,需要按照學生的思路開發新的教學方式。這也就意味著,需要解構現在的教學方法,并用新的方式加以建構。我從John Maeda所著的《數字設計》(Design By Numbers)中的練習開始,在每年的課程中反復調整,逐年改進,并不斷添加或刪除作業和練習,確保編程和創意之間的平衡。我把課程講義與其他課程相比較時發現,這門課程同其他計算機科學課程完全不同。
2011年的首屆Eyeo藝術節是一個重要時刻。當時藝術家、設計師、教育家和技術專家首次在明尼阿波利斯齊聚一堂。藝術家在2013年首次召開了“代碼+教育”峰會,讓大量教育工作者有機會發聲。Tega和Golan參加了全天的會議,并提出大量關于創意編程課程的設計建議。從此以后,大量教育工作者開始研究教授創意編程的技巧和策略。本書就是對這些寶貴經驗的首次總結,也希望分享給新一代教授創意編程的教師。
偉大的藝術作品讓人銘記,但是藝術家如何學習編程則沒有人關心。我們的網絡課程由于網址和服務器經常更換,所以資料常常丟失。Johannes Itten通過他的《設計與形式》(Design and Form)一書開啟了包豪斯藝術的教育之門。我們這本書也在做類似的事情。根據我們的教育實踐,這本書將通過各種作業和練習開展創意編程教學。
和其他編程學習過程一樣,學生都需要先閱讀教材,再學習編程。然而現在所有的教材都會糾結于使用哪種語言,因為選定了編程語言,就縮小了讀者的范圍,把特定的教師和學生排除在外。Tega和Golan發現了這種困境,并提出了“代碼是創意媒介”的觀點,剔除編程語言的限制——因此本書不再包含代碼。秉承這個觀念,就能夠聚焦于代碼和藝術相關的更高層面的概念,而不用再去解釋編程的具體技術原理。像色彩、素描、風景、自畫像等主題,成為這本書的重點,而像變量、函數、矩陣等技術細節則成為次要的東西。這是一次非常重要和充滿激情的轉變。這使得創意編程教材不會變得單調乏味!
如何讓“創意人群”參與到編程中來?畢竟編程對他們來說是很奇特的方式。我們如何讓“程序員”參與到復雜的視覺藝術中來?本書用作者過去30年在視覺藝術領域的教學成果,來回答上面兩個不相干的問題。它不僅為學生提供了關于新型創作方式的指導,也為教育者提供了新的挑戰和創作靈感。我已經教了20多年視覺藝術,但仍然能夠在這本書中學到新東西。這本書中有足夠多的素材,足以支撐多種多樣的藝術課程。除此以外,書中的資料還可以用來開設周末專題補習班,或者給高中生開一門創意編程的新課,又或者開啟一個技能認證項目。創意編程是一個快速進化的新領域,而本書就是一座寶庫。
感謝Tega和Golan為視覺藝術教育社區提供了大量真知灼見,引入了各類資源。過去20年,如幻亦如電。讓這本書成為我們新時代的指南,讓我們向前走得更遠。
- C#高級編程(第10版) C# 6 & .NET Core 1.0 (.NET開發經典名著)
- Angular UI Development with PrimeNG
- MATLAB 2020 從入門到精通
- Python Tools for Visual Studio
- Python零基礎快樂學習之旅(K12實戰訓練)
- 實戰低代碼
- GitLab Repository Management
- SAS數據統計分析與編程實踐
- QGIS:Becoming a GIS Power User
- 程序是怎樣跑起來的(第3版)
- 小學生C++創意編程(視頻教學版)
- 基于Struts、Hibernate、Spring架構的Web應用開發
- OpenMP核心技術指南
- Anaconda數據科學實戰
- Learning Grunt