由“三人住旅館”問題想到

“三人住旅館”是程序員面試的道經典問題。具體的問題是:

“有三個人去住旅館,住三間房,每一間房$10元,于是他們一共付給老板$30,第二天,老板覺得三間房只需要$25元就夠了于是叫小弟退回$5給三位客人,誰知小弟貪心,只退回每人$1,自己偷偷拿了$2,這樣一來便等于那三位客人每人各花了九元,于是三個人一共花了$27,再加上小弟獨吞了不$2,總共是$29。可是當初他們三個人一共付出$30那么還有$1呢?”

咋一看是那么回事,但實際上,小弟貪污的是27元里中的2元。而這里卻又拿2元加上27元,把小弟的兩元算了兩邊,結果肯定是錯的。導致錯誤的根源是思維混亂,沒有看到問題的本質。

在編程的時候也是這樣,編程的目的是解決問題。但是如果沒有找到問題的本質,編寫的程序也一定會混亂不堪,bug百出,而這樣的程序只能稱為垃圾。

作為一個程序員應當把問題想清楚了,才開始編程。但是有時候項目特別緊,程序員就只能一邊寫代碼,一邊想解決方案。這樣雖然能提高編程效率,但是這樣做風險很大。如果問題簡單或程序員水平比較高,或許可以在一遍寫代碼時一邊想清楚解決方案。但是人往往過于自信,尤其是程序員,而認為自己想清楚了。就像上面的問題一樣,實際上沒有。

最好的做法是脫離電腦編程,想把問題想清楚,有不清楚的地方找別人討論。直到把問題完全搞清楚了,再坐到電腦前開始編程。編程最爽的時候,就是坐下來啪啪啪寫代碼的時候。

我在編程最爽的時候是連續敲兩個小時的代碼,然后測試通過。當時寫完代碼之后,感覺手指頭都不是我的了,腦袋像是塞滿了東西話都忘記了怎么說。

不光是編程,任何事情都是,只有抓住事情的本質,才能處變不驚。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,243評論 25 708
  • 本文把程序員所需掌握的關鍵知識總結為三大類19個關鍵概念,然后給出了掌握每個關鍵概念所需的入門書籍,必讀書籍,以及...
    dle_oxio閱讀 11,207評論 6 244
  • 婚姻如飲水,冷暖自知。彼此找對舒服的相處模式,婚姻就成功了一半了。 2017年8月19日 星期六 多云 夫妻...
    三生有幸遇見你閱讀 313評論 0 3
  • 開始下雨了,電梯下行,雨水貼著玻璃而落,模糊了江景。 江邊總有些無所畏懼的人,甘愿冒雨拍照。 也許某張自拍恰好定格...
    萬粒閱讀 130評論 1 2