《寫給所有人的編程思維》一本老少咸宜的編程思維科普書

“編程思維”並不是編寫程序的技巧,而是一種高效解決問題的思維方式,是“發現問題——思考問題和解決問題”的高效思維過程。

計算機協會對“編程思維”的官方定義是,編程思維是一種解決問題的方法,它將計算機科學的領域擴展到所有學科,提供了一種開發和分析解決方案的方法,從而這些問題有可能由計算機解決。

編程思維學習遠遠大於編寫程序技巧學習。可以這麼認為:你在編程的時候一定使用到了編程思維,但你在學習編程思維的時候,未必需要學編程。因此,編程思維及其核心元素的教授可以不涉及編寫程序的技巧。

《寫給所有人的編程思維》一本老少咸宜的編程思維科普書

《寫給所有人的編程思維》吉姆·克里斯蒂安

今天給大家分享的書就是《寫給所有人的編程思維》,這是一本老少咸宜的編程思維科普書籍。作者是英國著名科技教育專家,編程怪才,暢銷書作家:吉姆·克里斯蒂安。書中通過對“編程思維”的“發現問題的框架設計思維、思考問題的問題拆解思維和解決問題的函數思維”三部分組成。

掌握編程思維的重要性

在我們的認知中編程只是一種語言,一種在數據化時代的新的外語,是一種工具就跟數學、哲學、外語等一樣的工具。編程能夠幫助我們理解每個事物的形成過程,更好的適應未來變化。

學習編程思維對於我們提高技術與知識水平至關重要,因為計算機程序現在已經無處不在,我們手中的智能手機的計算能力,都NASA登月時用的計算機還要強。

計算機太普遍了,我們每天都在用計算機處理問題、進行娛樂。或許,正是太習慣於計算機無處不在的生活,我們都不會去想,其實身邊那麼多東西都是計算機。

正在崛起的物聯網中,用途單一的日常物件如汽車、單車、門禁,在其中置入計算機芯片,使其具備網絡聯通能力,都可以“智能”起來,這都要依賴計算機和程序員才能正常運轉。

《寫給所有人的編程思維》一本老少咸宜的編程思維科普書

編程思維

學習編程思維的過程,將幫助你培養批判性的思維方式,提升你的組織能力,增強你使用計算機的信心。這樣,即便在以後的人生道路上遇到了編程術語的問題,也不會為之困擾。

通過計算機科學、邏輯學和數學核心概念的學習,獲取一套可以終生受益的工具,把自己武裝起來,迎接各種挑戰。

學習思維模式,就意味著有能力創造性地解決問題、表達思想。

其實,你早已經在創造性地解決問題、表達思想啦。但問題在於,你可能還不知道如何以編程思維的視角去看待生活中的方方面面。

如果你喜歡作曲,你就知道如何運用編程思維。

如果你想設計舞步,你就會知道如何運用編程思維。

如果你喜歡打籃球,那麼你也會知道如何運用編程思維。

編程思維,計算機思維,電腦科學,不管你聽到的是哪個術語,這些術語並不只是指數字、符號或者代碼,最重要的是指如何創造性地解決問題。

發現問題的“框架設計思維”

學習編程思維,並不意味著你必須具備多種特殊的技能。不過,擁有解決問題的慾望卻非常重要!其實,你一直都在解決問題,只是自己沒有意識到而已。

試想一下,你要去一個從未去過的地方,走著走著就迷了路,找不著那個地方了。其實這也不算什麼大問題,你可以使用手機導航,可以打個電話找朋友幫忙,也可以查看當地的地圖,或者找行人問問路。這些簡單的從別處尋求幫助的行為,就是解決問題。

解決問題可能具有挑戰性,經常解決問題會使人感到疲憊,但是這對大腦卻不見得是件壞事。我們的大腦需要刺激,這些刺激可以使大腦得到鍛鍊。即使你不習慣每天都要解決很多問題,也可以先從小問題入手,然後再去解決大問題。

定期鍛鍊大腦、解決問題,不僅僅有益於編寫程序或培養編程思維,還有助於集中精力,提高記憶力和反應能力。因此,積極地解決問題,對於每個人而言,都是百利而無一害的。

大腦是由左半腦和右半腦兩部分組成的。右半腦控制左側身體,還負責想象、藝術和創造;而左半腦控制右側身體,負責邏輯思維、語言學習和推理論證。

大腦的左右兩個半球都需要不斷地滋養,才能日復一日地執行任務。我們從每日所吃的食物、所喝的水中獲取大腦所需的營養,還要通過充足的睡眠保證大腦休養生息。

鍛鍊身體也是非常重要的。適當地休息休息,伸伸懶腰,到外面呼吸呼吸新鮮空氣,都是十分必要的。有時候,快走這樣簡單的運動,都有可能讓你想到一個難題的解決方法。

學習編程很有益處,可以同時鍛鍊左、右腦——也就是做到所謂的“全腦思維”。

發現問題的“框架設計思維”就是把一個複雜的大問題,拆解成更可執行、更好理解的小步驟。

思考問題的“問題拆解思維”

想一想一部電影是如何製作並剪輯完成的。好萊塢的電影製作團隊,從視覺效果團隊、服裝師到餐飲服務人員,一般都有好幾千人。

雖然在屏幕上僅僅只看見有限的幾個演員以及導演和製片人的名字,其實他們的背後是一個龐大的團隊。

這些人共同協作,才能保證電影製作完成並順利發行。如果我們把好萊塢電影看作一個需要解決的大問題,那麼演員和相關攝製工作人員就是問題的組成部分,所有這些組成部分共同協作才能最終解決這個大問題。

這些問題,打眼一看,覺得非常複雜。如果是這樣的話,我們就把大問題分解成小問題,一個一個的理解和解決。

其實,聰明的並不是計算機!雖然憑藉內部的芯片,計算機擁有快速執行多項任務的智能,但是一切智慧的源頭還是程序員。

因而,每當程序員要讓計算機執行任務時,都必須給出十分具體、清晰的指令。有些編程語言已經具有一些可供使用的內置指令。這些預先編好的指令,我們先就內置指令做幾個一般性的設想:

計算機能夠接收輸入並提供輸出。計算機接收鍵盤按鍵和鼠標移動的信息,然後將結果輸出到屏幕、儲存設備或者打印機上。

計算機能夠識別數據並加以處理,即計算機可以區分數字、文本以及其他數據類型。

計算機能夠處理變量、邏輯和運算符,完成數學運算。畢竟,計算機完全是依靠數學運算來保證運行的。

計算機能夠辨別方向、標繪路線、在地圖上給出位置座標。即使計算機具備這樣的能力,我們也必須下達十分具體、清晰的指令,計算機才可能完成。

即使計算機具備這樣的能力,我們也必須下達十分具體、清晰的指令,計算機才可能完成。換句話說,不能籠統地告訴計算機整理床鋪、打掃房間、做三明治,必須清楚地解釋所要執行任務的每一項具體步驟。

下一頁的流程圖就展示了機器人是否需要整理床鋪的判斷過程。這個流程圖比較簡單。而用於商務和軟件開發的流程圖多種多樣,既有像這樣簡單的,也有更為複雜的。

《寫給所有人的編程思維》一本老少咸宜的編程思維科普書

整理床鋪判斷過程的流程圖

編程思維就常常要求你離開電腦屏幕,運用其他工具來呈現程序的流程,並與他人進行分享。

解決問題的“函數思維”

假如我要在週六下午三點,到朋友小明家去。我住的地方離他家有10公里。星期六早上,我要先給寵物喂完食,再去游泳。然後,要在下午一點在城北快餐廳吃午飯,估計兩點之前可以吃完。快餐廳離朋友家還有3.5公里。那麼在兩點到三點得走多遠的路呢?

使用抽象思維時,我們要剔除那些與手頭問題無關的信息。例如,我住的地方離小明家有多遠,這就無關緊要,因為星期六下午,我吃飯的地方離他家更近。至於我要喂寵物、去游泳,也都與去小明家無關。

唯一相關的信息只有一個:快餐廳距小明家有3.5公里。

如果是複雜的問題,比如好萊塢大片的拍攝,這樣的場景:在外面觀看影片的過程中,腦海中出現了一些令人驚駭的場面,然而屏幕上並未出現那般恐怖的景象。

導演有時會花費數百萬美元,有意利用鏡頭,拍攝演員面對屏幕上的怪物而做出驚駭的表情,目的在於製作特效,創造緊張氛圍。

完成以上步驟後,就是編程思維的最後一步了,將從問題分解、模式識別和抽象思維中提取的問題進行設計、檢測。

編程時,我們不需要將程序一點一點地全部寫出來,有些部分計算機會幫你完成,這就是函數的作用。

簡而言之,函數就是一種編程語言中已經寫好、可供使用的代碼。這些語句已經編寫在一起等你使用,這就是常說的內置函數。

內置函數因編程語言的不同而有所差異,但其存在的意義在於避免程序員做重複的工作。進行基礎或複雜的數學運算,生成隨機數,在屏幕上顯示文本,這些都是內置函數應用的實例。

有了前人辛苦工作的成果——函數,我們就不需要再花時間重複別人已經做過的事情了。

為了更清晰地解釋這個步驟,我們去見一見著名的數學家、天文學家高斯。如果讓你把1~100的所有數字用心算的方法加起來,你能做到嗎?

早在公元1785年,高斯的老師就給學生們出了這道題。老師本希望能多佔用一些課堂時間,但是出乎老師的意料,高斯很快給出了答案:5050。

《寫給所有人的編程思維》一本老少咸宜的編程思維科普書

1~100 快速求和

不要因為沒有看出高斯所發現的規律而傷心!高斯可是個數學天才,他一生有很多重大發現。他死後,他的大腦都沒有隨著身軀一起下葬——他的大腦被送到哥廷根大學去做研究。時至今日他的大腦還在哥廷根大學呢!

高斯並不是死板的將這些數字一個個相加(1+2+3+……+98+99+100)。他發現這些數之間有一個規律,就是將這組數首尾相加都會出現相同的結果:1+100=101,2+99=101,3+98=101……一共有50組這樣的數字相加。因為1~100中間的數是50,所以高斯只需要計算50×101,最後的答案就是5050。

高斯不是計算機方面的專家,在他的時代也沒有計算機,他只是個9歲的孩子。但是高斯很聰明,善於創造性地解決問題。



分享到:


相關文章: