每一步,與世界同步
「吃完的螃蟹殼不要扔,裹上一層黑科技,搖身一變『火星車』,完美的饞哭隔壁小孩。」螃蟹?火星車?一個在海里,一個在外太空,八竿子打不著的東西,是一種怎樣的奇妙的跨界組合?前些日子,看到「天問一號」中國火星探測器發射成功,B站up主稚暉君激動的打開了腦洞:
用螃蟹殼做一輛火星車應該會很有趣很酷吧?一個周末的時間,在晶片、電路板、太陽能電池板等硬體裝備加持下,螃蟹火星車就這樣誕生了。
別看這螃蟹車其貌不揚,它卻是集電路、模型、加工、軟體、算法等於一身的高科技產品。
WiFi無線圖傳、遠程控制方向;雷射測距,限定目標距離;內置慣性傳感單元……要知道,這些都是一輛真正的火星車所具備的功能和軟硬體。
更驚喜的是,這輛螃蟹車還有AI功能加持,實現人臉開車!隨著人臉的轉動,車子的行駛方向也發生改變。
隨著視頻傳出,「螃蟹火星車」在B站火了,稚暉君擁有50萬+粉絲也順利出圈。粉絲們不僅折服於他的才華,更是忍不住效仿他的作品。
就連各大媒體也紛紛被吸引過來,競相報道這個優秀而有趣的科技少年。原來,在這個時代,科技少年也可以像流量明星一樣受到喜愛與追捧。
有趣的靈魂萬里挑一
所謂「外行看熱鬧,內行看門道」。稚暉君的作品究竟厲害在哪裡呢?一位專業網友表示:
「其實有些東西吧,外行看起來很牛,但其實我這種內行看起來,還是很牛。」
稚暉君的「螃蟹火星車」就是這樣一個在內行人眼裡,也同樣很牛的東西。其實,細數稚暉君的成長經歷,他算是半路出家,從生物系轉行到編程的。在他看來,學編程和學英語一樣,是這個時代最基本的一項技能,是一門研究「怎麼高效地解決問題」的學科。從小時候學會拆家電開始,稚暉君就愛上了編程等相關知識。大學階段入門了模數電、單片機、Linux、自控原理之類的課程之後,他就徹底開始放飛自我了。
大多數人對技術宅的刻板印象可能都是「木訥」、「無趣」,但他就是這樣通過一個個作品,證明技術宅也可以很有情趣、很受歡迎。王小波說過:「趣味是感受這個世界美好的前提。」打破對技術宅的偏見,會編程的少年,大抵背後都藏著萬里挑一的有趣靈魂。
科技時代的「名利場」寵兒
沒有人不喜歡有趣的靈魂。稚暉君畢業後在OPPO上海研究院成為一名AI算法工程師。
科技時代下的名利場,會編程、懂技術的少年絕對是當之無愧的寵兒。稚暉君絕不是特例。
人才,是科技的命脈。
而就在前幾天,新一批的「華為最高檔天才少年」衝上熱搜,這批天才少年,全球僅4人。
網友們看後都不淡定了:「你看,我還有機會不?」當然有機會,優秀人才的價值,遠非名利可以衡量。掌握科技時代所需的能力,才能讓自己成為無價之寶。
無價之寶的少年,都會一種思維
那麼,名利雙收的背後,需要掌握的能力是什麼呢?
就像很多家長認為「技多不壓身」,把孩子送去不同的興趣班學各種學科知識,但稚暉君表示:知識面一多之後,很難面面俱到,要學會拎清楚重點。但知識是大體相通的,在不同學科之間的遷移學習可以帶來事半功倍的效果。
通過編程學習,稚暉君習得Problem-Based Learning的思維能力,就是以問題為導向的學習,通過融合多學科知識,尋找解決問題的方法和答案。
通俗點說:學習編程的過程,可以培養孩子的思維能力!
因為編程有幾大關鍵性步驟!
- 拆:化繁為簡
化繁為簡,這四個字很容易理解,不過不容易做到。
很多時候我們看到一個難題的第一反應會是:
天啊,這麼大的事情我一個人怎麼完成哦。我不知道我不行我做不到。卻不知道將問題分成一個個能力之內、力所能及的小事情。這一點很多人都需要跟愚公學習。
愚公移山的故事大家肯定都知道,一個想依靠人力將王屋、太行兩座大山搬移開來的老頭,在很多人看來愚公是十分的痴心妄想。
就像隔壁家另一個老頭所說,這是非常愚蠢的做法。
甚矣,汝之不惠。以殘念餘力,曾不能毀山之一毛。——《愚公移山》智叟,語
但是換個角度來看,愚公其實是一個很懂得編程「化繁為簡」的思路。
他並不把王屋太行當做兩座難以逾越的大山,而是把他們看成一筐筐的土石,一點一點的搬移,總能清除掉的。
雖我之死,有子存焉;子又生孫,孫又生子;子又有子,子又有孫;子子孫孫無窮匱也,而山不加增,何苦而不平?——《愚公移山》愚公,語
以遊戲編寫為例,對於新手來說哪怕是最簡單的遊戲貪吃蛇,想要編寫成功也是件不小的難題,可是如果將這個問題拆解開來,我們需要做的事情是,設定輸入方式和反應方式。
根據遊戲特性,貪吃蛇沒吃到食物時繼續遊動,吃到食物後會變大,撞到牆會死,撞到自己沒事。
然後我們在設計程序時將這四種分開,針對一種情況設定遊戲,比如「貪吃蛇吃到食物」:
貪吃蛇張開嘴巴食物被吃掉貪吃蛇閉上嘴巴貪吃蛇身體長大一截。
另外幾種情況也依次分解,那麼這個複雜的問題看起來也就沒那麼麻煩了,不是麼?
同時,在這個過程中,孩子能親身到「條分縷析」「有條不紊」的真正含義。
- 整:發現整合
任何一個程序中都不是相互分割無關的數據組成,相反,一個程序中會存在很多「重複」內容。
比如,貪吃蛇中的「吃食物」動作,一個遊戲中貪吃蛇會吃到很多次食物,這也就是前面說到的「重複」。
編程過程中,孩子需要一直做這樣的訓練,發現程序中會一直持續的動作,然後將它打包起來,讓計算機自己重複,以提高編寫效率。
這一點,類似於數學中的「合併同類項」計算題。
3ab-4ab+8ab-7ab+ab=(3-4+8-7+1)ab
只不過相對於數學的單一,編程的趣味性更強。學會利用這一點,孩子就能學會整合訊息的能力。
因為整合併不是簡單相加,而是對現狀的優化,也是推陳出新的方式之一。
- 析:邏輯解讀
其實編程也是 一種語言,只不過和人與人之間溝通不同的是,這種語言是人與計算機的溝通。
理性、嚴謹是計算機的特性,所以與它對話的語言也必須是理性的,嚴謹的,不能出半點偏差的。
仍舊以貪吃蛇遊戲程序為例,如果某處思考出現漏洞,遊戲過程中就可能會出現「貪吃蛇撞了牆沒死」或者「貪吃蛇吃到食物沒有變大」等bug,那麼這就是一個失敗的遊戲程序。
因此,學習編程,就是在對孩子的邏輯思維和邏輯判斷能力進行訓練。
當然,不是每一個學編程的孩子都能成為「天才少年」,都能獲得眾人艷羨的名利。但至少不能讓我們的孩子,對科技時代需要的思維能力一無所知。