從日常思維到計算機程序編程思維

 

計算機是我們的生活必需品,我們的日常生活已經離不開計算機了。我們都在有意無意的使用計算機。比如一天,你到銀行櫃檯上取錢,銀行的職員使用的也是計算機。當我們使用計算機的時候,我們都是要用計算機上面已經有的軟件,比如說你在使用手機,手機也是一臺計算機,我們要用手機的時候我們想的是,去哪下一個APP來使用?而不是說我們都要自己去寫一個APP,當然,你找遍了所有的這個市場,你找到不自己想要的那個功能的APP,那也許一個特殊的功能需求,要求你想做一件特殊的事情,即也許得要牛自己去寫一個軟件去解決,但是寫軟件的這種事情在現在也很少見了吧?大多數的人都不需要自己寫,這個任務分配給了我們這些學計算機編程的程序員。

所以我們學程序設計的目的是什麼呢?重要的目的不在於你要爲自己寫一個軟件,而是重要通過學習程序設計,你可以理解計算機是怎麼工作的,計算機擅長做什麼樣的事情?計算機能做什麼樣的事情?什麼樣的事情是計算機不容易做或者不擅長做的?計算機一般又是怎麼解決問題的呢?比如說,我們在餐館裏吃飯,剛坐下來,我希望能夠喝一杯水,我可能請服務員給我一杯水,所以呢,你只要跟他說:請給我一杯水。他會轉身走到廚房找一個杯子倒一杯水給你,然後給你拿過來。但是對於計算機來說,如果你想讓他爲你做一件事情,可能沒有那麼好的自動化的程度,也許需要你一步一步的告訴那個計算機,應該怎麼去做?

比如說你可能會對計算機說,你要轉身走到廚房,然後找到一個杯子,然後找到一個水壺,然後在杯子裏面倒入一些水,最後拿着杯子走回桌子。計算機就是這樣子,事實上呢,我們在說,它是電腦,它很聰明很智能。但其實他什麼也不會,只會做一件事情,就是你要他走一步他就走一步,一步步的怎麼做給你看。當然它最大的能力是什麼呢?你叫他做這一步,他一定不會走那一步,他會把你要求做的每一步都按要求做得很好。可是,他不知道怎麼把這些步驟串起來來滿足你的要求,那怎麼去把這些串起來,這就是我們作爲一個程序員要做的事情。即程序邏輯。

所以,當我面對一個人的時候,我們只要對那個人說:what to do,我要你做什麼?他就自己就知道要去做什麼。可是面對計算機,我們就必須要告訴他:how to do,如何去把這件事情做出來。因此我們要告訴計算機,要讓計算機知道如何去把一件事情做起來的時候,我們需要有一定的方式,我們需要有一定的描述這種步驟的手段,那麼這個手段呢,就叫做程序。

程序就是用一種特殊的編程語言去寫出來表達,如Java、Python、Html+CSS、C等等。那麼我們要計算機如何去解決問題,就需要要我們用編程語言來告訴計算機,我要你怎麼一步一步的去做,怎麼走過去去廚房取水來給我喝。我們用編程語言去編寫代碼,通過代碼告訴計算機做事情的步驟,讓計算機按特定的邏輯繼續去執行。

那計算機懂什麼樣的語言呢?如上圖所示的這種語言,在這個圖的右邊可以看到的是一連串的數字,你可能會覺得奇怪,有些不是常見的數字還帶有字母,這是計算機另一種常用的計數方式--16進制的數字。因爲有16進制,也就是說他要從0~15的,每一位都有從0~15的,阿拉伯數字範圍就不夠表達了,計算機就用字母a到f來表達後面的數字,所以裏面有字母在裏頭,但它還是數字,這是16進制的數字。這是一段計算機能夠懂的程序,然後它用計算機的原型,執行一系列的操作。其實這張的數字部分對應的段程序,程序員也不知道這裏面具體是什麼,一看是數值,這些到底指的是什麼樣的意思,需要將這一段程序通過另外的一個軟件或者說通過一個工具,轉換我們能夠看懂的東西,數值轉換之後的程序如圖中右邊部分所示,才知道他原來的樣子是這樣的。

當然在我們學習任何編程語言之前,這一段代碼文字對我們來說也可能還是像天書一樣,但是你大概能夠猜一猜這裏面可能有些什麼樣的東西,幹了啥。那麼右邊這一段程序是做什麼呢?這段程序是在用輾轉相除法,去計算兩個數,也就是這兒的32和26他們的最大公約數。你看到的是這一段程序,雖然這段程序是用編程語言寫的,但是其實他是根據計算最大公約數的數學邏輯寫的,就是下圖右邊的這一系列的文字,這部分可以把它叫做算法。我們要去計算一樣事情,那我們需要有步驟,我們要告訴計算機怎麼去做,就像前面去端水一樣,我們要有有條理的一步一步的告訴計算機,步驟執行完那就得到了我們的最大公約數。

不斷的算下去最後能夠得到一個結果,這樣的一些描述就叫做算法。所以你看計算機能懂的是那種二進制的東西。然後代碼是程序員能夠懂的東西,最後纔是普通人的能懂的東西,就是如何去做計算的步驟,也就是算法。算法-程序-計算機能夠運行的東西,這中間有步驟,有很多的事情要去做,所以,我們要讓計算機去做計算,就需要像這樣去找出其中的步驟,然後呢,又變成原句寫出來。那我們把計算機做的所有的事情都叫做計算,加減乘除運算只是是計算的一部分,所有由計算機去做的事情都是計算。計算的步驟就是算法。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章