幼教網(wǎng)
全國站
您現(xiàn)在的位置:幼教 > 家庭教育 > 幼兒家庭教育 > 智力開發(fā) > 正文

漫談孩子學(xué)習(xí)編程和寫軟件

來源:JHHY菁華浩揚 作者:王有財 2018-06-17 10:17:27

說兩句

  應(yīng)該是美國中小學(xué)即將開學(xué)的緣故,家長需要給孩子們選擇周末興趣班,這幾天好多朋友問我,孩子們要不要學(xué)編程,更具體的說,要不要學(xué)習(xí)Python程序設(shè)計。孩子要不要學(xué)編程,的確是個好問題。就算沒有朋友問,我自己也考過很多,也曾試過。在女兒讀二三年級的時候,我教過她簡單的Python和Java程序設(shè)計。很可惜,成效并不大,盡管我挑選了幾個很有趣的簡單數(shù)學(xué)問題,用計算機(jī)去求解,仍然不能引起孩子的興趣。這就更讓我進(jìn)一步思考,到底該不該現(xiàn)在就教孩子寫程序,如果教,該教哪一種程序設(shè)計語言,怎么教。

  我自己不是計算機(jī)科班出身,但是靠著科學(xué)計算混飯吃,能夠熟練地使用C,C++,F(xiàn)ORTRAN,Java, Visual Basic,MATLAB,PYTHON,Bash, GrADS, NCL甚至是AML寫程序。大學(xué)期間,我正經(jīng)八本上的計算機(jī)課,也只有C語言程序設(shè)計。用了不到一個月時間,我就把譚浩強(qiáng)先生寫的《C語言程序設(shè)計》自學(xué)完了。通過這本書,我學(xué)會面向過程的軟件開發(fā)方法。學(xué)期末,我就用C語言給我們班寫了一個獎學(xué)金評選的程序。當(dāng)時是九十年代末,C++已經(jīng)開始成為潮流。寫程序的人如果不會C++,是不敢出去吹牛的。我很喜歡吹牛,所以買了本C++程序設(shè)計的教材。C++比C語言豐富多了,我用了兩三個月才學(xué)明白什么叫做面向?qū)ο蟮能浖_發(fā)方法。我大學(xué)畢業(yè)的時候,用C++開發(fā)了一套人工神經(jīng)網(wǎng)路的程序。在2000年,在好多國內(nèi)的書店里,如果你問有沒有人工神經(jīng)網(wǎng)絡(luò)方面的書,店員大多會讓你去醫(yī)學(xué)門類去尋找。所以,我那時候,作為一個地質(zhì)系的學(xué)生,用基于人工神經(jīng)網(wǎng)絡(luò)的人工智能,去研究礦山穩(wěn)定性,也值得大吹特吹了。自吹自擂這么多,拉回到程序設(shè)計的話題上,其實哪種語言不重要,關(guān)鍵是學(xué)會軟件開發(fā)的方法,比如前面提到的面向過程和面向?qū)ο筌浖_發(fā)。

  當(dāng)然,一個寫程序的人必須要了解計算機(jī)的體系結(jié)構(gòu)。我很幸運,從C語言開始學(xué)習(xí)編程。學(xué)過C語言的,很多人都很憎恨它,就算學(xué)過,一輩子也不會用C語言寫一個超過100行的程序。C語言之所以招人厭惡,是因為它太接近計算機(jī)硬件了。作為一種強(qiáng)類型語言,也就是說,需要直接聲明和定義變量的計算機(jī)語言,寫程序的人必須了解,什么是整數(shù),什么是實數(shù),什么數(shù)有符號,什么數(shù)無符號。解決問題,我們必須搞清楚,實數(shù)需要小數(shù)點后幾位的經(jīng)度,整數(shù)需要幾個字節(jié)。問題復(fù)雜了,需要分配內(nèi)存,需要傳遞復(fù)雜變量,就要涉及地址和指針。把這些細(xì)節(jié)搞清楚,的確是需要花點時間學(xué)習(xí)計算機(jī)的硬件和原理。因為這個,和多人都望而卻步打了退堂鼓。然而,對那些肯花時間鉆研的人,一旦弄明白了底層細(xì)節(jié),以后操作計算機(jī)就像是庖丁解牛一樣,可以輕松玩耍。

  通過C語音學(xué)習(xí)編程,起點高,的確有點難。對很多人來說,就像是撞墻一樣痛苦?墒且坏┌褖ψ财屏,就可以把頭伸進(jìn)計算機(jī)的內(nèi)部世界,能夠享受把自己的想法轉(zhuǎn)變成計算機(jī)程序的自由,最終可以驅(qū)使計算機(jī)替你思考。在我上大學(xué)的時候,除了計算機(jī)系的學(xué)生,肯去研究C和C++程序設(shè)計的人非常少。多數(shù)人都去學(xué)習(xí)如BASIC這樣的語言。BASIC很方便,方便到變量既可以聲明,也可以不聲明,總之是無所謂,關(guān)系不大。靈活帶來方便,也帶來混亂。BASIC的程序,大都是亂七八糟,就像一盆煮熟的方便面,順著哪根面條,也捋不出一個頭緒。很多人把這個問題歸咎于BASIC程序中的GO TO語句。在我看來,這多少是冤枉了GO TO。問題的主要原因是,那些從BASIC學(xué)習(xí)計算機(jī)程序設(shè)計的人,沒有學(xué)會正確的軟件開發(fā)方法。他們大多是圖簡單,圖方便,圖快,最后把程序搞成了涂鴉。回想一下當(dāng)年我的同學(xué),熱衷短平快學(xué)習(xí)BASIC和Visual Basic之類編程工具的人,大多沒有在軟件一行走下去深入發(fā)展。相反,好多學(xué)習(xí)C,C++和Visual C++的同學(xué),成了軟件業(yè)的精英,現(xiàn)在坐擁豪宅若干。

  前面談的都是歷史,現(xiàn)在轉(zhuǎn)到現(xiàn)實。現(xiàn)如今再沒有人學(xué)習(xí)什么Basic和Visual Basic。短平快的軟件開發(fā),大家都選擇Python。Python可以算最成功的解釋型語言,沒有之一,而是唯一。Python引人指出,大概有這么幾點。第一就是,嚴(yán)格的程序書寫規(guī)范。Python的作者深受Perl語言自由靈活書寫風(fēng)格之苦,要求Python的開發(fā)者,必須按照既定的規(guī)則,書寫每一行程序,否則Python解釋器跟你沒完沒了地抱怨,這樣確保了Python代碼有良好的可讀性。因此,你上周寫的程序,今天還能很容易地看懂。第二,Python程序既能面向過程,也能面向?qū)ο。什么是過程,什么是對象,如果你寫不了200行的程序,沒必要去敲破腦袋搞清楚。 第三,Python提供了豐富的基本數(shù)據(jù)結(jié)構(gòu),例如元組(tuple),列表(list),字典(dictionary)和集合(set)之類的的數(shù)據(jù)結(jié)構(gòu)。對于C++的開發(fā)者,如果使用這些數(shù)據(jù)街頭,需要學(xué)習(xí)復(fù)雜的標(biāo)準(zhǔn)模板庫,要么自己去開發(fā),總之是費時費力。而Python的用戶,可以輕松使用這些數(shù)據(jù)結(jié)構(gòu)帶來豐富功能。 最后也是最重要的一點,Python有極其豐富的共享資源。對于一個應(yīng)用Python的軟件開發(fā)人員而言,一定要記住,你是在用Python而不是開發(fā)Python。對于任何一個常用的計算機(jī)操作,不管復(fù)雜與否,開發(fā)人員基本上都可以在網(wǎng)上找到免費的Python代碼庫。開發(fā)人員需要做的,就是開發(fā)盡可能簡單的Python代碼,調(diào)用這些代碼庫,完成自己的任務(wù)。

  Python容易不容易學(xué)?Python強(qiáng)大不強(qiáng)大?我的答案是Python很強(qiáng)大,但是我不知道對于小孩子來說,到底容易不容易學(xué)。如果沒有任何數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ),我不知道怎么給孩子講明白列表的工作原理。那些現(xiàn)成的Python代碼庫,真的既豐富又強(qiáng)大。有大人幫忙,孩子們可以輕松用Python寫一個收發(fā)電子郵件的程序?墒请娮余]件里的文字和圖片,到底是怎樣從這臺計算機(jī)到那臺計算機(jī)的,孩子們要是問起來,Python程序員應(yīng)該不是很容易回答。隨手抓來的Python代碼庫,讓我們不必關(guān)注細(xì)節(jié),直奔主題地開發(fā)程序,完成我們的工作?墒牵铱傆X得,孩子們學(xué)習(xí)計算機(jī)程序設(shè)計,是需要了解細(xì)節(jié)的。教孩子學(xué)習(xí)寫程序,不應(yīng)該是簡單的然他們學(xué)會怎樣用別人的代碼搭積木,而更應(yīng)該讓他們了解每塊積木是怎么工作的。我們大人用Python寫程序,是因為我們只看重結(jié)果。孩子們學(xué)習(xí)寫程序,更應(yīng)該側(cè)重過程。如果沒有計算機(jī)基礎(chǔ),上來就學(xué)習(xí)Python,孩子再聰明,怕也只能是渾淪吞棗式地學(xué)習(xí)。在大人的指引下,他們能夠?qū)懗鲂〕绦,離開了大人指導(dǎo),他們還能走多遠(yuǎn)?我不是很樂觀。

  相關(guān)推薦:

小升初試題、期中期末題、小學(xué)奧數(shù)題

盡在奧數(shù)網(wǎng)公眾號

   歡迎使用手機(jī)、平板等移動設(shè)備訪問幼教網(wǎng),幼兒教育我們一路陪伴同行!>>點擊查看

  • 歡迎掃描二維碼
    關(guān)注幼教網(wǎng)微信
    gh_5735a1f9f07c

  • 歡迎掃描二維碼
    關(guān)注奧數(shù)網(wǎng)微信
    ID:aoshu_2003

熱點專題

  • 幼兒園教學(xué)課件:奇特的建筑
  • 幼兒教學(xué)課件:小魚的夢
  • 河頭幼兒園“幫水寶寶搬家”

[幼兒園英語課件]幼兒園英語課件:認(rèn)識時間

[幼兒園英語課件]幼兒園英語課件:A Apple

幼升小

幼升小資訊

幼升小政策

幼升小擇校

幼升小指導(dǎo)

學(xué)區(qū)房

幼升小真題

重點小學(xué)

上海小學(xué)

廣州小學(xué)

深圳小學(xué)

成都小學(xué)

武漢小學(xué)

南京小學(xué)

北京一類幼兒園

海淀區(qū)幼兒園

西城區(qū)幼兒園

東城區(qū)幼兒園

朝陽區(qū)幼兒園

其他區(qū)幼兒園

幼兒園資訊

教師園地

幼兒園說課稿

幼兒園教案

教學(xué)論文

幼兒園課件

幼兒園教師心得

幼兒園評語

少兒教育

胎教

早期教育

入園必讀

潛能開發(fā)

藝術(shù)培養(yǎng)

家庭教育

兒童樂園

科普知識

圖書推薦

睡前故事

成語故事

童話故事

唐詩宋詞

孕育指南

時尚媽咪

健康寶貝

美食廚房

趣味數(shù)學(xué)

健康飲食

專家答疑

-->