來源:https://www.zhihu.com/answer/141334678
小編推薦一個學C語言/C++的學習裙【 712,284,705】,無論你是小白還是進階者,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多干貨和技術資料分享!
前言:
知乎上有個問題:編程到底難在哪里?知乎網友 DJ Hitori 的回答獲贊無數,
這篇回答并不是講述在生活中程式員如何買蘋果,而是以買蘋果為例說明程式員如何解決問題,
程式員需要對問題進行透徹的分析,理清其涉及的所有細節,預測可能發生的所有意外與非意外的情況,列出解決方案的所有步驟,以及對解決方案進行盡量全面的測驗,
而這些正是編程難的地方,任何一點遺漏都會成為bug,輕則導致挨罵,重則導致經濟損失甚至危害安全,
回答原文:
普通人:
我今天要買一斤蘋果,
程式員:
我今天要買一斤蘋果,
因為我只喜歡紅富士蘋果,所以我只買紅富士蘋果,
我能接受的最高價格是10元/斤,
正常情況下一斤蘋果用一個袋子能裝下,但是為防萬一,我會帶兩個袋子,
我知道附近的3家水果店,所以我會依次訪問這3家水果店,
根據上述條件,我設計出以下的買蘋果的流程:
這個流程怎么樣?我來設計一些測驗樣例,測驗一下這個流程,
測驗發現一個問題:如果水果店0和水果店1都有紅富士蘋果并且價格都低于10元/斤,而且水果店1的價格比水果店0更低,那么我希望買水果店1的蘋果,但我設計的流程會讓我買水果店0的蘋果,
為了解決這個問題,我應該先詢問所有水果店的價格,然后去價格最低的那一家買蘋果,
經過修改,我重新設計出以下的買蘋果的流程:
現在這個流程是不是完美了呢?不是,我還能發現很多問題,
如果3家水果店都有紅富士蘋果但都不到一斤,但是三家店加起來能達到一斤,那么我不應該結束流程回家,而是應該把三家店的紅富士蘋果都買下來,
如果我向水果店詢問價格的時候這家店還有紅富士蘋果,但我詢問完所有水果店的價格后這家店的紅富士蘋果賣完了,那么我的流程會讓我試圖處理不存在的紅富士蘋果,
我走路的程序中可能會遇到突發事件,比如發現了新的水果店,比如袋子破掉了蘋果掉一地,對于這些情況我的流程都無法進行處理,
啊問題太多了我懶得再改流程了,我還是去X寶買吧,
那么接下來我要設計一個在X寶買紅富士蘋果的流程……

看了這個回答,你有什么感想呢?
學習編程并不僅僅只是學習編程技術,還有編程思維,
蘋果公司首席執行官蒂姆·庫克(Tim Cook)給出了這樣一條建議:“編程應該成為所有公立學校的必修課”奧巴馬為了號召美國吃瓜群眾讓娃學編程,還親自寫了一段代碼,并表示向美國學校資助40億美元用于計算機科學教育,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/266199.html
標籤:C
下一篇:編程學習 | c語言源程式擴展名
