馬來人:再問問兄貴,中學娃,計算機基礎課,從哪裏開始,操作係統,組成,數據庫,算法,不會微積分,哪裏入手?
微積分,據我經驗,僅僅在 ML機器學習,和Graphics 中用到。其他方麵幾乎碰不到。
中學可以從下麵4個地方,任何一個方麵開始:
1)先學一門編程語言,推薦 Python 或者 Java,我個人十分推崇 Python,但是 學習 Java,一石二鳥,可以考 AP CSA
2)先學 計算機基本原理,這個也有兩個路子來學,一個是 按 AP computer science principles 的 課程來學,一個是 按 acsl.org 的 內容來學 https://www.acsl.org/get-started/study-materials
3)也可以先學 數據庫基本知識。我兒子是初中時先學 SQL 開始了,參加了 BPA SQL 競賽。雖然 SQL 不是一門通用語言,但是 SQL語言更接近英語,語法相對簡單,易於理解,而且非常有用,還有就是培養了孩子 structural thinking 和 declarative thinking。SQL 語言,按老的劃分是第四代語言,你需要的是告訴數據庫你要什麽,而不是如何做
4)也可以從 JavaScript 開始學,如果對網頁感興趣。JavaScript 現在特別強大,不僅可以在 client side運行,也可以在 server side運行,也可以編寫 手機app,特別適合編寫一些 game 程序,又特別容易,因為它不是 strongly typed 的 dynamic語言,我小孩沉溺於編程,是從JavaScript開始的,不是從SQL開始的。
總之,在整個學習過程中,激發,保持,維護小孩對 CS 的興趣,是非常重要的。如果孩子喜歡 Scratch之類的,也很好,我女兒隻喜歡 Scratch,其他語言沒有興趣。
至於算法,計算機組成,操作係統,應該在上麵這些熟悉後再學習。
算法是CS重點,需要好好學。大學期間還要反複學,算法基本上是學無止境。
計算機組成可以留到大學再學,因為那是必修課。
而操作係統 需要在計算機語言,算法,和組成都十分熟悉後才能學,不要急著學。