免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
少兒編程這么火,學(xué)哪種最靠譜?專家:精通一門再學(xué)其他就容易了

深度長(zhǎng)文,共計(jì)5097字,預(yù)計(jì)閱讀時(shí)間15~20分鐘,建議先收藏后閱讀。

這幾年,人工智能的發(fā)展速度與日俱增:AlphaGo贏了柯潔;百度無(wú)人巴士量產(chǎn);Google的AI客服,用一個(gè)簡(jiǎn)單的“嗯哼”,征服了全世界;索尼也用AI創(chuàng)造了一首Beatles風(fēng)單曲......

隨之而來(lái)的,是教育風(fēng)向的變化,除了語(yǔ)數(shù)外這“老三樣”,一門新的學(xué)科正在迅猛崛起,且大有燎原之勢(shì)——它就是“少兒編程”,加上政策的推動(dòng),家長(zhǎng)們愈發(fā)認(rèn)識(shí)到讓孩子從小學(xué)編程的重要性,在北上廣等一線城市,不讓孩子學(xué)編程,都不敢說(shuō)自己受的是精英教育。

然而,編程語(yǔ)言種類繁多,哪一種語(yǔ)言最靠譜?最適合孩子的認(rèn)知水平?最能激發(fā)孩子的創(chuàng)造力?

今天,我們特別邀請(qǐng)了一位少兒編程領(lǐng)域的專家——肖恩老師,為我們從專業(yè)上詳細(xì)講解,孩子學(xué)編程從何入手。

肖恩老師

EUMlab&西瓜創(chuàng)客創(chuàng)始人

肖恩老師精通各種編程語(yǔ)言(C/C++//JAVA/Ruby/Python/Javascript/ Verilog/VHDL等),大學(xué)時(shí)代就拿下國(guó)際編程大獎(jiǎng) Intel杯亞太區(qū)第一名。他在德國(guó)創(chuàng)業(yè)期間,開發(fā)了明星產(chǎn)品Pro Metronome (音樂(lè)節(jié)拍器App),全球用戶已逾3000萬(wàn),連續(xù)5年在蘋果應(yīng)用商店同類排名第一。

回國(guó)后他創(chuàng)辦了“西瓜創(chuàng)客”(一個(gè)在線少兒編程教育品牌),發(fā)展也十分迅速,目前他教過(guò)的孩子已近10萬(wàn),分布在全球40多個(gè)不同國(guó)家,西瓜創(chuàng)客也已藉此獲紅杉資本、經(jīng)緯中國(guó)的A輪投資。

少兒編程,選擇哪種語(yǔ)言好?

這個(gè)提問(wèn)就像有人在問(wèn)你 “是穿婚紗好、正裝好還是休閑裝比較好?

這是一個(gè)無(wú)法回答的問(wèn)題,因?yàn)閱?wèn)題缺少了重要的前提:“選什么樣的衣服,取決于我們的目的”。

婚禮時(shí)穿婚紗很好,但是如果每天都穿著婚紗上班就很奇怪了。

每件衣服都有適用于它應(yīng)有的場(chǎng)景。

編程語(yǔ)言也是一樣的,每種編程語(yǔ)言都有屬于它的應(yīng)用場(chǎng)景。

要回答 “少兒編程,選擇哪種語(yǔ)言比較好?”

我的簡(jiǎn)單版答案是:Scratch!作為從7歲開始做電子設(shè)計(jì),讀過(guò)Linux 源代碼,寫過(guò)RTOS(實(shí)時(shí)操作系統(tǒng)),做過(guò)芯片編程FPGA/DSP,有20年編程齡,能熟練使用匯編/C/C++/C#/Perl/Objective-C/JAVA/Ruby/Python/Javascript/HTML/CSS 等大家熟悉的編程語(yǔ)言和大家不熟悉的設(shè)計(jì)芯片編程語(yǔ)言 Verilog 和 VHDL的我,推薦使用Scratch 。

那為什么是 Scratch 呢? 我在和西瓜創(chuàng)客教的近 10 萬(wàn)孩子的家長(zhǎng)溝通過(guò)程中總結(jié)了家長(zhǎng)們的常見困惑,詳細(xì)解釋如下:

Q&A

Q:Scratch 是低級(jí)語(yǔ)言,太幼稚,什么時(shí)候可以轉(zhuǎn)學(xué)高級(jí)語(yǔ)言(例如 C 和 Java)?

這是一個(gè)常見誤區(qū),主要是受“高級(jí)”二字翻譯不準(zhǔn)確的影響產(chǎn)生的誤區(qū)。 高級(jí)語(yǔ)言的英文原文叫做 High-level programming language ,更準(zhǔn)確的翻譯應(yīng)該是高層級(jí)編程語(yǔ)言。層級(jí)的高低不是語(yǔ)言的高級(jí)與否的劃分,而是指語(yǔ)言離硬件指令的遠(yuǎn)近。越接近人類的自然語(yǔ)言的編程語(yǔ)言越叫高級(jí)語(yǔ)言(越容易讀懂),越接近計(jì)算機(jī)指令的叫做低級(jí)語(yǔ)言(越難讀懂)。

舉個(gè)例子,匯編語(yǔ)言是離 CPU 指令最近的人還能勉強(qiáng)能讀懂的語(yǔ)言。 用匯編來(lái)表達(dá) 1 + 2,是這樣的:

在其他語(yǔ)言里是這樣表達(dá)的:

顯而易見,其他的語(yǔ)言更接近人更好理解的自然語(yǔ)言。

更令人發(fā)指的是,不同架構(gòu)類型的 CPU,控制它的指令是不一樣的。 也就是說(shuō),同樣的是 1 + 2,不同的 CPU 上需要用不同的寫法。

而所有的編程語(yǔ)言設(shè)計(jì)者,都在致力于做一件事情:

讓人們可以用人類能讀懂的語(yǔ)言,優(yōu)雅地編程,只需要把自己的想法告訴電腦,電腦就能自動(dòng)把語(yǔ)言翻譯成他能自己能執(zhí)行的命令。

也就是說(shuō),無(wú)論我們用哪種高級(jí)語(yǔ)言寫出來(lái)的代碼,都有,也都需要一個(gè)翻譯官,去編譯(Compiler)或者解釋(Interpreter)我們寫的代碼讓電腦可以執(zhí)行。

BTW,從定義上來(lái)說(shuō),Scratch 是比 C 和 Java 更高級(jí)的語(yǔ)言。

那既然編程語(yǔ)言的設(shè)計(jì)者都有同樣的目標(biāo),那哪個(gè)語(yǔ)言是最好的編程語(yǔ)言呢?

這個(gè)問(wèn)題就和“什么樣的衣服是最好的衣服”類似了。 答案是在不同的場(chǎng)景和目標(biāo)下,選擇對(duì)應(yīng)的編程語(yǔ)言,沒(méi)有哪一種語(yǔ)言是最好的語(yǔ)言。

例如,C 語(yǔ)言更接近計(jì)算機(jī)硬件,編程語(yǔ)法中有很多莫名其妙的操作學(xué)習(xí)起來(lái)十分困難。 但它的優(yōu)點(diǎn)恰好也是它特別接近硬件,對(duì)內(nèi)存的申請(qǐng)和釋放都得開發(fā)者自己來(lái)寫,程序的執(zhí)行效率能特別的高。(這里之所以說(shuō)“能特別高”,而不是“會(huì)特別高”,是因?yàn)槭欠衲軋?zhí)行高效,還取決于開發(fā)者的算法能力以及對(duì) CPU 的指令是否熟悉)

但是如果誰(shuí)想要用 C 語(yǔ)言來(lái)做網(wǎng)站,也許用 Javascript + CSS + HTML 組合起來(lái)花 5 分鐘做出來(lái)的網(wǎng)頁(yè),用 C 語(yǔ)言可能 1 個(gè)月也寫不出來(lái)。

那為什么編程語(yǔ)言會(huì)有排行變化呢?

這個(gè)完全是和工作和市場(chǎng)機(jī)會(huì)有關(guān)的。例如,在互聯(lián)網(wǎng)大爆發(fā)的時(shí)候,做網(wǎng)站的人是最稀缺的,于是推動(dòng)了JAVA、C# 和 Javascript + CSS + HTML 等語(yǔ)言的發(fā)展。那個(gè)時(shí)候,另一種叫做Objective-C 的語(yǔ)言就特別的冷門。直到蘋果的 iPhone 出來(lái)后,移動(dòng)互聯(lián)網(wǎng)的春天來(lái)臨,當(dāng)時(shí)誰(shuí)能做 App,誰(shuí)的工作機(jī)會(huì)就比別人多呀。于是這種冷門的Objective-C 語(yǔ)言就迎來(lái)了他的春天。由于互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,大量的數(shù)據(jù)產(chǎn)生,機(jī)器學(xué)習(xí)和人工智能在坐了多年的冷板凳后,終于有了用武之地。大量的數(shù)據(jù)科學(xué)家使用 Python 來(lái)編寫機(jī)器學(xué)習(xí)的程序(因?yàn)?Python 和 Python 大量的數(shù)據(jù)分析和處理相關(guān)的功能庫(kù)是開源免費(fèi)的),于是 Python 又成為近年的新寵。

所以如果選編程語(yǔ)言是為了讓孩子未來(lái)好找工作的話,親,你確定現(xiàn)在選擇的語(yǔ)言會(huì)在 15 年后還不衰落?

Q:那選擇 Scratch 的優(yōu)勢(shì)是什么呢?它會(huì)過(guò)時(shí)嗎?

"如果我給你一支高級(jí)鋼筆...

oh,不不不,你給我一支高級(jí)鋼筆。

我能成為作家嗎?"

“不能”

沒(méi)錯(cuò)。 決定我是否能成為作家的,不是因?yàn)槭褂玫氖鞘裁礃拥匿摴P;決定是否能成為攝影師的,也不是昂貴的鏡頭和相機(jī);

決定是否能成為好的開發(fā)者,也不是選擇的語(yǔ)言,而是他是否能發(fā)現(xiàn)生活中的問(wèn)題,找到解決問(wèn)題的辦法,然后用編程把解決方案做出來(lái)。

表達(dá)我們的情感和洞見、凝固時(shí)間記錄故事、發(fā)現(xiàn)并解決問(wèn)題 是我們的目標(biāo),用一支好的鋼筆,好的相機(jī),和選擇一種編程語(yǔ)言是實(shí)現(xiàn)目標(biāo)的手段。我們不應(yīng)該錯(cuò)把手段當(dāng)目標(biāo)。

在文章剛開始,我提到了我能熟練使用匯編/C/C++/C#/Perl/Objective-C/JAVA/Ruby/Python/Javascript/HTML/CSS 等編程語(yǔ)言,這并非吹噓。 事實(shí)上,一個(gè)成熟的開發(fā)者,基本都掌握多種編程語(yǔ)言,并且可以快速地學(xué)習(xí)和適應(yīng)新的語(yǔ)言。這是因?yàn)榫幊陶Z(yǔ)言是有規(guī)律可尋的。

舉個(gè)例子,如果我們要用編程編寫,如果天下雨,就帶傘,否則就不帶傘。 用不同的語(yǔ)言寫出來(lái)是這樣的

我們可以看到,無(wú)論是哪種語(yǔ)言,他們都有一個(gè)類似的結(jié)構(gòu):

這就是編程中不變的部分,他們只是表達(dá)方式(編程的語(yǔ)法)有一點(diǎn)區(qū)別罷了。 這就像目前主流音樂(lè),都是由 12 平均律切分的 12 個(gè)音(do 升do re 降mi mi fa....)構(gòu)成的。

但是如果我們用葫蘆絲吹婚禮進(jìn)行曲,就總會(huì)覺得有一點(diǎn)過(guò)橋米線的感覺。 這是因?yàn)槊總€(gè)樂(lè)器有它獨(dú)特的特性。程序語(yǔ)言也是一樣的。 每種語(yǔ)言都有一些它十分獨(dú)特的特性。例如,我們想判斷菜單中是否包含宮保雞丁,如果包含就輸出“找到了”。C 語(yǔ)言, Python 和 Scratch 的寫法分別如下。

你會(huì)發(fā)現(xiàn),這時(shí),Python 和 Scratch 的寫法就比 C 語(yǔ)言直觀多了。 這部分就是不同語(yǔ)言的特性部分。

也就是說(shuō),當(dāng)精通了一種編程語(yǔ)言后,想學(xué)習(xí)另一種編程語(yǔ)言,只需要了解它的語(yǔ)法就能上手,會(huì)熟練使用它的特性就可以精通。編程的核心不在于語(yǔ)法,而是解決問(wèn)題的思路和方法(算法)。

而 Scratch 中包含了幾乎所有編程語(yǔ)言共通的部分。無(wú)論未來(lái)語(yǔ)言如何變化,最基本的邏輯是不會(huì)變化的。而這些訓(xùn)練在 Scratch 中都能完成。

Q:聽你這樣說(shuō),也就是說(shuō)學(xué)習(xí)其他語(yǔ)言也是一樣的,因?yàn)橹灰ㄒ婚T,再學(xué)另一門語(yǔ)言就容易了?

是的,沒(méi)錯(cuò)。和學(xué)好了 Scratch 轉(zhuǎn) C,Java 和 Python 是容易的類似。 學(xué)好了 C 轉(zhuǎn) Python 也是不難的。但是為什么依然還是推薦孩子學(xué)習(xí) Scratch 而不是 C 的原因不是因?yàn)榫幊?,而是因?yàn)?strong>認(rèn)知科學(xué)。

在認(rèn)知科學(xué)中,人們是否能快速學(xué)習(xí)一樣?xùn)|西或者堅(jiān)持學(xué)習(xí)一樣?xùn)|西和自我效能感(Self-efficacy )息息相關(guān)。自我效能感是指人們是否相信自己能達(dá)到一個(gè)目標(biāo),當(dāng)相信的時(shí)候就會(huì)覺得做起來(lái)很帶勁,一點(diǎn)也不枯燥;當(dāng)不相信的時(shí)候就覺得自己在飽受煎熬。簡(jiǎn)單地理解就是成就感是讓人學(xué)習(xí)產(chǎn)生快樂(lè)并且堅(jiān)持學(xué)習(xí)的重要原因。

如果在學(xué)習(xí)任何一樣?xùn)|西的時(shí)候,例如數(shù)學(xué),一旦我們意識(shí)到自己學(xué)起來(lái)有困難,就開始不相信自己能學(xué)好,并且給自己各種理由證明自己不能學(xué)好,甚至是讓自己學(xué)不好合理化。例如會(huì)說(shuō) “學(xué)這個(gè)有什么用呀,買菜又不需要微積分”,或者說(shuō)“我就是一個(gè)學(xué)文科的,這種理科的東西我不需要學(xué)” 甚至?xí)f(shuō) “我就是一個(gè)學(xué)文科的料,理科在我的基因里就寫著‘不擅長(zhǎng)’三個(gè)字” 。

類似的,如果我們希望孩子不會(huì)說(shuō)自己“就不是一個(gè)編程的料”,最好的辦法就是讓孩子從第一步就產(chǎn)生成就感,從而產(chǎn)生自我效能感,也就是相信自己可以有能力達(dá)到目標(biāo),學(xué)好編程。

在這樣的前提下,你還會(huì)讓孩子從學(xué)習(xí)例如 C 或者 Java 這樣的工業(yè)級(jí)編程開始嗎? 這樣,他可能會(huì)面臨的困難不僅僅是編程的困難,他還會(huì)遇到打字的困難,標(biāo)點(diǎn)是否使用正確的困難,編程語(yǔ)言語(yǔ)法的困難,編譯錯(cuò)誤時(shí)莫名其妙的困難等等。 這些困難會(huì)消磨掉孩子學(xué)習(xí)編程的興趣,自己找理由說(shuō)“我不喜歡編程”,就和很多人找到無(wú)數(shù)理由說(shuō)自己“不喜歡數(shù)學(xué)”一樣。 這就是在沒(méi)有形成自我效能感的情況下拔苗助長(zhǎng)的結(jié)果。

這個(gè)就很像我在德國(guó)期間看到的德國(guó)音樂(lè)學(xué)習(xí)和中國(guó)的區(qū)別。德國(guó)在小時(shí)候?qū)W習(xí)音樂(lè)首先是學(xué)習(xí)鑒賞,再是學(xué)會(huì)玩,最后才是學(xué)音樂(lè)。例如,首先老師會(huì)給孩子們彈音樂(lè),并且音樂(lè)是配合特定故事和場(chǎng)景,讓孩子們能把聲音和場(chǎng)景對(duì)應(yīng)起來(lái);然后讓孩子們可以玩樂(lè)器,就是不計(jì)較指法是否正確,姿勢(shì)是否正確的情況下,先和樂(lè)器做朋友,不恐懼音樂(lè)和樂(lè)器;最后才是學(xué)習(xí)如何駕馭一種樂(lè)器,才開始學(xué)習(xí)指法等等所謂的基本工。 而國(guó)內(nèi)學(xué)習(xí)樂(lè)器恰好相反,首先讓孩子練習(xí)的是指法,而忽略了讓孩子對(duì)音樂(lè)的熱愛。

這就是為什么西瓜創(chuàng)客以及我肖恩老師還是會(huì)推薦學(xué)習(xí) Scratch 的原因: 先讓孩子可以不恐懼編程,產(chǎn)生興趣,并且用編程表達(dá)自己。 等到孩子們已經(jīng)產(chǎn)生了自信和成就感,再提高難度。如果都要選擇一門語(yǔ)言進(jìn)入編程的世界,一定是選擇能讓孩子快速找到自信,找到成就感的語(yǔ)言。 那這種語(yǔ)言目前最好的就是 Scratch。

Q:那要是我的孩子就是想學(xué)除了 Scratch 外的語(yǔ)言,我應(yīng)該怎么為他選擇?

首先,讓我們把編程語(yǔ)言分為兩大類,一類是興趣類編程,以圖形化編程為主,目的是用編程實(shí)現(xiàn)自己的想法,不用擔(dān)心程序執(zhí)行效率不高,也不用考慮用戶的使用場(chǎng)景和平臺(tái)。另一類是工業(yè)類編程,以源碼編程為主,除了考慮用編程來(lái)解決生活生產(chǎn)中的問(wèn)題外,還需要考慮到用戶會(huì)在什么樣的場(chǎng)景下使用此軟件,以及產(chǎn)品的易用性。

如果是青少年學(xué)習(xí)編程,依然不推薦從工業(yè)類編程入手。 目前 Scratch 語(yǔ)言也在進(jìn)化,能支持的功能已經(jīng)遠(yuǎn)遠(yuǎn)大于把一個(gè)圖形從這里移動(dòng)到那里。 Scratch 現(xiàn)在已經(jīng)可以對(duì)特定硬件進(jìn)行編程了。和 Scratch 類似的圖形化語(yǔ)言 Blocky ,已經(jīng)可以完成很多很多遠(yuǎn)超過(guò) Scratch 的功能了。 例如同是 Scratch 3 基于的 Blockly 開發(fā)的 App Inventor,已經(jīng)可以讓孩子用圖形化編程制作一個(gè)手機(jī) App。事實(shí)上,并不是圖形化編程就弱雞,現(xiàn)在西瓜創(chuàng)客的員工工資公式已經(jīng)是用 Blocky 寫的了,西瓜創(chuàng)客的后臺(tái)各種工作流程規(guī)則也都是用圖形化語(yǔ)言來(lái)寫的。

如果非要選擇工業(yè)級(jí)編程語(yǔ)言,我們還是可以按目標(biāo)來(lái)劃分。

如果目標(biāo)是應(yīng)試,首選是 Python,目前浙江等地區(qū)已經(jīng)把 Python 列為了高考科目。 如果想通過(guò) NOIP 加分的話,其次選擇是 C/C++ 語(yǔ)言。(注,在應(yīng)試層面上,選擇 C 和選擇 C++ 是一樣的,因?yàn)?C++ 是基于 C 擴(kuò)展增加了一些例如面向?qū)ο缶幊痰奶匦?,而?NOIP 的賽題里,不會(huì)用到這些高級(jí)特性)

如果目標(biāo)是編寫控制硬件的程序,推薦語(yǔ)言是 Python 和 C。C 的原因是主流的硬件編程都是支持 C 的。而非工業(yè)級(jí)的硬件編程,例如,樹莓派支持用 Python 編程。

如果目標(biāo)是制作 App, 可以選擇的語(yǔ)言是 Scratch 類似的 App Inventor、 Java(用于編寫安卓的 App)或者 Objective-C/Swift (用于編寫蘋果系統(tǒng) iOS 的 App)。另外 Java Script 也是一個(gè)不錯(cuò)的跨平臺(tái)選擇?,F(xiàn)在大多數(shù)程序都是蘋果安卓系統(tǒng)通用的。這類程序基本是基于某個(gè)框架,最常用的框架是 React Native,而 React Native 使用的就是 Javascript 語(yǔ)言。(注,Java 語(yǔ)言和 Javascript 是兩個(gè)語(yǔ)言,類似但不相同)

如果目標(biāo)是制作網(wǎng)頁(yè),可以選擇的語(yǔ)言是 Javascript + CSS + HTML。其中 CSS 和 HTML 是決定網(wǎng)頁(yè)長(zhǎng)成什么樣的。這兩種語(yǔ)言學(xué)習(xí)起來(lái)很簡(jiǎn)單。推薦 Javascript 的原因是,網(wǎng)頁(yè)編程的前端(用戶能看到的部分)基本都是用 Javascript 來(lái)控制的。而且現(xiàn)在的 Node.JS 也是基于 Javascript 的語(yǔ)法來(lái)做的后端程序(也就是用戶看不到的服務(wù)器部分)。也就是說(shuō),只要會(huì) Javascript前端后端都能寫。

如果目標(biāo)是做數(shù)據(jù)分析,首推的是 Python 語(yǔ)言。Python 語(yǔ)言里有大量關(guān)于數(shù)據(jù)處理的公共庫(kù)可以使用。讓我們可以站在巨人的肩膀上繼續(xù)深入研究,而不是重造車輪。

綜合各種因素,如果是針對(duì) 7-12歲的孩子學(xué)習(xí)編程,語(yǔ)言的推薦順序?yàn)?Scratch > Python > Javascript > C 。

the end
免責(zé)聲明:本文來(lái)自騰訊新聞客戶端自媒體,不代表騰訊網(wǎng)的觀點(diǎn)和立場(chǎng)。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
想學(xué)編程?想編寫一款安卓或iOS應(yīng)用?
自學(xué)編程之前,你需要知道這些
如何用20種最熱門的編程語(yǔ)言寫代碼?
Scratch、Python、Java、C 到底哪個(gè)適合你?
如何看待將Python作為少兒編程的基礎(chǔ)語(yǔ)言?
沒(méi)有這項(xiàng)能力的孩子,將來(lái)會(huì)寸步難行!
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服