編程語言的選擇︱Python還是C++?這是個問題

各地開學時間陸續確定,其他年級返校日子也有眉目,正常開學指日可待下,興趣班再次成為家長群中熱議話題,其中尤以青少年編程最受注意。


孩子要不要學編程?

學哪種語言好?C++還是Python?

哪種語言就業前景理想?


這些都是不可忽略的好問題。


到底該不該教孩子寫程序,如果教,該教哪一種程序設計語言,怎麼教?


關於信息學競賽為什麼在2022年以後指定用c++語言,早在去年,浩天教育就早已做過解釋,可點擊下方文章查看:


以編程從業人員的角度來看,哪種語言並不重要,關鍵是從編程語言學會軟件開發的方法,這才是安身立命,可以用來吃飯的本事。


如果說你的孩子學習編程語言的目的,是將來希望從事這一行,那麼C++或許是較好選擇。


C++,任何學編程的人,對其或多或少都會帶有憎恨,而且一輩子可能也不會用C++寫一個超過100行的程序。C++之所以不招待見,因為它太接近計算機硬件了。


作為一種強類型語言,也就是說,C++需要直接聲明和定義變量的計算機語言,寫程序的人必須瞭解,什麼是整數,什麼是實數,什麼數有符號,什麼數無符號。解決問題,我們必須搞清楚,實數需要小數點後幾位的經度,整數需要幾個字節。問題複雜了,需要分配內存,需要傳遞複雜變量,就要涉及地址和指針。把這些細節搞清楚,的確是需要花點時間學習計算機的硬件和原理。


因為這個,很多人都望而卻步打了退堂鼓。然而,對那些肯花時間鑽研的人,一旦弄明白了底層細節,以後操作計算機就像是庖丁解牛一樣,可以輕鬆玩耍。通過C語言學習編程,起點高,的確有點難。對很多人來說,就像是撞牆一樣痛苦。可是一旦把牆撞破了,就可以把頭伸進計算機的內部世界,能夠享受把自己的想法轉變成計算機程序的自由,最終可以驅使計算機替你思考。


編程語言的選擇︱Python還是C++?這是個問題


相對於厚重堅實的C++,Python在軟件開發上,更傾向短平快的特點。Python可以算最成功的解釋型語言,沒有之一,而是唯一。而之所以受編程人員喜愛,其中原因離不開以下幾點:


其一,嚴格的程序書寫規範。


Python的作者深受Perl語言自由靈活書寫風格之苦,要求Python的開發者,必須按照既定的規則,書寫每一行程序,否則Python解釋器跟你沒完沒了地抱怨,這樣確保了Python代碼有良好的可讀性。


其二,Python程序既能面向過程,也能面向對象。


什麼是過程,什麼是對象,如果你寫不了200行的程序,沒必要去敲破腦袋搞清楚。


其三,Python提供了豐富的基本數據結構,例如元組(tuple),列表(list),字典(dictionary)和集合(set)之類的數據結構。


對於C++的開發者,如果使用這些數據結構,需要學習複雜的標準模板庫,要麼自己去開發,總之是費時費力。而Python的用戶,可以輕鬆使用這些數據結構帶來豐富功能。


最後也是最重要的一點,Python有極其豐富的共享資源。


對於一個應用Python的軟件開發人員而言,一定要記住,你是在用Python而不是開發Python。對於任何一個常用的計算機操作,不管複雜與否,開發人員基本上都可以在網上找到免費的Python代碼庫。開發人員需要做的,就是開發儘可能簡單的Python代碼,調用這些代碼庫,完成自己的任務。


Python容易不容易學?

Python強大不強大?


編程語言的選擇︱Python還是C++?這是個問題

浩天教育信息學實訓基地


我的答案是Python很強大,但是我不知道對於小孩子來說,到底容易不容易學。


現成的Python代碼庫,真的既豐富又強大。隨手抓來的Python代碼庫,讓我們不必關注細節,直奔主題地開發程序,完成我們的工作。有大人幫忙,孩子們可以輕鬆用Python寫一個收發電子郵件的程序。


可以說,用Python來引導孩子喜歡編程是一點問題也沒有的。畢竟上手即可輸出作品的成就,更容易吸引孩子的愛好,從而走入編程這一世界。


不過,如果希望孩子在編程上有所成績,有所鑽研,終究需要了解細節的。


教孩子學習寫程序,不應該是簡單的讓他們學會怎樣用別人的代碼搭積木,而更應該讓他們瞭解每塊積木是怎麼工作的。大人用Python寫程序,是因為我們只看重結果。孩子們學習寫程序,更應該側重過程。如果沒有計算機基礎,只學習Python,孩子再聰明,怕也只能是囫圇吞棗式地學習。在大人的指引下,他們能夠寫出小程序,離開了大人指導,他們還能走多遠?


編程語言的選擇︱Python還是C++?這是個問題

浩天教育信息學實訓基地


理解程序設計的一個基本需求就是,孩子得理解數學中函數的定義。不管是面向對象還是面向過程,我們都會把相關的一組計算機操作組織到子程序(或者叫做函數)裡。理解了數學中的函數,孩子們就可以學習面向過程的程序設計了。能寫出幾十個子程序(函數)構成的程序,才有學習面向對象程序設計的基礎。


四年級有了一定的數學基礎,第二個必修課就是計算機操作。


C++語言基礎班開課啦!現在開始報名


好多孩子會在計算機上打遊戲,卻從來沒有在計算機上發過一封電子郵件。編程的一個基礎就是,計算機打字。孩子正確使用鍵盤和鼠標,也得點功夫。學會操作計算機,就可以真正接觸程序設計了。也就是說上課一定從最簡單的文本編輯工具開始,教孩子怎樣打開命令行窗口(Terminal),怎樣啟動文字編輯器,怎樣輸入程序,怎樣保存代碼,然後怎樣編譯程序,最後怎樣執行程序。


從課程設計上看,要從從數據類型,條件判斷(IF語句),和循環結構開始,讓孩子瞭解一個程序的基本構造:數據,判斷和循環。也就是說,怎樣把一個複雜的問題分解成若干步驟,每一個步驟又通過一個函數來實現。讓孩子們學會,怎樣把這些函數組織在一起,解決他們的問題。


編程語言的選擇︱Python還是C++?這是個問題


想想看,我們為什麼要寫程序?寫程序的目的就是為了解決問題。在寫程序之前,我們腦子裡要形成一個解決方案。這個方案,往往包括多個前後銜接的步驟,甚至有條件判斷,還有重複性的步驟。這些步驟,都可以通過程序中的函數來實現。用計算機求解問題,真正的難點不是寫程序的過程,而是開發問題的解決方案。計算機代碼,只不過是解決方案的計算機實現。


家長應該認識到這一點。教授孩子寫程序,其實是教授孩子用計算機來解決問題。面對相對複雜的問題,如果孩子們可以設計解決方案,可以寫出包括十幾個甚至更多的函數的代碼,那說明孩子們可以進一步提高了。我們可以隨後教授孩子,怎樣以數據為中心,進行面型對象的程序設計,開發更大規模的軟件了。當然這是後話,對於初學者的父母,完全不需要上來就考慮面向對象。


聲明:部分資料來源於網絡,侵刪。更多關於信息學集訓、公益課等問題可留言或私信進行諮詢。



分享到:


相關文章: