CSDN編者注:這條和第1條好像有點對著來嘛。
開發人員就應該能夠寫代碼。
去年做了很多面試,我主要會測人們的思路,如何在白板上實現比較簡單的算法。我往往從這樣的問題開始:
已知Pi可以用函數4 * (1 – 1/3 + 1/5 – 1/7 + …) 計算,項越多越精確,請寫一個函數,計算小數點后5位的Pi。
這是一個10行C#就能搞定的問題。但許多面試者甚至毫無思路。所以我只好接著問這樣的問題:
已知圓的面積是Pi乘以半徑的平方,寫一個函數計算。
居然有超過半數的人無法用任何語言完成這個函數!唉,開發人員應該能夠寫代碼,現在連這個都成有爭議的觀點了……
設計模式弊大于利。
軟件設計,尤其是好的軟件設計千變萬化,沒法有意義地用模式去總結,尤其是那些大家記得住的幾個模式,而且這些模式也太抽象了,其實沒幾個人真正記得住太多。所以設計模式其實沒啥用。而另一方面呢,又有太多的人為設計模式的概念迷住,想方設法到處用——結果代碼中往往除了一些毫無意義的單例和抽象工廠之外,幾乎找不到什么設計。
代碼少少益善。
如果用戶看不到你的工作,才是做對了。榮耀在別處。
其他比較熱門的答案還有:
21. 性能真的很重要。
22. 企業應用很滑稽。需要n年經驗是胡扯。計算機科學學位課程純忽悠。(鏈接)
23. 單元測試無助于編寫好代碼,軟件工程大多數所謂的最佳實踐都是為了防范爛程序員搞太多破壞。(鏈接)
24. 每個程序員都應該熟悉現代計算機的體系結構。
25. 編寫小方法。
26. PHP真爛!
27. C++是有史以來最差的語言之一。(鏈接)
28. 大多數職業程序員都很爛。
29. 要想成為程序員,你得先學會打字。
30. 編程之外的各種流程規矩越多,代碼質量越差。(鏈接)
資深的游戲程序員James Hague(名博Prog21是也)也看到此文,覺得這些觀點都沒啥太大爭議性。他專門寫了一篇博客,又提出了他自認為更具爭議性的觀點,其中不少觀點指向他之前發表的其他文章:
31. 計算機科學專業應該只作為輔修學位。
32. 新程序員還沒有弄懂分解問題和將解決方法變成代碼之前,就給他們介紹面向對象是大錯特錯。
33. 復雜的編譯器優化幾乎都沒什么價值,即使能得到更快的代碼。它們會大大降低編譯速度而且很可能產生難以處理的bug,使性能問題的處理更加困難。
34. 不能允許沒有十年編程經驗的人編寫供他人使用的庫。忽略此條,抱憾終身。
35. 代碼丑陋與否無關緊要。有沒有格式與代碼是否工作、可靠沒什么關系,可以讓自動化工具來整理格式。
36. 純函數式編程沒啥用。但在命令式代碼里雜用一些效果不錯。
37. 軟件工程的既定思維反而會阻礙你做出偉大作品。
對這些編程觀點你怎么看?你有什么值得爭議的驚人之語嗎,歡迎曬出來大家共賞析。
原文轉自:http://www.anti-gravitydesign.com