編程VS做菜

寫程序有時候就像是做菜一樣。很多人都這麼比喻過,從寫程序和做菜的對比中我們能得到什麼啓發呢?因爲寫一個程序的週期相對是比較長的,而做菜的過程確是很短(時間太長了會有人餓暈過去的,呵呵)

【淺析】

先從小程序說起,一個小程序的開始,都是胸中有溝壑,敲鍵如有神。只需要腦海中有大概的一個構思就可以了,隨便做出來個什麼東西,最後不合心思大不了再改。就如自己隨便做一些家常菜一樣,不需要嚴格工序,有菜,有鍋,有火,加熱即可食用。不在乎美味與否,好看與否,反正最後都是下自己的肚子,香苦自知。
再來說大程序,精品菜。這些東西都是比較講究的,光是胸中有溝壑是不夠的,因爲你的溝壑可能不足以覆蓋整個程序的始末。
所以要有嚴格的工序,無論你是用敏捷還是用RUP或者是XP,都要有一個規範作爲指導,不可肆意妄爲,否則會破壞整體結構。而對於做菜,無論你坐什麼川菜,粵菜,或湘菜,你都要按照一定的步驟來走,需要遵守菜譜才行,川菜需要麻辣,那你就不能讓酸辣,不然整盤菜就變味了。

【過渡】

我個人感覺之所以那些精品菜比較美味、受人歡迎,除了有嚴格的工序之外,還需要有相當的輔料才行。一盤菜的色香味,出了菜料本身,更多的因爲輔料的使用。就像是一個完整的程序,除了用SSH或者SSI或者其他的一些框架之外,更多的是對框架的一些補充,或者是框架涉及不到的地方,如使用ant自動構建,Maven來進行項目管理,或者js提升用戶體驗。
這些東西都是脫離主體之外,但有缺之不可。因此,纔有了“一千個程序員(廚師),就會創造一千個程序世界(美味佳餚)”這句話。同樣的材料,同樣的框架,不同的人來做效果完全不同。主要取決於創造者的閱歷,經驗,以及領悟。

【深挖】

即便是對於相同的菜譜,相同的廚具,相同的作料,不同的程序員做出來的味道也會截然不同。造成這樣的差別除了上面所說的經驗、閱歷、領悟能力不同之外,還取決於程序員的基本共如何,有沒有很好的刀工,有沒有很好的勺工。另外還有一項最爲重要的就是程序員對菜譜的理解,對菜料的理解,以及對作料的理解,甚至是對廚具的理解。
即便是一個擁有很多經驗、閱歷,以及領悟能力超人並且有很好的基本功的程序員,如果不理解菜譜,不瞭解菜料,不瞭解作料,不瞭解廚具,我想即便是做出來一摸一樣的菜餚,也只是在“色”上有了一定的功夫,談不到“香”,更談不上“味”。
在上述內容之外其實可以牽扯出來最最本質,最最重要的東西——對上述內容的掌握,只有充分掌握上述內容才能綜合的運用,才能把各種材料和自己的技藝精湛的發揮出來,最終可以超越菜譜,到達“創”的境界。

【總結】

做一個出色的廚師很難,做一個優秀的開發人員也不易,框架用的再熟練充其量也是個技工,只有不斷的掌握其本質,掌握環境,平臺,才能真正做到:胸中有溝壑,下筆如有神的最高境界,此溝壑纔是真正的溝壑。

 

文章出處:http://www.the5fire.net/archives/program-like-cook.html

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