我們的現(xiàn)代生活已經(jīng)被各種科技數(shù)字化24小時無縫包圍,編程現(xiàn)在育兒領域都成了熱詞。但我想很多人會跟我有差不多的困惑——孩子是不是非得學編程?If yes,then從哪學起?什么時候?qū)W?
我不是啥IT人士,題目和上段里的問號我都沒找到準確答案,注意,是沒找到準確答案。但是,順藤摸瓜的藤,還是抓了一些的。
今天周末,大家輕松點來看個紀錄片吧。喜歡這個紀錄片是因為它淺顯的告訴我們一些答案,也帶來一些思考,后面我會邊貼圖邊分享我的思考。
這個片子叫做《現(xiàn)代生活的秘密法則:算法》
你以為它是一部涉及計算機和程序員的紀錄片?并不是。
它給恐懼科技的人帶來更深的恐懼感,因為算法無孔不入;給擁抱科技的人帶來更多的安全感,因為算法無處不在。
這時候你可能會問,算法就是數(shù)學么?是,也不全是。
我想可以這么理解:數(shù)學是一個分支浩瀚的基礎學科,而算法是應用數(shù)學的一個分支,它跟概率、序列、最優(yōu)解、檢索等等數(shù)學問題密切相關,但其實是一套解決方案,一種模型,一串計算機可以識別的方法論,它的任務是解決的一個具體問題。它可以應用在計算機科學上,也可以應用在其他學科里。如今社會,計算機科技已經(jīng)滲透到任何一個領域,所以去分清它們誰是誰并不容易,知道它們能做什么事就好了。
上面這段我自己理解的非專業(yè)的枯燥的不嚴謹?shù)牟豢茖W的解釋,姑且一看。
總之 算法是“漂亮地運用數(shù)學規(guī)律去印象深刻地解決問題”。
紀錄片主持人Marcus,本身也是牛津大學的老師,在節(jié)目一開始就跑去找自己的學霸學生們做試驗。桌子上是一大罐巧克力和一根辣椒,每人在罐子里可以選擇拿一個或者兩個或者三個巧克力,誰最后拿到辣椒誰就吃掉。
Marcus總是獲勝的那個,原因就在于他有自己的算法?!?/span>
用↓這個策略,他得以總是刨坑給學生。
這個故事告訴我們,最好的算法,就是能發(fā)現(xiàn)隱蔽在問題中的數(shù)學結構。
程序界有個公式:程序=算法+數(shù)據(jù)結構。
(數(shù)據(jù)data結構并不是數(shù)學mathematics結構,前者是研究怎么高效存儲的。)
那我們可以理解“編程”這個詞了:編程也就是編寫程序,是運用合適的算法和合適的數(shù)據(jù)結構去解題。用什么來寫呢,即計算機能識別的語言,#就是C語言啊Java啊Python啊那些我看不懂的玩意#。
那么,涉及到兒童編程,特別是針對“學習編程越早越好的”的說法來講,你讓一個學齡前兒童去學代碼么?字都不認識,抽象思維都沒形成,怎么可能?讓他們?nèi)W數(shù)據(jù)結構怎么高效存儲么?等他們長大了技術不知道迭代幾百輪了。
能讓孩子接觸的,只有自古以來就有且在現(xiàn)代社會煥發(fā)了新生命的算法了。
看到這里程序員弟弟們都笑了,某些程度來說,算法在他們的領域是很理論的。是不接地氣的,是既成模型(算法)的應用,而選擇不同的算法在特定情境中懂得怎么敲代碼才是編程。還有,現(xiàn)在計算機的數(shù)據(jù)處理能力越來越強,有些程序是不停試錯不停調(diào)試之后出來的結果,至于內(nèi)在算法邏輯是怎么樣的,也許程序員自己都暈特了。
然而我認為,在“計算機領域”之外的人群,需要會的并不是編程本身,不是用哪門語言去寫代碼,而是用算法理論去理解世界,這才是我們需要給孩子打開的那扇大門。
下面我們繼續(xù)體會算法給我們世界帶來的變化。
算法能讓善于找最大公約數(shù)的歐幾里得當瓦工的時候發(fā)大財~
算法是你不再需要每次都重新發(fā)明輪子,因為它讓某類事情有了通用解決方案,你只需要運用它就好 #比如怎么算出最大公約數(shù)來鋪磚#。
而算法才是計算機領域最能體現(xiàn)創(chuàng)造力的一環(huán)。一旦創(chuàng)造出來了,用技術實現(xiàn)它們,反而不是那么難了。
而算法領域中,最首先和最重要的課題是如何排序(Sorting)↓
如果只有一點點數(shù)據(jù),排序是一個簡單并且容易選擇出最優(yōu)方法的問題。但如果數(shù)據(jù)海量,那么如何從已經(jīng)被發(fā)掘出來的20多種排序方法中選出最適合的排序方法來保證讓某個具體問題運作地正確且高效呢?
片中用好幾種有趣的方式,把主流的排序方法講解了一遍。有多淺顯呢?至少我都看懂了。
世界是復雜的,所以用算法來解決問題也是復雜的。因此,沒有最好的方法,只有最適合具體問題的那個?!?/span>
除了排序,匹配也是一個重要的概念?!?/span>
匹配的方法論可以給約會網(wǎng)站帶來更精準的配對↓
當我們給四個Queen和四個King配對時,并不一定會得到最優(yōu)解,但可能得到大家都高興的解,這就是匹配的意義。
匹配在實際應用中還能做什么呢?
在英國,NHS用匹配法來為腎病病人尋找捐獻者↓
當需要解決的事情越關系重大,越要求算法的正確性,當然保證了正確之后還要求高效。我們?nèi)祟愡€要知道,有些問題算法能解決,有些問題暫時難以解決。能分辨出來這些,本身就是一門博大的邏輯課題。
比如,我們感覺計算機可以輕松勝任的西洋棋,其實它能做的只有苦干↓
數(shù)獨也是↓
這也是為什么人工智能通過自我學習橫掃了圍棋界這件事(晚于這個紀錄片),會讓很多人恐慌,因為這個困難的事情,它們也做到了。
更典型的是推銷員問題,計算機如何計算出一個推銷員要走遍他要去的城市,最短的路線是什么?
當走三個城市的時候,計算機很容易計算出最優(yōu)解也就是最短路線↓
但如果變成了五個城市,這種排列組合就成倍數(shù)的增加↓
6個城市、10個城市的時候,計算機的計算量就指數(shù)增加,計算就不再有效率了,等它算出結果來,推銷員可能已經(jīng)跑了十個城市回來了↓
同樣的問題在電路板,在送貨路線,在機場,都天天面臨。
由于技術越來越成熟,機器學習也越來越有所作為,比如決策樹算法?!?/span>
人類的智慧用來設計系統(tǒng),而編程這個活也外包給了機器。(媽媽們,發(fā)現(xiàn)人類不被AI替代的小奧秘之一了么?)↓
人工智能已經(jīng)滲透到我們生活方方面面,比如它了解我們的喜好↓
最令人震驚以及贊嘆的是,英國Ocado超市的自動化系統(tǒng)↓
這已經(jīng)不能用圖片來說明了,必須上視頻↓
其實Ocado這也還好了,因為我大中國的快遞分揀系統(tǒng)也已經(jīng)如此智能了↓
看完紀錄片,相信你不會再迷信一些編程的傳說了。
首先,學好數(shù)學的方方面面才是基礎;
其次,即使未來的孩子人人都需要編程思維,那也是要擁有一套算法思維;
如何擁有算法思維呢?我也不知道,但至少不是先去學具體哪一門語言。
我知道的是,只有在創(chuàng)造力的領域不斷練習,才能永遠不落后于這個飛速發(fā)展的世界。管它AI來臨還是再一次工業(yè)革命,都不需要焦慮和懼怕。
小劇場:
我已經(jīng)開始腦補跟一些編程培訓機構的對話了。
他可能會告訴你學編程練習邏輯→那其實很多事情都可以練習邏輯的,咱不說桌游啊撲克牌啊麻將啊的了,就是日常對話,就都是邏輯的戰(zhàn)場;
他們又說編程鍛煉判斷能力→那可以去玩掃雷游戲啊;
他們又吹編程可以學習序列與條件→那我建議孩子去玩任何優(yōu)秀的塔防游戲比如保衛(wèi)蘿卜??;
哎編程還可以鍛煉空間思維能力呢→那可以去玩紀念碑谷啊;
編程還可以提高觀察力→其實天天愛消除玩得好就可以……
我已經(jīng)滿意的看到了機構人員的不屑臉了:
“你不提前贏在起跑線,錯過了敏感期,會耽誤你的孩子的。”
哎?這話好像在英語機構聽到過。
聯(lián)系客服