1. 程式人生 > >少兒程式設計scratch畢業後,該學什麼?

少兒程式設計scratch畢業後,該學什麼?

確實,scratch做為一門計算機程式設計啟蒙課程,其主要任務是向少年兒童開啟一扇門,而當孩子們窺探到門後的世界後,就是時候考慮下一步的事情了。

如果這個時候,孩子們仍有興趣想繼續學習計算機程式設計,備選的幾種程式語言大致有,C, java, python, js這些工業級語言。所謂的工業級語言指的是這些語言目前都已經被用於大規模工業化生產中,簡單說就是現在的大的軟體公司,google,facebook,騰訊百度阿里等都在自己的產品中使用這些語言,它們已經經受了許多年實際使用的檢驗,同時自身也在經歷不停的改進和迭代,已經非常成熟了。

下面簡單介紹下這幾種語言:

C語言,是這些語言中最古老的語言了, 於1972年誕生,是一門非常接近機器底層的語言。現在的作業系統如 windows, MacOs, Linux等都是用C開發的。 其接近機器底層的特性決定了C是一門很需要嚴謹的語言,因為稍有錯誤就是崩潰(還記得當年windows的藍屏宕機麼?)。C語言的這些特點決定了,C絕不是一門容易駕馭的語言,是那種需要經過好幾年時間的磨練,然後才敢顫顫巍巍在簡歷中寫上自己“精通C語言”的一門語言。

所以,強烈不建議少兒學習C語言作為入門程式語言!!!

java語言,java語言相比較c來說多了許多靈活性,面向物件,也沒有C那樣地底層,可以用來構建大型系統,對了,android手機上的程式都是用java開發的。

python語言,是我非常喜歡的一種語言,精簡,有成熟的各種周邊支援。有各種人工智慧,機器學習,數學統計分析,爬蟲等支援,藉助這些支援,寫一個簡單的人臉識別程式,也就是10行不到的程式碼。python語言有一種“草稿紙”式的語言特性,不要求語言的使用者要那樣地遵守某種嚴謹的規則,而是像草稿紙一樣可以讓使用者隨心所欲寫寫畫畫,完成自己要解決的問題。語言是為了使用者的思路而服務的,而不是人需要跟著語言的思路走。

Js 語言,js語言是谷歌公司發揚光大的,其特性和python差不多,動態,靈活,高效,豐富的周邊支援,只是其更多應用於網頁技術中,在科學計算,機器學習,人工智慧等方面的支援沒有python豐富。

所以,綜上,我會推薦給那些學習完scratch的孩子學習python。比如用python寫個爬蟲抓取淘寶的一籃子生活必須品的平均價格,持續關注,這樣可以自己計算通貨膨脹指數。

或者用python寫個簡單的人臉識別程式等,寫一個手機App,只能用自己的人臉識別啟動,然後在這個應用裡寫自己的日記之類的東西。 等等許多好玩的東西。

可能有些家長會問,不是應該學習一些演算法知識什麼的麼?

真不需要,所謂的演算法知識資料結構多是一些連結串列,圖,二叉樹,紅黑樹,排序,路徑計算等,相信我,沒有人會在剛開始學程式設計時就會對這些枯燥的東西感興趣的,這些知識可以毫不誇張地成為“程式設計興趣殺手”,基本學個兩三節課後,你就不想學習程式設計了。也許孩子沒有能力反抗家長所安排的課程,但是誰也阻止不了他在內心中認為“程式設計太枯燥,太無聊了”。

就像初學習吉他並不需要學習五線譜和基礎音樂理論一樣,只要知道一首歌怎麼彈,怎麼唱,就可以歡快地唱了,不用糾結太多。而等到彈唱都已經是小菜一碟的時候,想自己寫歌譜曲了,想成為大師了,那時候可以去學習五線譜,音樂理論,這時候有豐富的實際經驗,那些音樂理論就有經驗可以依託可以落地了,否則無實踐基礎上的理論,無異於空中閣樓。

等上面說的各種知其然的知識,已經不能滿足強烈的求知慾的時候,就是去學習各種“知其所以然”的時候了,就是去學習五線譜學習理論學習演算法,學習底層計算機系統知識的時候,去弄清這一切為什麼是這個樣子的,網路到底是什麼,資訊是怎樣從一臺計算機到另一個人的手機中去的,為啥計算機能認出我的臉來,等等等等,有無數個為什麼在鬧鐘盤旋,想弄清楚的時候,孩子們才會有勇氣面對稍顯枯燥的底層知識,才能勇敢去克服,(其實成人也是一樣)。

這方面我有一個切身的經驗,大學時我非常不想學高等數學,線性代數,微積分之類的課程,並且真是搞不懂那些枯燥的玩意,那些枯燥的天書一樣的符號到底是要用來幹嘛的,一個大數到底能不能分解成兩個素數之和,和我到底有啥關係,能分解咋的,不能分解又咋的,微積分積出來怎樣,積不出來又怎麼樣,是不是所有人都瘋了,一定要學這些沒用的玩意,用來是幹啥的。所以,我就盡力把這些課程分數維持在及格線上,真是多考一分都覺得是浪費。

而當工作許多年後,在我想深入學習密碼學時,才知道這裡面需要那麼多的數論知識,當我想學習人工智慧時,裡面又都是線性代數,概率,統計理論等高等數學。 我去,感覺就好像被誰欺騙了一樣,我就不明白,當年為啥不能先讓我學密碼學,學人工智慧呢,也好讓我先接觸這麼有意思的學科,然後然後有動力去為此而學習底層數學知識呢,就不能理論實踐同步向前走麼?

小吐個槽,這也是我推薦孩子們先學習python後如果有興趣再學習C的原因。

始發於微信公眾號: 程式設計之星