什麼樣的編程主題適合沒接觸過編程的同學?
我想寫一些具體的編程相關的內容給潛在的程序員,激發大家的編程熱情,讓文科生也能輕鬆了解編程,認識到計算機的美。
這個想法來源於一個小朋友問我電影和遊戲的效果那麼逼真,是怎麼做出來的,然後我解釋了一通。當然啦,理論的解釋總是沒啥大用的。。。紙上學來尚且不知深淺,何況聽我口頭說來。所以我覺得寫點具體的東西,最能讓人體驗到計算的美麗和編程的神奇之處。我認為玩樂是人類的天性,大多數人因為沒有途徑接觸編程,所以對它是一種很神奇的眼光在看,親自體驗編程後,說不定很多人都會開發出了不起的超能力呢。那麼問題來了,什麼樣的主題適合讓人感受到神奇的體驗呢?鑒於問題來源是電影特效,我覺得cg(計算機圖形)是一個很好的切入點,而且圖是普通人每天都能切身接觸到的東西,用代碼從無到有渲染各種漂亮的圖形和視效更是想想就excited。還想到一個主題是網站,大家每天都會上各種網站,所以教教怎樣做出一個網站也是很有趣的事情(其實我一點都不覺得有趣啦。。但是未來明星很可能從學做網站成長啊)。雖然ror版本更迭快得離譜,但是頂不住它方便好用適合新手,所以如果主題是做網站,我可以做個配置好ror的虛擬機鏡像讓大家用鏡像學著玩。。。。 還有就是可以做一個模擬的電路教小朋友做cpu,不過這個對小朋友來說就是沒啥成就感。。。其實還可以做遊戲玩,不過這是我的私貨。。。。而且不喜歡遊戲的同學會覺得無趣。像是網路編譯器什麼的,太過抽象且都是黑乎乎的東西,不太能吸引沒接觸過編程的同學。所以我只能想到圖形渲染和網站製作。 歡迎大家提供寶貴意見。
也許processing是一個不錯的切入點,尤其是對視覺藝術感興趣的文青。
我初中的時候拿到我媽的一塊casio的計算器,注意是計算器。有編程功能(但是當時
還不知道編程啥意思)。有幾個存儲器可以當變數用,有個內置的循環,然後我居然鼓搗了一個1累加到100的函數出來,算了好久才給答案,
然後我一狠心從1加到10000,然後睡覺去了,第二天早上發現計算器燙得很,還是沒結果,
後來到高中老師講編程,我才發現原來我早干過類似的事情,於是編程課有勁得很。http://code.org 上就有很多資源啊,除了非常卡通的適合小朋友的界面以外,還有python 和 iphone game的入門,都是通過頁面模擬和交互引導你一步步往下走。
說實話,那些適合小盆友的遊戲我自己都覺得非常entertaining
看到這個問題,裡面的幾個關鍵詞:沒接觸過編程,激發熱情,文科生,小朋友,我首先想到的是用Javascript來教學。
- JS是動態語言,入門容易上手快,上來不用太多規則;
- JS無需編譯,省去了各種複雜的配置;
- JS的容器就是瀏覽器,展現各種效果都直觀的很;
- JS可以做出各種神奇的東西,從網頁效果到遊戲都能做。
至於做什麼,其實我覺得蕭大你已經都提過了,建議還是遊戲和網站,這兩個受眾最廣,最容易引起興趣,cg什麼的,比起遊戲,趣味性沒有更高,而複雜度更高一些。
- 用Javascript實現的2048
- 用Javascript實現的俄羅斯方塊
- 用HTML5和Javascript實現的3D賽車,相當酷炫
- 用Javascript實現的一個冒險遊戲,很有意思
- 最後,推薦一個github上的js遊戲教程集合
除了遊戲之外,能用Javascript做的有趣東西還有很多,比如模擬一個shell,做一個nes模擬器,做一個Chrome擴展應用等,都是很有趣很有成就感的。github上Javascript的項目是最多的,蕭大肯定能找到很多有趣的素材,不用多說了。
除此之外,還可以用Python做個爬蟲,按自己的需求搜刮出神奇的數據也是一個思路。
Free Web Development Courses
RPG Maker,純事件流,不用敲代碼,點幾下滑鼠就能寫出不錯的遊戲。還能接觸到條件語句循環語句變數數組這些基本概念。
有個http://codecombat.cn還不錯 可以玩著遊戲就學習編程了 賬號在bugmenot上面可以找到 教程在網易雲課堂可以找到
說下小白(我)的想法:
1、一開始做東西,容易上手,可操作性高很重要。
2、學東西一定要可以不斷積累成就感,才可能長久。個人覺得 CG(Computer Graphics)是比較好的方向(我也正在補基礎,準備學習,所以吐血推薦),以下說原因:
1、可操作性高、容易用度方面:CG 或許比 Web 差一些,但是環境 Win + VS / Linux + gxx / Mac + Xcode 也很容易搭起來 ,導入一些 demo 很快也能看到效果。2、成就感方面:CG 比 Web 學習曲線更陡峭,Web 可以直接從代碼效果開始,但 CG 需要一定的前置知識:數學、CS、編程以及演算法基礎。(以蕭大指導男程序員豐富經驗,把這些知識說得有趣又簡單應該可以信手捏來)CG 比 Web 學習路徑更綿長,這裡並不是說 Web 到後期沒更深入的事情,而是說要做 Web 系統級別的開發,需要到實際的企業需求中去鍛煉才見成效;但是搞 CG,基本一台電腦就可以完成大部分工作,工作相關的需求更高。看起來像都是說了 CG 比 Web 不足的地方,但是反過來看,基礎性的東西才是能長期積累的東西。到學習後期,基礎決定了學習者(程序員)分析問題的高度,真正學過數學、CS、編程以及演算法基礎的跟沒學過的,思考問題維度上就差很多。國外一個不允許打包下載的hentai漫畫在線瀏覽站,通過了解HTML的構成結構與正則表達式,實現簡單的一鍵漫畫下載。
alert(123);
彈個一百遍,也是其樂無窮。
當然了,開玩笑的,可以 寫一個html5,css3結合的動態。jQuery書本翻頁動畫效果DEMO演示想編程的話,光覺得好玩還是不行的,要享受邏輯轉換所帶來的樂趣,不建議小學生進行所謂的編程,邏輯都沒有完全成熟,編程也 好不到哪兒去。以下可以:
html炫酷特效
cg...不帶數字演算法視覺很炫酷的東東演算法,設計模式之類勿用
遊戲咱是小學自己看了學習機的說明書然後學會BASIC的喵~大概這算比較好入門的語言了吧喵~
別說你比小學生都不如喵~遊戲
過關彈出乾貨
根據乾貨做任務,不定期驚喜加成~微信公號的話,找個聲優講課擺POSE效果更佳~激發入門的興趣,不僅要即時反饋,而且要正反饋,很快能看到成果。所以入門肯定是和GUI沾邊的領域。
入門必須是HTML+CSS寫個頁面,布局美觀點,稍微帶點動態效果。然後給按鈕添加一些事件,就可以涉及JS方面的知識了。有個記事本就能寫,瀏覽器自帶調試器,環境依賴太小了。
許式偉曾經在微博中說過iOS開發也是很好的選擇。
推薦閱讀:
※為什麼沒有食品把轉基因作為賣點來做廣告?
※打火機能否燒掉鑽石?
※韓國最近新玩意"杯具熊"的運作原理是什麼?
※有哪些以科學為主題的歌曲?
※可樂里充丙烷(丁烷)氣體做成「火箭」是什麼原理?