1. 兒童電腦編程教學入門教程
第一階段:1、計算機操作基礎(chǔ)2、Office辦公自動化3、計算機組裝與維護4、素描、速寫5、動畫色彩第二階段:1、攝影基礎(chǔ)2、圖像處理基礎(chǔ)Photoshop3、影視劇本創(chuàng)作4、微電影拍攝與技巧5、Sony Vegas視頻剪輯6、Flash動畫設(shè)計與制作7、動畫運動規(guī)律
2. 兒童編程 電腦
先說編程貓,我之前給我孩子也報的編程貓,因為確實他家的課程是挺不錯的,課程也有趣,動畫比較多,像看動畫片一樣,但是整個學下來學費真的太貴了,課程學下來要幾萬,對于初學編程來說不太劃算,孩子學了之后對編程的興趣也比較大,但是考慮到經(jīng)濟原因,想繼續(xù)學,不得不另選別家。
但是從小學編程真的很有必要,因為編程鍛煉的邏輯思維塑成關(guān)鍵期是在兒時,而不是成年,孩子在小時候他的創(chuàng)造力在有效引導下很容易被釋放出來,到了成年,很容易受固有思維的影響,再去打破原有思維創(chuàng)新真的很難,如果從小時候就有意去激發(fā)孩子的創(chuàng)造力和鍛煉邏輯思維能夠為以后的學習和工作都能打下良好的基礎(chǔ)。
在報編程班之前,我也了解了一下,給孩子報編程班到底值不值得,其實是值得的。
少兒編程已成為全球趨勢
1、2014年,
美國
白宮《STEAM人才培養(yǎng)國家整合策略》編列預(yù)算4.5億美元建設(shè)中小學STEAM項目2、
英國
教育改革中明確規(guī)定5-16歲兒童將開始學習編程,英國政府將編程知識引入學校課本,并成為必修課,目的是讓學生掌握必要的計算機思維和創(chuàng)造性。3、2012年起,編程成為
日本
中小學生的學習課程,近年來,日本小學生在各類軟件大賽中斬露頭角4、2017年起,
新加坡
在中小學考試中加入編程科目那國內(nèi)呢?
我查閱資料了解到,
近9年來國家正在努力地推進中小學編程教育。
2013年,浙江省提出將信息技術(shù)(包含編程)正式納入高考。
2017年7月,國務(wù)院宣布:「即日起,從小學教育,中學科目,到大學院校,通通逐步新增人工智能課程,建設(shè)全國人才梯隊」,以此倡導在基礎(chǔ)教育階段開展少兒編程教育。
2017年10月,《十九大報告》中指出,要建設(shè)網(wǎng)絡(luò)強國,培養(yǎng)造就一大批具有國際水平的戰(zhàn)略科技人才、科技領(lǐng)軍人才,青年科技人才。
2018年,教育部高中新課標方案發(fā)布,人工智能進入高中信息技術(shù)課程,編程技術(shù)納入高考范圍。
重慶晨報發(fā)布:編程課進入中小學,3年級開始學。所以我覺得編程教育確實是比較重要和熱門的行業(yè)
編程已經(jīng)成為了孩子在升學就業(yè)領(lǐng)域的又一大競爭力,孩子在
學習編程的過程中,還可以接觸到英語,數(shù)學,物理,化學,語文,音樂,真正做到跨學科的融合,邏輯思維也能得到很好地鍛煉,在系統(tǒng)地學完之后,可以做出一個app,人臉識別,短信發(fā)送器,甚至可以自己通過編程遙控無人機。而且,因為編程證書的稀缺和珍貴,在小升初的時候還能作為選取優(yōu)秀中學的加分項,確實能夠給孩子增強競爭力。
如果你家孩子也學編程的話,我還是推薦跟著老師系統(tǒng)地學習,有老師指導,孩子知識吸收得快。但是編程班價格高低不齊,如果孩子剛接觸,家長最好不好隨意砸錢,錢又不是大風刮來的,還是用得物盡所值最好。
我也是一番比較,選了一件還不錯的,在同等師資力量、課程體系下,他的性價比高,試錯成本比較低,有興趣的話,可以了解一下,一節(jié)課十幾塊,也不貴,普通家庭也能承受得起,還送了119的實物學習套裝。粉了
有興趣的可以
了解一下
3. 兒童電腦編程培訓的內(nèi)容
少兒編程是指通過計算機程序語言,讓孩子們在操作計算機的過程中,學會用不同的方式去理解和表達。少兒編程就是讓你的孩子更有興趣去學習編程。少兒編程主要目的就是培養(yǎng)一個寶寶的動手能力和邏輯思維能力。
少兒編程的學習一般都以動手操作和數(shù)學建模等為主要學習方式,在通過實踐鍛煉之后,將會對今后所從事的職業(yè)提供幫助,對于現(xiàn)在來說將會有很大的幫助。
少兒編程主要培訓內(nèi)容就是一些日常操作和所使用到的程序或者指令,對于將來他們從事工作也會有很大幫助。
4. 兒童電腦編程培訓學校
極客晨星好。
極客晨星隸是新東方投資的少兒編程教育機構(gòu),于2016年8月由海外知名計算機專業(yè)人士創(chuàng)辦,擁有海外高端名師團隊,致力于為中國兒童提供優(yōu)質(zhì)的編程教育服務(wù),創(chuàng)意的漸進式學習方法,讓孩子有逐步由興趣向?qū)崙?zhàn)代碼自然進階。極客晨星,深受大眾的歡迎。
5. 兒童電腦編程入門自學書籍
1、《計算機基礎(chǔ)(第二版)》——姜巖、王秀玲
本書介紹了信息與計算機的基礎(chǔ)知識、Windows XP操作系統(tǒng)的基本操作和基本使用知識、Word2003文字處理軟件的基本知識、Excel 2003電子表格處理軟件的基本知識和PowerPoint 2003文檔演示軟件等知識做了簡單的介紹。
2、《計算機應(yīng)用基礎(chǔ)》 ——劉錫軒、丁恒、侯曉音
本書是為非計算機專業(yè)類學生提供計算機一般應(yīng)用所必需的基礎(chǔ)知識、能力和素質(zhì)的課程。本書滿足普通高等院校培養(yǎng)“應(yīng)用型人才”的教學宗旨,內(nèi)容豐富,與時俱進,實用性強。
3、《計算機應(yīng)用基礎(chǔ)》——楊飛宇,孫海波
本書主要介紹了計算機組裝與維護、計算機網(wǎng)絡(luò)技術(shù)、電子文檔制作、電子報表制作和演示文稿制作。
4、《計算機應(yīng)用基礎(chǔ)》——張 明、王 翠、張和偉
本書采用任務(wù)驅(qū)動的方式進行編寫,內(nèi)容強調(diào)操作性和實用性。全書涵蓋計算機基礎(chǔ)知識、Windows XP操作系統(tǒng)、Word 2003文字處理軟件、Excel 2003電子表格處理軟件和PowerPoint2003演示文稿制作軟件等內(nèi)容。
5、《深入理解計算機系統(tǒng)》————布賴恩特
本書主要介紹了計算機系統(tǒng)的基本概念,包括最底層的內(nèi)存中的數(shù)據(jù)表示、流水線指令的構(gòu)成、虛擬存儲器、編譯系統(tǒng)、動態(tài)加載庫,以及用戶應(yīng)用等。書中提供了大量實際操作,可以幫助讀者更好地理解程序執(zhí)行的方式,改進程序的執(zhí)行效率。
6、《計算機應(yīng)用基礎(chǔ)》——武馬群
本書主要介紹了計算機基礎(chǔ)知識、操作系統(tǒng)Windows XP、因特網(wǎng)(Internet)應(yīng)用、文字處理軟件Word 2003應(yīng)用、電子表格處理軟件Excel 2003應(yīng)用、多媒體軟件應(yīng)用、演示文稿軟PowerPoint2003應(yīng)用等內(nèi)容。
6. 兒童編程電腦操作軟件
CATIA是法國達索飛機公司開發(fā)的高檔CAD/CAM軟件。CATIA軟件以其強大的曲面設(shè)計功能而在飛機、汽車、輪船等設(shè)計領(lǐng)域享有很高的聲譽。CATIA的曲面造型功能體現(xiàn)在它提供了極豐富的造型工具來支持用戶的造型需求。比如其特有的高次Bezier曲線曲面功能,次數(shù)能達到15,能滿足特殊行業(yè)對曲面光滑性的苛刻要求。
7. 小孩電腦編程入門先學什么
You can code. They cannot. That is pretty damn cool.– Learn Python The Hard Way
在你學習編程之前思考一下你的目標,當你有最終目標時道路會更加的清晰。那么,你想要寫什么?網(wǎng)站?游戲?iOS或者Android應(yīng)用?或是你是想自動化完成一些乏味的任務(wù)讓你有更多的時間看窗外的風景?也許你只是想更具有就業(yè)競爭力找個好工作。所有的這些都是有價值的目標,這些目標都是你編程學習推動力的一部分,沒有推動力的人,是無法在略顯枯燥的漫長學習之旅中走遠的。
不要浮躁
Bad programming is easy. Even Dummies can learn it in 21 days. Good programming requires thought, but everyone can do it and everyone can experience the extreme satisfaction that comes with it.
不管是在線下還是線上的書店,滿目都是《21天學通Java》這種速成書目,它們都承諾在很短一段時間內(nèi)就讓你能夠?qū)W會相關(guān)技術(shù)。Matthias Felleisen在他的著作 How to Design Programs, Second Edition 一書中明確指出了這種「速成」的趨勢并予以了以上的諷刺。
所謂的「捷徑」或者說「銀彈」是不存在的,智者說過,精通某個東西需要10年或10000個小時,也就是漢語中的「十年磨一劍」,所以不用著急,功不唐捐。
培養(yǎng)興趣
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.
– Linus Torvalds
沉醉于編程,編程更是為了興趣。興趣是推動力的不竭源泉,保持這種充滿興趣的感覺,以便于你能將其投入到你的10年/10000小時的編程時間中。編程很有趣,那是探索的喜悅。那是創(chuàng)造的喜悅。看到自己親手完成的作品顯示在屏幕上很有趣。有人為你的代碼而驚嘆很有趣。有人在公共場合稱贊你的產(chǎn)品、鄰居使用你的產(chǎn)品、以及在媒體上討論你的產(chǎn)品很有趣。編程應(yīng)該十分有趣,若并非如此,就找出導致編程無趣的問題,然后解決之。
這幅圖取自 Douglas Hofstadter 的著作G?del, Escher, Bach。圖中的每一個字母都由其他更小的字母組成。在最高層級,我們看的是"MU",M 這個字母由三個HOLISM(整全觀)構(gòu)成,U則是由一個REDUCTIONISM(還原論)構(gòu)成,前者的每一個字母都包含后者的后者整個詞,反之亦然。而在最低層級,你會發(fā)現(xiàn)最小的字母又是由重復(fù)的"MU"組成的。
每一層次的抽象都蘊含著信息,如果你只是幼稚地單一運用整體論在最高層級觀察,或運用還原論觀察最低層級,你所得到的只有"MU"(在一些地區(qū)的方言中mu意味著什么都沒有)。問題來了,怎樣才能盡可能多的獲取每個層級的信息?或者換句話說,該怎樣學習復(fù)雜領(lǐng)域(諸如編程)包含的眾多知識?
教育與學習過程中普遍存在一個關(guān)鍵問題:初學者們的目標經(jīng)常過于傾向整全觀而忽略了基礎(chǔ),舉個常見的例子,學生們非常想做一個機器人,卻對背后的
理解物理模型 → 理解電子工程基礎(chǔ) → 理解伺服系統(tǒng)與傳感器 → 讓機器人動起來
這一過程完全提不起興趣。
在這里對于初學者有兩個大坑:
如果初學者們只與預(yù)先構(gòu)建好的「發(fā)動機和組件」接觸(沒有理解和思考它們構(gòu)造的原理),這會嚴重限制他們在將來構(gòu)建這些東西的能力,并且在診斷解決問題時無從下手。
第二個坑沒有第一個那么明顯:幼稚的「整體論」方法有些時候會顯得很有效,這有一定的隱蔽性與誤導性,但是一兩年過后(也許沒那么長),當你在學習路上走遠時,再想回過頭來「補足基礎(chǔ)」會有巨大的心理障礙,你得拋棄之前自己狹隘的觀念,耐心地緩步前進,這比你初學時學習基礎(chǔ)知識困難得多。
但也不能矯枉過正,陷入還原論的大坑,初學時便一心試圖做宏大的理論,這樣不僅有一切流于理論的危險,枯燥和乏味還會讓你失去推動力。這種情況經(jīng)常發(fā)生在計算機科班生身上。
為了更好理解,可以將學習編程類比為學習廚藝:你為了燒得一手好菜買了一些關(guān)于菜譜的書,如果你只是想為家人做菜,這會是一個不錯的主意,你重復(fù)菜譜上的步驟也能做出不賴的菜肴,但是如果你有更大的野心,真的想在朋友面前露一手,做一些獨一無二的美味佳肴,甚至成為「大廚」,你必須理解這些菜譜背后大師的想法,理解其中的理論,而不僅僅是一味地實踐。但是如果你每天唯一的工作就是閱讀那些厚重的理論書籍,因為缺乏實踐,你只會成為一個糟糕的廚子,甚至永遠成為不了廚子,因為看了幾天書后你就因為枯燥放棄了廚藝的學習。
總之,編程是連接理論與實踐的紐帶,是計算機科學與計算機應(yīng)用技術(shù)相交融的領(lǐng)域。正確的編程學習方法應(yīng)該是:通過自頂而下的探索與項目實踐,獲得編程直覺與推動力;從自底向上的打基礎(chǔ)過程中,獲得最重要的通用方法并鞏固編程思想的理解。
作為初學者,應(yīng)以后者為主,前者為輔。
啟蒙
「學編程應(yīng)該學哪門語言?」這經(jīng)常是初學者問的第一個問題,但這是一個錯誤的問題,你最先考慮的問題應(yīng)該是「哪些東西構(gòu)成了編程學習的基礎(chǔ)」?
編程知識的金字塔底部有三個關(guān)鍵的部分:
算法思想:例如怎樣找出一組數(shù)中最大的那個數(shù)?首先你得有一個 maxSoFar 變量,之后對于每個數(shù)…
語法:我怎樣用某種編程語言表達這些算法,讓計算機能夠理解。
系統(tǒng)基礎(chǔ):為什么 while(1) 時線程永遠無法結(jié)束?為什么 int *foo() { int x = 0; return &x; } 是不可行的?
啟蒙階段的初學者若選擇C語言作為第一門語言會很困難并且枯燥,這是因為他們被迫要同時學習這三個部分,在能做出東西前要花費很多時間。
因此,為了盡量最小化「語法」與「系統(tǒng)基礎(chǔ)」這兩部分,建議使用 Python 作為學習的第一門語言,雖然Python對初學者很友好,但這并不意味著它只是一個「玩具」,在大型項目中你也能見到它強大而靈活的身影。熟悉Python后,學習C語言是便是一個不錯的選擇了:學習C語言會幫助你以靠近底層的視角思考問題,并且在后期幫助你理解操作系統(tǒng)層級的一些原理,如果你只想成為一個普通(平庸)的開發(fā)者你可以不學習它。
下面給出了一個可供參考的啟蒙階段導引,完成后你會在頭腦中構(gòu)建起一個整體框架,幫助你進行自頂向下的探索。
完成 Codecademy 的 Python 部分。這只是熱身部分,盡快完成它,因為你永遠只是在瀏覽器里,你不會學到如何搭建開發(fā)環(huán)境。在 Codecademy 這類的編程學習網(wǎng)站學到的那點兒東西,哪怕你只想做一個小的不能再小的項目,你都不知道該從哪兒開始。
完成 MIT 6.00.1x(中文化)(如果你英語不過關(guān),完成麻省理工學院公開課:計算機科學及編程導論。MOOC 是學習編程的一個有效途徑。雖然該課程的教學語言為Python,但作為一門優(yōu)秀的導論課,它強調(diào)學習計算機科學領(lǐng)域里的重要概念和范式,而不僅僅是教你特定的語言。如果你不是科班生,這能讓你在自學時開闊眼界;課程內(nèi)容:計算概念,python編程語言,一些簡單的數(shù)據(jù)結(jié)構(gòu)與算法,測試與調(diào)試。支線任務(wù):
完成Python核心編程
完成 Harvard CS50 (如果你英語不過關(guān):完成哈佛大學公開課:計算機科學 cs50 。同樣是導論課,但這門課與MIT的導論課互補。教學語言涉及 C, PHP, Javascript + SQL, HTML + CSS,內(nèi)容的廣度與深度十分合理,還能夠了解到最新的一些科技成果,可以很好激發(fā)學習計算機的興趣。支線任務(wù):
閱讀《編碼的奧秘》
完成《C語言編程》
[可選] 如果你的目標是成為一名 Hacker:閱讀 Hacker's Delight
PS:如果教育對象還是一個孩子,以下的資源會很有幫助:
5-8歲: Turtle Academy
8-12歲:Python for Kids
12歲以上: MIT Scratch 或 KhanAcademy
入門
結(jié)束啟蒙階段后,初學者積累了一定的代碼量,對編程也有了一定的了解。這時你可能想去學一門具體的技術(shù),諸如Web開發(fā),Android開發(fā),iOS開發(fā)什么的,你可以去嘗試做一些盡可能簡單的東西,給自己一些正反饋,補充自己的推動力。但記住別深入,這些技術(shù)有無數(shù)的細節(jié),將來會有時間去學習;同樣的,這時候也別過于深入特定的框架和語言,現(xiàn)在是學習計算機科學通用基礎(chǔ)知識的時候,不要試圖去抄近路直接學你現(xiàn)在想學的東西,這是注定會失敗的。
那么入門階段具體該做些什么呢?這時候你需要做的是反思自己曾經(jīng)寫過的程序,去思考程序為什么(Why)要這樣設(shè)計?,思考怎樣(How)寫出更好的程序?試圖去探尋理解編程的本質(zhì):利用計算機解決問題。
設(shè)想 :
X = 用于思考解決方案的時間,即「解決問題」 部分
Y = 用于實現(xiàn)代碼的時間,即「利用計算機」部分」
編程能力 = F(X, Y) (X>Y)
要想提高編程能力,就得優(yōu)化 X,Y 與函數(shù) F(X, Y),很少有書的內(nèi)容能同時著重集中在這三點上,但有一本書做到了——Structure and Interpretation of Computer Programs(SICP)《計算機程序的構(gòu)造和解釋》,它為你指明了這三個變量的方向。在閱讀SICP之前,你也許能通過調(diào)用幾個函數(shù)解決一個簡單問題。但閱讀完SICP之后,你會學會如何將問題抽象并且分解,從而處理更復(fù)雜更龐大的問題,這是編程能力巨大的飛躍,這會在本質(zhì)上改變你思考問題以及用代碼解決問題的方式。此外,SICP的教學語言為 Scheme,可以讓你初步了解函數(shù)式編程。更重要的是,他的語法十分簡單,你可以很快學會它,從而把更多的時間用于學習書中的編程思想以及復(fù)雜問題的解決之道上。
Peter Norvig 曾經(jīng)寫過一篇非常精彩的SICP書評,其中有這樣一段:
To use an analogy, if SICP were about automobiles, it would be for the person who wants to know how cars work, how they are built, and how one might design fuel-efficient, safe, reliable vehicles for the 21st century. The people who hate SICP are the ones who just want to know how to drive their car on the highway, just like everyone else.
如果你是文中的前者,閱讀SICP將成為你銜接啟蒙與入門階段的關(guān)鍵點
雖然SICP是一本「入門書」,但對于初學者還是有一定的難度,以下是一些十分有用的輔助資源:
Udacity CS212 Design of Computer Program): 由上文提到的Google研究主管Peter Norvig 主講,教學語言為 Python,內(nèi)容有一定難度。
How to Design Programs, Second Edition:HtDP的起點比SICP低,書中的內(nèi)容循循善誘,對初學者很友好,如果覺得完成SICP過于困難,可以考慮先讀一讀HtDP。
UC Berkeley SICP授課視頻以及 SICP 的兩位作者給 Hewlett-Packard 公司員工培訓時的錄像(中文化項目)
Composing Programs:一個繼承了SICP思想但使用Python作為教學語言的編程導論(其中包含了一些小項目)
SICP 解題集:對于書后的習題,作為初學者應(yīng)盡力并量力完成。
完成了這部分學習后,你會逐步建立起一個自己的程序設(shè)計模型,你的腦子里不再是一團亂麻,你會意識到記住庫和語法并不會教你如何解決編程問題,接下來要學些什么,在你心里也會明朗了很多。這時候才是真正開始進行項目實踐,補充推動力的好時機。
關(guān)于項目實踐:對于入門階段的初學者,參與開源項目還為時過早,這時候應(yīng)該開始一些簡單的項目,諸如搭建一個網(wǎng)站并維護它,或是編寫一個小游戲再不斷進行擴展,如果你自己的想法不明確,Mega Project List 中選取項目??傊?,務(wù)必在這時拿下你項目實踐的第一滴血。
與此同時,別忘了繼續(xù)打好根基。為了將來的厚積薄發(fā),在下面這幾個方面你還要繼續(xù)做足功課(注意:下面的內(nèi)容沒有絕對意義上的先后順序):
計算機系統(tǒng)基礎(chǔ)
有了之前程序設(shè)計的基礎(chǔ)后,想更加深入地把握計算機科學的脈絡(luò),不妨看看這本書:《深入理解計算機系統(tǒng)》 Computer Systems A Programmer's Perspective。這里點名批評這本書的中譯名,其實根本談不上什么深入啦,這本書只是 CMU的「計算機系統(tǒng)導論」的教材而已。CMU的計算機科學專業(yè)相對較偏軟件,該書就是從一個程序員的視角觀察計算機系統(tǒng),以「程序在計算機中如何執(zhí)行」為主線,全面闡述計算機系統(tǒng)內(nèi)部實現(xiàn)的諸多細節(jié)。
如果你看書覺得有些枯燥的話,可以跟一門 Coursera 上的 MOOC: The Hardware/Software Interface,這門課的內(nèi)容是 CSAPP 的一個子集,但是最經(jīng)典的實驗部分都移植過來了。同時,可以看看 The C Programming Language,回顧一下C語言的知識。
完成這本書后,你會具備堅實的系統(tǒng)基礎(chǔ),也具有了學習操作系統(tǒng),編譯器,計算機網(wǎng)絡(luò)等內(nèi)容的先決條件。當學習更高級的系統(tǒng)內(nèi)容時,翻閱一下此書的相應(yīng)章節(jié),同時編程實現(xiàn)其中的例子,一定會對書本上的理論具有更加感性的認識,真正做到經(jīng)手的代碼,從上層設(shè)計到底層實現(xiàn)都了然于胸,并能在腦中回放數(shù)據(jù)在網(wǎng)絡(luò)->內(nèi)存->緩存->CPU的流向。
此外,也是時候去接觸 UNIX 哲學了: KISS - Keep it Simple, Stupid. 在實踐中,這意味著你要開始熟悉命令行界面,配置文件。并且在開發(fā)中逐漸脫離之前使用的IDE,學會使用Vim或Emacs(或者最好兩者都去嘗試)。
閱讀 《UNIX編程環(huán)境 》
閱讀《UNIX編程藝術(shù) 》
折騰你的 UN*X 系統(tǒng)
數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)
如今,很多人認為編程(特別是做web開發(fā))的主要部分就是使用別人的代碼,能夠用清晰簡明的方式表達自己的想法比掌握硬核的數(shù)學與算法技巧重要的多,數(shù)據(jù)結(jié)構(gòu)排序函數(shù)二分搜索這不都內(nèi)置了嗎?工作中永遠用不到,學算法有啥用啊?這種扛著實用主義大旗的「碼農(nóng)」思想當然不可取。沒有扎實的理論背景,遭遇瓶頸是遲早的事。
數(shù)據(jù)結(jié)構(gòu)和算法是配套的,入門階段你應(yīng)該掌握的主要內(nèi)容應(yīng)該是:這個問題用什么算法和數(shù)據(jù)結(jié)構(gòu)能更快解決。這就要求你對常見的數(shù)據(jù)結(jié)構(gòu)和算法了熟于心,你不一定要敲代碼,用紙手寫流程是更快的方式。對你不懂的數(shù)據(jù)結(jié)構(gòu)和算法,你要去搜它主要拿來干嘛的,使用場景是什么。
供你參考的學習資源:
《算法導論 》:有人說別把這本書當入門書,這本書本來就不是入門書嘛,雖說書名是 Introduction to Algorithms,這只不過是因為作者不想把這本書與其他書搞重名罷了。當然,也不是沒辦法拿此書入門,讀第一遍的時候跳過習題和證明就行了嘛,如果還覺得心虛先看看這本《數(shù)據(jù)結(jié)構(gòu)與算法分析》
Coursera Algorithms: Design and Analysis [Part 1] & [Part 2]: Stanford 開的算法課,不限定語言,兩個部分跟下來算法基礎(chǔ)基本就有了;英語沒過關(guān)的:麻省理工學院公開課:算法導論
入門階段還要注意培養(yǎng)使用常規(guī)算法解決小規(guī)模問題的能力,結(jié)合前文的SICP部分可以讀讀這幾本書:《編程珠璣 》,《程序設(shè)計實踐 》
編程語言基礎(chǔ)
Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut. Additionally, learning many languages is far easier now, thanks to the wealth of freely available software on the Internet
- The Pragmatic Programmer
此外還要知道,學習第n門編程語言的難度是第(n-1)門的一半,所以盡量去嘗試不同的編程語言與編程范式,若你跟尋了前文的指引,你已經(jīng)接觸了:「干凈」的腳本語言 Python, 傳統(tǒng)的命令式語言 C, 以及浪漫的函數(shù)式語言 Scheme/Racket 三個好朋友。但僅僅是接觸遠遠不夠,你還需要不斷繼續(xù)加深與他們的友誼,并嘗試結(jié)交新朋友,美而雅的 Ruby 小姑娘,Hindley-Milner 語言家族的掌中寶 Haskell 都是不錯的選擇。但有這么一位你躲不開的,必須得認識的大伙伴 — C++,你得做好與他深交的準備:
入門:C++ Primer
[可選] 進階:
高效使用:Effective C++
深入了解:《深度探索C++對象模型》;C++Templates
研究反思:The Design and Evolution of C++ ;對于C++這個 Necessary Evil ,看這本書可以讓你選擇是成為守夜人還是守日人。
現(xiàn)實是殘酷的,在軟件工程領(lǐng)域仍舊充斥著一些狂熱者,他們只掌握著一種編程語言,也只想掌握一種語言,他們認為自己掌握的這門語言是最好的,其他異端都是傻X。這種人也不是無藥可救,有一種很簡單的治療方法:讓他們寫一個編譯器。要想真正理解編程語言,你必須親自實現(xiàn)一個?,F(xiàn)在是入門階段,不要求你去上一門編譯器課程,但要求你能至少實現(xiàn)一個簡單的解釋器。
供你參考的學習資源:
《程序設(shè)計語言-實踐之路》:CMU編程語言原理的教材,程序語言入門書,現(xiàn)在就可以看,會極大擴展你的眼界,拉開你與普通人的差距。
Coursera 編程語言MOOC:課堂上你能接觸到極端FP(函數(shù)式)的SML,中性偏FP的Racket,以及極端OOP(面向?qū)ο螅┑腞uby,并學會問題的FP分解 vs OOP分解、ML的模式匹配、Lisp宏、不變性與可變性、解釋器的實現(xiàn)原理等,讓你在將來學習新語言時更加輕松并寫出更好的程序。
Udacity CS262 Programming Language:熱熱身,教你寫一個簡單的瀏覽器——其實就是一個javascript和html的解釋器,完成后的成品還是很有趣的;接下來,試著完成一個之前在SICP部分提到過的項目:用Python寫一個 Scheme Interpreter
其他
編程入門階段比較容易忽視的幾點:
學好英語:英語是你獲取高質(zhì)量學習資源的主要工具,但在入門階段,所看的那些翻譯書信息損耗也沒那么嚴重,以你自己情況權(quán)衡吧。此外英語的重要性更體現(xiàn)在溝通交流上,Linus Torvalds一個芬蘭人,一口流利的英語一直是他招募開發(fā)者為Linux干活的的法寶,這是你的榜樣。
學會提問:學習中肯定會遇到問題,首先應(yīng)該學會搜索引擎的「高級搜索」,當單靠檢索無法解決問題時,去Stack Overflow 或知乎 提問,提問前讀讀這篇文章:What have you tried?
不要做一匹獨狼:嘗試搭建一個像這樣簡單的個人網(wǎng)站,不要只是一個孤零零的about頁面,去學習 Markdown 與 LaTeX,試著在Blog上記錄自己的想法,并訂閱自己喜歡的編程類博客。推薦幾個供你參考:Joel on Software,Peter Norvig, Coding Horror
小結(jié)
以上的內(nèi)容你不應(yīng)該感到懼怕,編程的入門不是幾個星期就能完成的小項目。期間你還會遇到無數(shù)的困難,當你碰壁時試著嘗試「費曼」技巧:將難點分而化之,切成小知識塊,再逐個對付,之后通過向別人清楚地解說來檢驗自己是否真的理解。當然,依舊會有你解決不了的問題,這時候不要強迫自己——很多時候當你之后回過頭來再看這個問題時,一切豁然開朗。
此外不要局限與上文提到的那些材料,還有一些值得在入門階段以及將來的提升階段反復(fù)閱讀的書籍。The Pragmatic Programmer 就是這樣一本程序員入門書,終極書。有人稱這本書為代碼小全:從DRY 到 KISS,從做人到做程序員,這本書教給了你一切,你所需的只是遵循書上的指導。
后記
如果你能設(shè)法完成以上的所有任務(wù),恭喜你,你已經(jīng)真正實現(xiàn)了編程入門。這意味著你在之后更深入的學習中,不會畏懼那些學習新語言的任務(wù),不會畏懼那些「復(fù)雜」的API,更不會畏懼學習具體的技術(shù),甚至感覺很容易。當然,為了掌握這些東西你依舊需要大量的練習,腰還是會疼,走路還是會費勁,一口氣也上不了5樓。但我能保證你會在思想上有巨大的轉(zhuǎn)變,獲得極大的自信,看老師同學和 csdn 的眼光會變得非常微妙,雖然只是完成了編程入門,但已經(jīng)成為了程序員精神世界的高富帥。不,我說錯了,即使是高富帥也不會有強力精神力,他也會懷疑自己,覺得自己沒錢就什么都不是了。但總之,你遵循指南好好看書,那就會體驗「會當凌絕頂」的感覺。
8. 少兒電腦編程是在電腦上干什么
少兒編程主要學編程思維,機器思維,邏輯思維。編程的好處是他是一項多方面的表達,語言,圖形,音樂,邏輯,數(shù)學,同時他又是一項能培養(yǎng)管理能力和合作能力的工程活動,善加引導,一定可以取得很好的效果。一、學習編程的基礎(chǔ)知識和基礎(chǔ)計算機語言
學習編程就是在學習編程語言,根據(jù)孩子的年齡和階段,從低級向高級,循序漸進學習。Scratch圖形化編程,認識和使用編程開發(fā)素材,學習加減乘除算術(shù)運算符,順序邏輯結(jié)構(gòu),等待,事件,動作概念,變量概念,認識超聲傳感器等,課程設(shè)計(編程實現(xiàn)gstem機器人-gbot巡線避障等)。Python語言,學習數(shù)字電路基礎(chǔ)知識,arduino開發(fā)板初識,變量基礎(chǔ)數(shù)據(jù)類型等,php,mysql基礎(chǔ)知識,課程設(shè)計(線圖方式展示于web頁,數(shù)據(jù)保存在后端和云端)C++語言,數(shù)據(jù)類型,邏輯結(jié)構(gòu),運算符,變量作用域,指針引用,結(jié)構(gòu)體,插入排序算法,字符串處理函數(shù),STL標準庫等。
二、培養(yǎng)嚴謹?shù)倪壿嬎季S能力和創(chuàng)新能力
編程具有一定的程式,編程語言錯誤就會產(chǎn)生錯誤指令,創(chuàng)造出的模型不精準,失之毫厘謬以千里,所以有利于培養(yǎng)孩子養(yǎng)成正確嚴謹?shù)倪壿嬎季S習慣,建立新的項目是創(chuàng)造新事物的過程,孩子沒有固定的參照,多是憑借自己的想象力創(chuàng)造,因此可以培養(yǎng)孩子1+1=3的創(chuàng)新能力
三、學習發(fā)現(xiàn)問題,解決問題的獨立能力
少兒編程課程的學習是把問題丟該學生自己解決,并不像傳統(tǒng)教育學生存在疑問由教師來解決,這樣就有利于培養(yǎng)孩子主動思考,獨立解決問題的能力,遇事不依賴的習慣,在今后的生活中擁有獨立的人格。
格物斯坦小坦克認為少兒學習編程所得到的很多能力不僅是顯性的外在能力,更多的是孩子植根于大腦的思維能力,而往往這種能力是優(yōu)越于同年段孩子的關(guān)鍵所在,助力孩子在未來快人一步,更勝一籌。