一位程式設計師爸爸的親筆信:「我不會教孩子編程,你們也別教。」

2020-08-19     魔扣少兒編程

原標題:一位程式設計師爸爸的親筆信:「我不會教孩子編程,你們也別教。」

每一步,與世界同步

身為一名程式設計師是不是教孩子編程的時候會得心應手?

大錯特錯!

以下來自一位程式設計師父親的自述:

我是一個收入可觀卻頭髮茂密的程式設計師,在我們這行比較稀缺。同時,我又是一個8歲孩子的爸爸。相對而言,這層身份更加不易,所以即便我很忙,也願意擠出時間教授他人生必學之事。唯獨有一件事我不會教孩子,就是編程。因為孩子要學的編程,一般人真的教不來。要是剛好你也懂點編程,我勸你也別教。

學編程,也分優生差生?

不可否認,編程這門技術活,創造了太多的商業奇蹟,會編程的人也會越來越吃香。我雖不提倡以後人人以後都去當程式設計師,但我希望人人都能學點編程。正如我們讓孩子學數學,也不是為了當數學家,學習編程也是時代所驅,宜早不宜遲。但只要是學習,就會有成績的好壞,編程者也分「優差生」。一個普通的編程者,只會埋頭寫代碼,按部就班地開發軟體。而一個優秀的編程者,他希望開發的是有價值的軟體,做每一步都會「帶腦子」。

從他剛拿到需求時,就懂得思考資料庫上會有哪些改動,對現有的邏輯有什麼影響,存在哪些可能的風險,以及需要多久的開發周期...

要是不巧出了bug(漏洞),還得思考如何修bug。

這就要求他擁有極為縝密的分析能力,在其他成員遇到困境之時,快速定位解決問題。在技術團隊中擔任骨幹的,往往都是這種人。但以上這些,其實都是思維能力的差距。所以,教孩子學好編程,也絕不是寫代碼這麼簡單,就如同教孩子寫作表達,並非只是教他認認字。一堂適合孩子的編程課,一定是啟發思維能力的興趣課。

程式設計師解讀編程思維

其實學習編程的過程中,給孩子帶來的思維啟發有很多,比如創新性思維、發散思維、邏輯思維等等。但我認為,最重要的是編程思維,這是別的興趣課很難培養的一種思維。所謂編程思維,是「理解問題——找出路徑」的高效思維過程。

簡單說,就是一種幫孩子解決問題的好思維。

用這幾個步驟,怎麼就能解決問題呢?

拆:化繁為簡

化繁為簡,這四個字很容易理解,不過不容易做到。

很多時候我們看到一個難題的第一反應會是:

天啊,這麼大的事情我一個人怎麼完成哦。我不知道我不行我做不到。卻不知道將問題分成一個個能力之內、力所能及的小事情。這一點很多人都需要跟愚公學習。

愚公移山的故事大家肯定都知道,一個想依靠人力將王屋、太行兩座大山搬移開來的老頭,在很多人看來愚公是十分的痴心妄想。

就像隔壁家另一個老頭所說,這是非常愚蠢的做法。

甚矣,汝之不惠。以殘年餘力,曾不能毀山之一毛。——《愚公移山》智叟,語

但是換個角度來看,愚公其實是一個很懂得編程「化繁為簡」的思路。

他並不把王屋太行當做兩座難以逾越的大山,而是把他們看成一筐筐的土石,一點一點的搬移,總能清除掉的。

雖我之死,有子存焉;子又生孫,孫又生子;子又有子,子又有孫;子子孫孫無窮匱也,而山不加增,何苦而不平?——《愚公移山》愚公,語

以遊戲編寫為例,對於新手來說哪怕是最簡單的遊戲貪吃蛇,想要編寫成功也是件不小的難題,可是如果將這個問題拆解開來,我們需要做的事情是,設定輸入方式和反應方式。

根據遊戲特性,貪吃蛇沒吃到食物時繼續遊動,吃到食物後會變大,撞到牆會死,撞到自己沒事。

然後我們在設計程序時將這四種分開,針對一種情況設定遊戲,比如「貪吃蛇吃到食物」:

貪吃蛇張開嘴巴食物被吃掉貪吃蛇閉上嘴巴貪吃蛇身體長大一截。

另外幾種情況也依次分解,那麼這個複雜的問題看起來也就沒那麼麻煩了,不是麼?

同時,在這個過程中,孩子能親身到「條分縷析」「有條不紊」的真正含義。

整:發現整合

任何一個程序中都不是相互分割無關的數據組成,相反,一個程序中會存在很多「重複」內容。

比如,貪吃蛇中的「吃食物」動作,一個遊戲中貪吃蛇會吃到很多次食物,這也就是前面說到的「重複」。

編程過程中,孩子需要一直做這樣的訓練,發現程序中會一直持續的動作,然後將它打包起來,讓計算機自己重複,以提高編寫效率。

這一點,類似於數學中的「合併同類項」計算題。

3ab-4ab+8ab-7ab+ab=(3-4+8-7+1)ab

只不過相對於數學的單一,編程的趣味性更強。學會利用這一點,孩子就能學會整合訊息的能力。

因為整合併不是簡單相加,而是對現狀的優化,也是推陳出新的方式之一。

析:邏輯解讀

其實編程也是 一種語言,只不過和人與人之間溝通不同的是,這種語言是人與計算機的溝通。

理性、嚴謹是計算機的特性,所以與它對話的語言也必須是理性的,嚴謹的,不能出半點偏差的。

仍舊以貪吃蛇遊戲程序為例,如果某處思考出現漏洞,遊戲過程中就可能會出現「貪吃蛇撞了牆沒死」或者「貪吃蛇吃到食物沒有變大」等bug,那麼這就是一個失敗的遊戲程序。

學習編程,其實就是在對孩子的邏輯思維和邏輯判斷能力進行訓練。

編程是一堂興趣課

前面說的這些,都是編程獨一無二的好處。但還是有人會問:「就算是啟發思維,你這個程式設計師老爸也能教孩子吧?」說句實話,我也不是沒試過。在我孩子6歲那年,我就開始嘗試教他編程了。那天我滿懷期待跟他嘮叨了半小時「輸入、輸出」等長篇大論後,他似懂非懂地眨巴著眼睛,點點頭,然後說了句:「爸爸,我一會可以再看10分鐘小豬佩奇嗎?」

行吧,看來我這是「對牛彈琴」。

但打那以後,我也意識到一個問題,給孩子上的編程課需要非常用心的教育設計,你得抓住這個年齡段的心理,得懂得他們的興趣點,得用有趣的方式教學。這對一個沒有教育行業經驗的家長來說,幾乎不可能。

如果僅僅灌輸編程知識,搞不好還弄巧成拙,敗了孩子的學習興趣。所以,我也不糾結了,把這項任務交給專業的人。

關於如何挑選少兒編程課,我心裡其實只有三點要求:

  • 第一,編程知識是否專業。我作為程式設計師,一眼就能看出來。
  • 第二,課程是否有趣。主要看孩子體驗後,是否還有持續的學習動力。
  • 第三,服務是否到位。

作為家長,我得知道我家孩子學習的情況,這就要求老師的能和我進行有效的溝通。

滿足這三點要求的編程課,真不多,魔扣少兒編程是一個。從我孩子學習了三年的情況來看,這是句良心話。

我講講孩子的變化吧。首先,是學習。他學編程很有勁,但他不沉迷,也沒耽誤學習。成績反而還提升了,以前是班級前十的排名,現在大考小考都能挺進前三。就拿學英語單詞舉例,以前他背單詞純靠記憶力,但記憶力總是容易出錯。比如他背Apple這個單詞,經常拼成Appel。學上編程後,他歸納能力悄悄發生了變化。有一天,他突然和我說:「爸爸,我發現Apple和Simple都是同樣的結尾,都是ple!」之後蘋果這個單詞,他再也沒拼錯過。其次,是他的邏輯能力。

他現在有個新愛好,就是迷上了哈利波特。目前8歲的他,已經看完三部《哈利波特》的系列小說了,而且看得不迷糊。

想當年我大學看這電影,看了好幾遍才捋清楚人物關係,他的邏輯思維比我強多了。另外,他的數學成績從沒下過98分,感覺也是得益於此。

文章來源: https://twgreatdaily.com/zh-cn/M8LpBnQBURTf-Dn5eqxI.html