12月初,《關于政協十三屆全國委員會第三次會議第3172號(教育類297號)提案答復的函》公布了,對提案中建議的“推動編程教育納入我國基礎教學體系”進行答復,稱將把包括編程教育在內信息技術內容納入到中小學相關課程。從而幫助學生掌握信息技術基礎知識與技能、增強信息意識、發展計算思維、提高數字化學習與創新能力、樹立正確的信息社會價值觀和責任感。少兒編程被納入中小學課程的必要性這個問題,中科院軟件所武延軍給出了答案。1. 目前高水平軟件人才極其短缺,在中國也是如此。雖然軟件從業人員基數較大,但是真正的高水平程序員一才難求。去年年初,IEEE Spectrum( IEEE 綜覽雜志)上的一篇論文對中國、印度、俄羅斯和美國四個國家的計算機科學(CS)專業的學生水平進行了比較。結果顯示,美國處于領先位置。現實情況也是如此,國內大型IT公司長期面臨著國內高水平人才供給不足的問題,不得不把目光投向硅谷,通過高薪引入領軍人物。
一個高水平的程序員必須積累足夠長時間的編程經驗,特別是在計算思維和架構設計上,要從小就養成良好的習慣。從“HelloWorld”的簡單程序,到操作系統、編譯器這樣的鴻篇巨著,需要無數程序員的努力。參與其中也同步收獲了豐厚的市場回報。例如比爾蓋茨、喬布斯、扎克伯格都曾經熱衷于編程。2. 編程能力培養并不會讓人的思維僵化,反而會培養人有意識地把僵化、重復性工作用機器去實現。我們驚嘆于SpaceX獵鷹火箭的自動返回和太空艙自動對接,大狗機器人的靈活,伐木鋤草農機的高效。而這些背后,都是程序化思維實踐結果。把一件復雜的任務分解再分解,把一些重復的模塊合并再合并,把所有能夠自動化的流程抽象成程序,把所有能夠工具化的功能沉淀成工具。這就是編程能夠帶給我們的思維習慣。為了同樣的目標,花費同樣的努力,人和人在成就上為什么會有巨大區別?很大程度上在于有些人能否把重復的、不需要創造力的事情交給機器去完成,而把更多時間投入到關鍵的、需要創造性突破的事情上。編程能力不僅僅反映的是計算機專業能力,也反映了對復雜運籌學的實踐能力。如何安排時間,如何調度資源,如何并行任務,如何防范風險。3. 編程能力的培養越早越好,因為關系到一個人將來對機器和AI的掌控能力。小孩子在很小的時候,往往喜歡做一些重復的事情。但作為教育者,不能讓孩子在簡單的事情上追求滿足感而長期重復,而應該在某個技能得到鞏固之后逐漸提升難度,引導孩子認識到簡單重復的事情可以交給機器,然后站在機器的肩膀上去沖刺下一個挑戰。AI正在為我們的生活提供越來越多的便利,但人類要做AI的主人而不是相反。當前任何一個行業都離不開軟件。正是長期把軟件與行業割裂的思維慣性,導致我們國家當前在工業軟件(例如EDA、CAD、CAE等軟件)領域基礎薄弱,受制于人。工業軟件對于工業行業的意義在于把專業知識(Know How)沉淀為一行行的代碼,使得這些知識更加精確,也更加容易自動化,最終形成龐大的軟件工具,提升行業的生產率。熟練掌握編程的能力,對于身處任何一個行業中的人,都帶來了獨特的優勢。一些行業中復雜繁瑣的事情,也許通過幾行代碼就能搞定。這種解決問題的能力,對于任何人的職業發展都是加分項。