現(xiàn)如今,編程的重要性不言而喻,很多早教班都開設(shè)了編程課,學(xué)編程已經(jīng)開始從娃娃抓起了。但在《學(xué)習(xí)的升級》中作者認(rèn)為,編程本身并不重要,比別人多掌握幾種編程語言也沒有太大用處,這些東西始終在更替,你是學(xué)不完的,關(guān)鍵在于掌握“編程思維”。
所謂編程,就是人們用簡單的指令告訴計(jì)算機(jī)怎么做事。而編程思維,就是說你要學(xué)會(huì)用計(jì)算機(jī)思考的方式來觀察和理解世界:一方面是說在遇到問題的時(shí)候,用學(xué)會(huì)計(jì)算機(jī)聽得懂的指令,讓它幫你解決問題;另一方面是說要學(xué)會(huì)像給計(jì)算機(jī)下達(dá)指令一樣,給自己的大腦下指令,對問題進(jìn)行
分析思考,從而解決問題。
計(jì)算機(jī)是怎么做事的?
表面上看,計(jì)算機(jī)很厲害,可以做很多事情,但計(jì)算機(jī)的厲害是通過你給出的指令完成的。你給的指令越簡單,它能做的事情就越復(fù)雜。比如你想讓機(jī)器人給你煎個(gè)雞蛋,你不能像跟人說話一樣跟它說:“你去煎一個(gè)雞蛋!”你的編程指令應(yīng)該是這樣的:“你先把油放到鍋里,油溫100度時(shí)把雞蛋放進(jìn)去,然后等待10秒,給雞蛋翻個(gè)面,再等待10秒,最后拿出來放在盤子里。”計(jì)算機(jī)能夠接受的,是這種形式的簡單命令,在計(jì)算機(jī)學(xué)科里,這就叫指令。
計(jì)算機(jī)是很死板的。如果你把指令寫錯(cuò)了,比如你說,先放雞蛋再放油,那么計(jì)算機(jī)就真的會(huì)先放雞蛋再放油,它不會(huì)自己改過來的。如果你聽說哪個(gè)很聰明的計(jì)算機(jī)自己會(huì)改錯(cuò),其實(shí)是因?yàn)楸澈笥钟泻芏嗥渌闹噶顜椭袛嗳绾稳ジ腻e(cuò)。一個(gè)程序就是一系列這樣簡單的、能讓計(jì)算機(jī)理解的指令。
如何運(yùn)用編程思維解決問題?
懂得編程思維,就是知道應(yīng)該怎么把命令告訴計(jì)算機(jī)。換句話說,當(dāng)你能用計(jì)算機(jī)理解的方法去想事情、能用程序把自己的想法表現(xiàn)出來,那么你就能夠讓計(jì)算機(jī)為你做事了。
當(dāng)然,你可能不是程序員,從事的工作跟編程的關(guān)系也不大,但是懂得編程思維同樣也會(huì)給你帶來看待問題的新視角。比如我們熟知的
“分解問題”就是編程思維的一個(gè)基本原理,就是把一個(gè)大問題分解成計(jì)算機(jī)可以運(yùn)作的小問題,然后讓它逐步完成。
在任何工作中,幾乎所有事情都可以從大問題分解成小問題。比如說老師給學(xué)生布置作業(yè),讓他寫一篇文章,那么這個(gè)問題可以分解成收集資料、寫提綱、寫初稿、修改、定稿等。當(dāng)然每一步還可以繼續(xù)往下分解。
把大問題拆成小問題,這個(gè)過程聽起來簡單,但做起來其實(shí)是非常細(xì)致的。你需要回答的問題包括:這件事怎么分步驟來做?這件事可以分成幾步?哪些大步可以再分成小步?哪些可以同時(shí)做?哪些不能同時(shí)做?哪些可以找別人來做?哪些步驟需要有條件才能做?這個(gè)條件是什么?
當(dāng)你學(xué)會(huì)這樣分析問題的時(shí)候,你就很像一臺計(jì)算機(jī)了,你學(xué)會(huì)了正確地給自己的大腦下指令,這就是編程思維重要的真正原因。
文/速讀G先生