什麼樣的編程主題適合沒接觸過編程的同學?

我想寫一些具體的編程相關的內容給潛在的程序員,激發大家的編程熱情,讓文科生也能輕鬆了解編程,認識到計算機的美。

這個想法來源於一個小朋友問我電影和遊戲的效果那麼逼真,是怎麼做出來的,然後我解釋了一通。

當然啦,理論的解釋總是沒啥大用的。。。紙上學來尚且不知深淺,何況聽我口頭說來。

所以我覺得寫點具體的東西,最能讓人體驗到計算的美麗和編程的神奇之處。

我認為玩樂是人類的天性,大多數人因為沒有途徑接觸編程,所以對它是一種很神奇的眼光在看,親自體驗編程後,說不定很多人都會開發出了不起的超能力呢。

那麼問題來了,什麼樣的主題適合讓人感受到神奇的體驗呢?

鑒於問題來源是電影特效,我覺得cg(計算機圖形)是一個很好的切入點,而且圖是普通人每天都能切身接觸到的東西,用代碼從無到有渲染各種漂亮的圖形和視效更是想想就excited。

還想到一個主題是網站,大家每天都會上各種網站,所以教教怎樣做出一個網站也是很有趣的事情(其實我一點都不覺得有趣啦。。但是未來明星很可能從學做網站成長啊)。雖然ror版本更迭快得離譜,但是頂不住它方便好用適合新手,所以如果主題是做網站,我可以做個配置好ror的虛擬機鏡像讓大家用鏡像學著玩。。。。

還有就是可以做一個模擬的電路教小朋友做cpu,不過這個對小朋友來說就是沒啥成就感。。。

其實還可以做遊戲玩,不過這是我的私貨。。。。而且不喜歡遊戲的同學會覺得無趣。

像是網路編譯器什麼的,太過抽象且都是黑乎乎的東西,不太能吸引沒接觸過編程的同學。

所以我只能想到圖形渲染和網站製作。

歡迎大家提供寶貴意見。


也許processing是一個不錯的切入點,尤其是對視覺藝術感興趣的文青。


我初中的時候拿到我媽的一塊casio的計算器,注意是計算器。有編程功能(但是當時

還不知道編程啥意思)。

有幾個存儲器可以當變數用,有個內置的循環,然後我居然鼓搗了一個1累加到100的函數出來,算了好久才給答案,

然後我一狠心從1加到10000,然後睡覺去了,第二天早上發現計算器燙得很,還是沒結果,

後來到高中老師講編程,我才發現原來我早干過類似的事情,於是編程課有勁得很。


http://code.org 上就有很多資源啊,除了非常卡通的適合小朋友的界面以外,還有python 和 iphone game的入門,都是通過頁面模擬和交互引導你一步步往下走。

說實話,那些適合小盆友的遊戲我自己都覺得非常entertaining


看到這個問題,裡面的幾個關鍵詞:沒接觸過編程激發熱情文科生小朋友,我首先想到的是用Javascript來教學

  1. JS是動態語言,入門容易上手快,上來不用太多規則;
  2. JS無需編譯,省去了各種複雜的配置;
  3. JS的容器就是瀏覽器,展現各種效果都直觀的很;
  4. 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開發也是很好的選擇。


推薦閱讀:

為什麼沒有食品把轉基因作為賣點來做廣告?
打火機能否燒掉鑽石?
韓國最近新玩意"杯具熊"的運作原理是什麼?
有哪些以科學為主題的歌曲?
可樂里充丙烷(丁烷)氣體做成「火箭」是什麼原理?

TAG:科普 | 編程 | 計算機 |