面向Offer程式設計
眾所周知,面向過程程式設計、面向物件程式設計和函數語言程式設計是現代程式設計的三大正規化。不過在我們大中華區,面向Offer程式設計才是當之無愧的全國第一。
何謂面向Offer程式設計?圖靈完備,自解釋即可。
底層、演算法與原始碼,是面向Offer程式設計的三大要素。
何謂底層?何謂演算法?何謂原始碼?
抽象的名詞,要用生動鮮明的例子做類比,方可通俗易懂。
以吃米飯為例:
- 米飯含水量多少趴?每克能量多少焦?東北米還是江南米?袁隆平米還是日本米?新米還是陳米?拋光米還是打蠟米?不瞭解這些底層原理,你還敢吃米飯嗎?
- 吃米飯是用勺子吃?是用筷子吃?還是用吸管吃?吃米飯之前,一定要好好研究吃大米的演算法。要知道,用吸管吃米飯的時間複雜度可是O(N)吶。學不好演算法,吃碗米飯,吃著吃著一不小心就把自個兒給餓死了。
- 大米,學名水稻,一年生,禾本科植物,單子葉,性喜溫溼,成熟時約有1到1.8米高,葉子細長,約有50到100公分長,寬約2到2.5公分。這些僅僅是我們吃大米必備的基礎原始碼中的一小部分。搞不清楚這些,萬一吃下一碗由猴子進化來的大米,那也太殘忍了吧。
吃米飯,都得講究底層、演算法、原始碼。做軟體,更得面向Offer程式設計。吃透底層、演算法、原始碼,才能對得起到手的工資。