教培參考
教育培訓(xùn)行業(yè)知識型媒體
發(fā)布時間: 2024年12月27日 22:18
提到“編程思維”,你會不會立馬聯(lián)想到一個穿著格子衫、耷拉著黑眼圈的程序員熬夜通宵寫代碼的場景?
如果你點了點頭,那么你對“編程思維”的誤會,太深了?!熬幊趟季S”不是編寫程序的技巧,而是一種解決問題的思維方式,是一種“理解問題——找出路徑”的思維過程。
因此,編程思維并非程序員的專屬。小到洗衣做飯,大到公司決策,都存在編程思維的影子。
編程思維包含四個步驟:分解問題—識別模式—抽象—算法。本文將通過生活案例,幫助你理解編程思維的四個步驟并學(xué)會使用編程思維解決生活中的問題。
1.學(xué)會分解問題
分解問題,是指把一個復(fù)雜的大問題,拆解成更可執(zhí)行、更好理解的小步驟。
生活中,拆分的應(yīng)用隨處可見。
比如當(dāng)你準(zhǔn)備吃一個西瓜時,你并不會直接啃一整個。你會把它切塊,再一口一口吃。這就是把一個問題拆分,然后逐個解決的過程。
再比如,我們想用編程給「超級馬里奧」設(shè)計一個新的關(guān)卡。面對游戲那么一個龐然大物,我們要怎么分解呢?
我們可以把「超級馬里奧」的關(guān)卡分解成游戲場景圖、主人公馬里奧、吃了可以長大的蘑菇、以及敵方-栗子小子等。這樣我們就完成了新關(guān)卡制作這個大問題的分解。
2.學(xué)會識別模式
模式識別是指找出相似模式,解決細(xì)分問題。
天氣預(yù)報通過以往的經(jīng)驗和數(shù)據(jù)對未來的天氣進(jìn)行預(yù)測,這就是在識別模式。
再比如,買4瓶單價4元的牛奶花了4x4=16元,我們知道了“單價X數(shù)量=總價”的模式,當(dāng)再去購買3個單價為7元的巧克力時,我們識別這是跟上次購買牛奶時相似的模式,可以很快算出其總價為7x3=21元。
繼續(xù)以給「超級馬里奧」設(shè)計新關(guān)卡為例。在設(shè)計時,我們參考前面幾個關(guān)卡的模式對新關(guān)卡的游戲場景圖、主人公馬里奧、吃了可以長大的蘑菇、以及敵方-栗子小子等的設(shè)定,這也是識別模式。
識別模式,其實就意味著把新問題變成了老問題,我們在以往經(jīng)驗中搜索類似經(jīng)驗,套用類似的解決辦法。
3.學(xué)會運用抽象
抽象,就是聚焦較重要的信息,忽視無用細(xì)節(jié)。
比如,我們將1只十分熟悉的貓咪放入5只陌生的貓咪中,一開始僅靠形象記憶,就可輕而易舉找到這只貓咪。
但如果把這只熟悉的貓放入50只、100只、1000只陌生的貓群中,我們僅靠形象記憶找到貓的困難會越來越大,大到不可能。
我們?nèi)绻涀∵@只貓咪身上的一個特點,作為它的標(biāo)記,問題立馬會變得簡單。
這個標(biāo)記的過程,就是聚焦較重要的信息,忽視無用細(xì)節(jié),也就是“抽象”。
當(dāng)我們遇到?jīng)]有見過的事物或者問題時,如果能運用抽象的思維去尋找解決問題的關(guān)鍵因素,即事物之間存在的聯(lián)系,那我們解決問題的效率也會有所提高。
4.算法設(shè)計
算法設(shè)計,就是設(shè)計一步一步的解決路徑,從而解決整個問題。
舉個簡單的例子,某大型停車場對于進(jìn)入該場地的車輛有如下規(guī)定:
1、進(jìn)入該停車場必須為客運車輛,貨運車輛謝絕入內(nèi)。
2、如果該車的乘員數(shù)量小于等于4,則收費五元。
3、如果該車的乘員數(shù)量大于4人,則收費八元。
我們要根據(jù)停車場的規(guī)定,做的算法如下:
1、先判斷車型是否是客運車輛,如果是,進(jìn)入下一步,如果不是,不許進(jìn)入。
2、判斷乘員數(shù),如果乘員數(shù)小于等于4,收費五元,允許進(jìn)入,如果不是,收費八元,允許進(jìn)入。
我們根據(jù)前幾步的分析成果,設(shè)計步驟,寫出算法,從而解決了問題,這就是算法設(shè)計。
當(dāng)我們在工作和生活中遇到問題時,可以嘗試通過以上四個步驟,將問題清晰具體地描述出來,并將問題的解決方案處理成為一個個處理流程。長此以往,我們的編程思維將會一步一步建立哦!