本人12歲,學過Python和一點點C++,我來談一下我自己的一點見解。

首先,Python和C++的領域不同。Python更偏重於應用類和人工智慧。我對人工智慧沒有過多的了解,所以不做評價。用Python編寫爬蟲,進行數據分析,開發一個簡易小網站是肯定比C容易的。但是,C++也有它自己的優點。最顯著的優點就是它的運行速度很快,所以很多Python人工智慧的框架底層實現都基於它。C++,以我的認知,是更偏重於底層的,很多演算法競賽(比如CSP,NOIP)都是推薦使用C++的。

綜上所述,選擇哪個更偏重於您孩子的興趣。如果他更喜歡應用類,比如爬蟲和數據分析等,那麼他更適合Python,如果他更喜歡一些硬核的,比如演算法,那麼C++會更好。

但是,兩者之間的難易度也有差別。Python相較於C++來說更容易上手,學習曲線也更平緩。即使他以後不再喜歡某一個語言了,掌握了編程的基本概念,再學其他語言也會很簡單。

最後,這只是來自一個12歲小朋友的個人見解,有錯誤還請指教!


孩子15歲,該學Python還是C++???

不時地有接收到家長們的詢問,「孩子學Scratch一段時間了,接下來想進入文本式編程語言的學習,不曉得學Python好,還是C++好」,這個問題,其實很難回答。因為孩子情況不同,家長訴求不同,且本身兩種語言之間也沒有孰優孰劣之分。

也不時聽到家長這樣說「我沒想讓孩子參加信奧,所以我們不學C++,選擇學Python」,「孩子想往人工智慧領域發展,所以我們選擇學Python」。

在解答「孩子為什麼要學編程」,「Python和C++,我們怎麼選擇」之前,我們先澄清家長們選擇讓孩子學習Python或C++的兩個誤解。

信奧與C++之間的誤解:我們可以這樣說,C++是信奧的必要條件,但信奧不是C++的充分條件。即如果想參加信奧,就必須學C++,因為信奧採用的語言是C++(之前還有PASCAL,但後面這個語言會取消,只有C++了)。

但是學C++,並不只是針對信奧。C++(其實是C/C++)在計算機領域,可以這樣說,在高級語言里,它是最貼近計算機底層的語言,象我們耳熟能詳的操作系統Windows、Linux就是用C/C++來開發的。所以如果想要了解計算機底層的工作原理,我們也需要選擇學習C/C++。

Python與人工智慧的誤解:為什麼我們現在說到人工智慧就劍指Python,這是因為Python在科學計算和數據分析上有它的優勢,且語言本身又容易讓人上手,所以可以說是機緣巧合,Python成為了當前人工智慧的主流語言。

但其實人工智慧的核心演算法很多是依賴於C/C++的,象著名的機器學習框架TensorFlow其核心代碼就是用C/C++寫的。所以我們或許應該這樣說,目前Python是人工智慧應用領域的主流的語言,C/C++是人工智慧核心演算法的主流語言。

接下來我們通過一些類比再來嘗試解答下「孩子學編程是選擇Python還是C++」。首先聲明一下,由於本人對於音樂的理解有限,僅限於一個普通人對於音樂的認識,而且這畢竟是兩對完全沒有相關性的事物之間的類比,所以下面類比不可能可以完全等同而言。最重要的是想通過這樣的類比,讓對編程幾乎沒有了解的家長們可以有一些直觀的認識。

C++與Python怎麼選擇?

——Python和C++類比為電子琴和鋼琴

電子琴和鋼琴——兩個都是樂器,都可以進行音樂能力的培養;

Python和C++——兩個都是編程語言,都可以通過編程來解決問題,鍛煉我們的各類思維和能力。

電子琴和鋼琴——相對來說電子琴入門容易,鋼琴入門難,因為一個對按鍵力度有要求,一個似乎上手就能玩。學鋼琴更需要孩子的耐心;

Python和C++——Python入門容易,C++入門難。有種調侃說「Python入門時間按天算的,C++入門時間按年算的」,當然這是誇大了的說法。學C++更需要孩子的耐心。

電子琴和鋼琴——鋼琴相對基礎,學了鋼琴,再學其它樂器相對來說入門就簡單了;

Python和C++——C++相對基礎,學了C++,再學其它語言相對來說入門就簡單了。

電子琴和鋼琴——電子琴音色多,伴奏多,可以各種變著花樣來玩,娛樂性更強,更容易讓初學孩子產生興趣;而鋼琴就相對枯燥一些。如果孩子愛搗鼓樂隊、編曲什麼的,那麼學電子琴是不錯的選擇;

Python和C++——Python有豐富的第三方庫,可以各種變著花樣玩,容易讓愛搗鼓的孩子做出「可見可得」的應用,做個爬蟲,弄個詞雲分析,建個小型網站,很快能上手,容易有成就感,激勵孩子持續學習。相對來說C++沒有那麼多的第三方庫,不要說爬蟲、詞雲分析、小型網站了,即使構建一個簡單的小應用,因為語言陷阱較多,很容易碰到問題,排查問題多了容易對初學者造成打擊。

電子琴和鋼琴——會彈一個簡單甚至較複雜的曲子,並不代表已經掌握了樂理;

Python和C++——會編寫一個簡單甚至較複雜的程序,並不代表已經掌握了編程能力。

電子琴和鋼琴——鋼琴可以作為特長加分,而電子琴似乎沒有特長加分這一說;

Python和C++——學C++參加信奧比賽,信奧獲獎可以為升學加碼。Python目前沒有這類比賽。

電子琴和鋼琴——兩者要精通都不容易,精通區別於熟練,我認為熟練在於「然」,而精通在於「所以然」,所以熟練也許只要時間的堆積,不斷地練習就可以達到,但是要精通,更需要在練習過程中不斷地思考和總結;

Python和C++——兩種編程語言,也一樣,熟練一門語言,多用多實踐,什麼功能用什麼庫什麼函數,信手拈來。但是精通一門語言,更需要我們對於語言本身的設計有底層的認識。

電子琴與鋼琴——精通電子琴或鋼琴,都是音樂能力的體現。但熟練演奏電子琴或鋼琴,並不代表音樂創作能力一定就高;

Python和C++——精通Python或C++,都是編程能力的體現。但能用編程解決各類問題,並不代表創新能力一定就強。

上面說的是不是有點複雜了?

如果想要簡單點,我覺得可以總結為一句話:如果不想讓孩子走競賽路線,建議讓孩子學習Python。


買幾本好書讓孩子自己學吧,我就是初二的時候自己學的C語言的,只要書的內容範圍是初中能看懂就行(別出現一些涉及高等數學線性代數的複雜的證明什麼的)

報班老師不一定靠譜,自己找網上國外的公開課視頻看更好。有問題可以找個大學生付點錢付費諮詢。

ps:我初中學完C語言不知道接著看什麼書,百度搜索,給我推薦《演算法導論》。。。然後我就看不懂了。。。。就沒接著往深里學直到現在


謝邀請

第一,邏輯思維能力,感覺更多的時候只能明白要做什麼,其實並沒有理解為什麼要這麼做,而且更多的時候是直線思維,對每個if條件往往都是代碼的堆積,對程序邏輯的提煉歸納基本沒有,看著寫了一大段代碼,其實很多都是可以復用或省略的,這樣的代碼可維護性很差,效率很低,沒有一點美感,如果是工期緊的項目也就不多說了,但往往很多時間充裕的項目也這樣感覺上就是能力的問題了。

第二,數學基礎,很多演算法看起來就很冗餘,執行效率低,往往很多步驟都是多餘或者重複的,感覺如果有一定的數學基礎,在紙上寫一下歸納一下,就能簡潔很多,執行效率也會提高,這也是能力方面的問題,相當來說薪水較高的大公司的程序員這方面要強一些。

第三,理解能力,現在很多軟體尤其是行業軟體需要更多的理解業務需求,這方面的溝通也能體現出差異。

如果要做一個流水線上的程序員,學歷低點其實也是合格的,但是要能獨擋一面有更好的發展還是需要更加努力的,現在已經不做開發和項目經理了,但當時曾經想過我和新人的價值差別在哪裡?

推薦編程自學網站

C語言網 - 編程入門學習 - 實用的編程在線學習網站?

dotcpp.com圖標

歡迎交流交流


建議C語言,不是C++,學好C別的都容易學很多,主要是內存和指針的理解.


這年紀剛好,你家孩子要是能堅持學的話,階級跳躍不是問題。報課沒啥用,自學永遠是學習編程的最好方法。當然了如果他堅持要報班就給他報,最重要的就是你們家長不要打消他對編程學習的積極性。編程仍然有很好的就業前景。

我聽我學弟說進編程專業需要選課的時候選物理(具體怎麼樣不了解,我也沒選過課),注意這個就行。

讓他野蠻生長就好,能堅持的人一定會有大成就,堅持不下去就算了,編程沒有強求出來的大師。


建議先入手c,c++的部分特性有點難搞。培訓班倒沒必要上,網上多得是免費課程,而且部分高中會有acm競賽班,可以考慮報名一下。當然也可以考慮學學前端交互,網頁開發簡單效果好,成品出得快,有利於進一步提升興趣。


可以學了,感興趣是可以的,我是大學才學的,那會已經學不進去了,你說的這個機構我看了下,比學校的安排其實還要合理一點,我們上學那會,直接就開始了,這個課程安排把基礎的一些東西都分步驟安排了,15歲堅持學下去,大學那會就更加如魚得水了。


推薦閱讀:
相关文章