自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python太低級,我選 C++?碼農(nóng)帶你揭穿少兒編程的騙局

新聞
隨著科技的發(fā)展,出現(xiàn)了非常多的編程語言,編程語言之間也確實有高低級之分,但不是培訓(xùn)班 Tony 老師告訴你的高低級。

最近在某乎看到一篇文章,大意是海淀媽媽們已經(jīng)嫌棄 Python 低級,準(zhǔn)備讓娃直接入門 C++??吹梦疫@個寫了 15 年代碼的老碼農(nóng)心驚膽戰(zhàn),感覺隨時都會被后浪拍死在沙灘上。我其實非常贊成小朋友學(xué)習(xí)編程的,但做為一名碼農(nóng)奶爸,我覺得還是有必要給各位海淀媽媽們解釋一下什么是計算機編程,C++ 和 Python 有什么區(qū)別,娃是否應(yīng)該學(xué)習(xí)計算機編程,以及編程怎樣從入門到放棄。

什么是計算機編程

學(xué)習(xí)計算機編程,簡單來說就是學(xué)習(xí)怎樣給計算機下命令。你說話,讓計算機聽明白,然后老實去做,和你平時教育娃沒什么區(qū)別。不過計算機非常聽話,只要你能說明白,他就一定能按你的意思執(zhí)行,比帶娃省事多了。

當(dāng)然,想要給計算機下命令,你得先了解計算機。我們天天使用的電腦、iPhone、iPad 等等,其實遵循的都是“馮·諾伊曼架構(gòu)”,簡單說就是要有 CPU,內(nèi)存,顯示器和鍵盤。你用鍵盤給 CPU 下命令,CPU 和內(nèi)存一起合作,算出結(jié)果輸出給顯示器就可以。如下圖所示:

 

Python太低級,我選 C++?碼農(nóng)帶你揭穿少兒編程的騙局

不過 CPU 非常傻,只認(rèn)識 0 和 1 兩個數(shù)字。所以如果你想讓他算一道算數(shù)題,你得告訴他一串 24 位的數(shù)字 1000 0011 1100 0000 0000 0001, 他才能聽懂。無論你用 Python、C++ 還是別的編程語言,最終都會轉(zhuǎn)換成這 24 個數(shù)字。像不像平時教育娃,無論漢語、英語還是方言,最終都得翻譯成拳頭,娃才能明白一樣?

順帶說一下,這串 24 位數(shù)字叫做機器碼,翻譯成碼農(nóng)能看懂的語言是“ADD %EAX, 1”,說人話就是“別玩了,快給老娘算 x+1 等于幾”。

C++ 比 Python 高級嗎

隨著科技的發(fā)展,出現(xiàn)了非常多的編程語言,編程語言之間也確實有高低級之分,但不是培訓(xùn)班 Tony 老師告訴你的高低級。

像剛才說的 ADD %EAX, 1 叫做匯編語言,是低級語言,而 Python 和 C++ 則同屬于高級語言范疇。他們在剛才的例子中,都可以同樣的代碼 x += 1 來表示,他們之間甚至還有點親戚關(guān)系,C++ 是基于 C 語言“改進(jìn)”而來,Python 則是由 C 語言編寫的。

那么 Python 和 C++ 誰更高級呢?這個需要分領(lǐng)域回答。在數(shù)據(jù)科學(xué)和人工智能領(lǐng)域,Python 是當(dāng)之無愧的王者,但在高頻交易、網(wǎng)絡(luò)游戲領(lǐng)域,C++ 可以說是目前的業(yè)界標(biāo)準(zhǔn)。對于少兒編程領(lǐng)域來說,Python 在簡單易入門方面幾乎沒有對手。

Python 有多簡單呢?寫一個同樣功能的網(wǎng)站,用匯編語言,C++ 與 Python 的工作量對比大約是 1000000:3:1。這是什么意思呢,就是 Python 程序員在和女生約會的時候,C++ 程序員剛加完班,而匯編程序員已經(jīng)當(dāng)場去世了。

那為什么 Tony 老師說 C++ 比 Python 高級呢?當(dāng)然是因為學(xué)同樣的東西,他能收 3 倍的課時費,貴的就高級,沒毛病。

Tony 老師也許會反駁說 Python 只是玩具語言,大一點的孩子都不用。我們可以看一下 2016 ~ 2020 編程語言流行度排行榜:

 

Python太低級,我選 C++?碼農(nóng)帶你揭穿少兒編程的騙局

事實上,這個世界上無論是小朋友還是老碼農(nóng),都在用 Python,也都愛用 Python。

Python 和 C++ 的真正區(qū)別是編譯型語言與解釋型語言的區(qū)別,簡單來說就是 C++ 是直接變成 0101 讓 CPU 運行的,而 Python 則需要隨身帶個翻譯,這就導(dǎo)致 Python 在運行時比 C++ 慢 10 - 100 倍左右。不過不用擔(dān)心,現(xiàn)在的 CPU 已經(jīng)快到讓你感覺不到任何區(qū)別。

娃應(yīng)該學(xué)習(xí)計算機編程嗎

對于娃是否應(yīng)該學(xué)習(xí)編程這件事情,如果中高考不考,可以完全不用學(xué)。Tony 老師往往告訴你學(xué)習(xí)編程,可以訓(xùn)練小朋友邏輯思維,讓小朋友數(shù)學(xué)更好。但真相卻恰恰相反,是邏輯思維好的小朋友,學(xué)編程更容易而已。

編程語言中用到的數(shù)學(xué)邏輯只有 3 個,條件判斷,循環(huán)與遞歸。

條件判斷

條件判斷就是你告訴娃如果要吃糖,就要先聽話。用程序表示就是

 

  1. if 聽話:  
  2. 可以吃糖  
  3. else 
  4. 直接吃拳頭 

循環(huán)

循環(huán)就是娃不停的要你買玩具,買完這個買那個。 用程序表示就是

 

  1. while 玩具玩膩了:  
  2. 和媽媽要新玩具 

遞歸

遞歸就是娃不斷的問你這是什么?比如指著天上問你這是什么?你說這是太陽。他又問太陽是什么,你說太陽是一個恒星。他又問恒星是什么,你說恒星是宇宙中一種星球。他又問星球是什么,你說星球就是星球,去找你爸玩。用程序表示就是

 

  1. def ask(xx 是什么):  
  2. if 問煩了:  
  3. return 去找你爸玩  
  4. else 
  5. ask(xx 是什么) 

可以看到遞歸和循環(huán)有點相似,在實際編程中遞歸和循環(huán)也是可以互換的。

看到這里,你還覺得少兒編程可以提升數(shù)學(xué)成績嗎?編程不會提升娃的智商,也不能像彈鋼琴、說意大利語一樣拿來炫耀,從功利的角度并不劃算。

編程真正的價值在于創(chuàng)造,你可以輕易創(chuàng)造一個完全屬于自己的作品,可以分享給朋友,甚至可以分享給全世界。這種創(chuàng)造產(chǎn)品的樂趣,這種被人認(rèn)同的成就感,這種一次次經(jīng)歷失敗但最終獲得成功的喜悅,才是學(xué)習(xí)編程真正的價值所在。

所以,如果你的娃滿足下面 3 個條件:

  • 對編程本身非常感興趣,也有一定的理解力
  • 有一個真正懂得編程的老師指導(dǎo)
  • 你對娃在編程上沒有過高期許

我是推薦讓娃學(xué)習(xí) Python 編程的,因為編程真的好玩,也真的能獲得成就感。

少兒編程該怎樣入門

從我個人經(jīng)驗來說,學(xué)好編程只需要兩個條件:

  • 帶著目標(biāo)學(xué)習(xí)
  • 一個字一個字親手寫代碼

學(xué)習(xí)編程其實是一個非常龐大的過程,你需要學(xué)完編程語言、標(biāo)準(zhǔn)庫、常用第三方庫、網(wǎng)絡(luò)協(xié)議、數(shù)據(jù)庫、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)、常用算法等一大堆內(nèi)容,才能真正做一個產(chǎn)品級的程序。但是對于少兒編程來說,學(xué)好編程語言本身,一點點標(biāo)準(zhǔn)庫和第三方庫,也可以做出一些好玩的程序。

所以入門編程,你最需要的是給娃定一個目標(biāo),讓他能帶著任務(wù)學(xué)習(xí),比如編寫一個小小的游戲,或者讓機器人跑起來。有了目標(biāo),就可以按照下圖一步一步開始學(xué)習(xí):

 

Python太低級,我選 C++?碼農(nóng)帶你揭穿少兒編程的騙局

學(xué)完藍(lán)色部分,基本什么也做不了,但是對編程本身會有非常清晰的概念,大部分娃學(xué)到這里也就結(jié)束了。學(xué)完橙色部分,就可以實現(xiàn)有趣的小游戲,或者讓機器人隨心所欲跑來跑去,娃會有滿滿的樂趣和成就感。綠色和紫色部分,預(yù)留給走專業(yè)路線的娃,如果上了高中依然熱愛編程,并且有剩余精力,可以開始學(xué)習(xí)這兩部分內(nèi)容。不過即使學(xué)完紫色部分,也不代表編程就學(xué)完了,展示一下專業(yè)碼農(nóng)的路線圖:

 

Python太低級,我選 C++?碼農(nóng)帶你揭穿少兒編程的騙局

學(xué)完這些,才能差不多找一份互聯(lián)網(wǎng)中級碼農(nóng)的工作,而且職業(yè)生涯還比較艱辛。行業(yè)變化特別快,技術(shù)天天都更新,工資全是加班費,年輕人便宜還玩命。所以如果真想要從事職業(yè)碼農(nóng),一定要慎重。作為上一代碼農(nóng),現(xiàn)在我基本只能靠 Word 和 PPT 混日子了。

總結(jié)

如果你真的堅持完整的看到這里,其實已經(jīng)不需要這份總結(jié)了。對于想偷懶的,直接上干貨吧:

  • 不要讓娃從 C++ 入門編程,這樣只會加速娃放棄學(xué)習(xí)
  • 學(xué)習(xí)編程不會提高娃的數(shù)學(xué)成績,也不會提高邏輯思維能力
  • 絕大部分娃最終都會放棄,不要對娃有太高的期許,保留樂趣最重要
  • 如果娃有興趣,坐得住,老師靠譜,可以從 Python 入門編程

最后,對于想入門少兒編程的家長,最重要的就是給娃設(shè)定好目標(biāo),讓娃堅定的一個字一個字編寫每行代碼。當(dāng)克服重重困難,把程序成功運行起來的那一刻,娃會明白這些努力都是值得的。

祝愿每一個娃都可以健康快樂的成長,每一位家長都少一點焦慮,多一點信心。

責(zé)任編輯:未麗燕 來源: 什么值得買
相關(guān)推薦

2009-10-25 11:35:20

手機安全

2020-12-15 15:21:41

C++JavaPython

2023-11-17 11:40:51

C++內(nèi)存

2013-11-14 13:58:06

硅谷碼農(nóng)

2019-05-21 11:20:14

JavaPython編程語言

2019-08-16 09:50:26

JavaPython編程語言

2020-02-01 15:54:45

程序員人生第一份工作播客

2020-12-12 16:08:04

編程語言開發(fā)

2017-12-01 10:05:59

C++編程開發(fā)

2021-02-22 08:21:38

996加班騙局

2022-11-30 14:57:39

產(chǎn)業(yè)互聯(lián)網(wǎng)

2020-12-18 07:41:01

碼農(nóng)編程語言

2022-08-31 15:57:11

程序員

2014-02-14 16:24:25

碼農(nóng)程序員

2015-11-10 20:20:29

2015-03-30 11:21:27

編程編程反思

2023-05-28 22:48:29

程序員編程

2011-05-30 15:29:32

C++

2018-11-15 09:03:13

2020-01-18 14:42:03

編程科技開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號