競爭程式設計與實際程式設計的不同
你在叢林裡,有一把小刀,有人要求你去殺掉一隻美洲獅。任何人都會問“美洲獅在叢林裡到底在做什麼?!”,除了程式設計師。不過,這不是你被訓練為程式設計師要去做的事情。你在這裡要解決問題,而不是對問題提出質疑。
數年的訓練已經教會你了很多,你用小刀削尖木棍,砍斷藤條來甩動一端的尖銳石頭。或許你來自於一流大學,你已經學會了從周圍植物和昆蟲體內榨取必要成分,以增加武器的毒性。
你堅信,你有一種殺掉獅子的、有效的、有能力的方法,你開始為了完成任務而努力。或許你的木棍太短,或者你的毒液不起作用。沒關係,你能夠活著改善方法,並在明天再次試驗。
隨後有人找到了一種方法,收集叢林裡的化學東西製作了輕度爆炸物。你的精加工梭鏢的方法對於完成任務,遠遠不是最好的方法了。然而,它仍然是簡單的方法,並繼續在學校裡教。每個獵獅人都要被教會如何從頭建造他的工具。
這是“現實中”的程式設計。
在競爭程式設計中,你從同樣的資源(小刀)開始,期望你用兩分鐘殺死獅子。
作為初學者,你會盯著獅子,什麼也沒做。
很快,你就明白,如果你殺了一隻松鼠,說不定裁判認為它是獅子,就這麼幹吧。
一名更有經驗的程式設計師,只是堅持刺獅子,希望獅子及時死掉。很快,你知道獅子身上有一些破壞免疫的固定部位,你知道甚至刺這些部位根本不用費力。有時候,獅子沒有暴露這些部位,因此你真正擅長的是殺死松鼠。
那麼,為了成為偉大的、有競爭力的程式設計師,你需要能夠做兩件事。
首先,你必須學會如何找到獅子的致命弱點並一擊斃命。
其次,你必須學會如何讓你的小刀更方便,你要在一分鐘內做一個尖木棍,用剩下的一分鐘把獅子刺死。
但是,你從來沒有足夠時間去製作炸藥來對付獅子。
————
Balajiganapathi Senthilnathan 的觀點
它們就像和Python和Brainfuck語言【注1】的不同。
在競爭程式設計中,你不得不選擇首先想到的、你認為可行的演算法進行編碼。程式設計的目標只是搞定它,並最少出錯。你不必擔心維護文件等等。沒必要考慮如何命名變數、切割程式碼為函式等等。還有,競爭程式設計是短暫的,你將不必在一個問題上花上幾天時間。你大部分時間是在編碼。
雖然,競爭程式設計讓你對演算法以及如何實現有了重要的理解,你在大部分工作中將發現,程式設計師只是在使用演算法方面的類庫。因此,競爭程式設計最有用的地方就是,對於手頭的問題,使用哪種演算法。在工作場所,你花在寫程式碼的時間只有很少一塊,大部分時間花在了決定去編碼、測試、文件和……
注1:Brainfuck,是一種極小化的計算機語言,它是由Urban Müller在1993年建立的。由於fuck在英語中是髒話,這種語言有時被稱為brainf*ck或brainf***,甚至被簡稱為BF。http://zh.wikipedia.org/wiki/Brainfuck
via:labazhou
相關文章
- 程式設計師的核心競爭力是什麼?程式設計師
- 什麼是程式設計師的核心競爭力?程式設計師
- 什麼才是程式設計師的核心競爭力?程式設計師
- 程式設計師最核心的競爭力是什麼?程式設計師
- 程式設計師怎樣找到自己的核心競爭力程式設計師
- 參加程式設計競賽對實際工作的用處程式設計
- 幽默:遊戲程式設計與其他程式設計完全不同? - hillelogram遊戲程式設計
- 做個清醒的程式設計師之打造核心競爭力程式設計師
- 社交遊戲玩法設計—競爭與對抗遊戲
- 如何進階一名有競爭力的程式設計師?程式設計師
- 趣圖:“大學時學習中的程式設計”與“實際工作專案中的程式設計”程式設計
- 大齡程式設計師沒競爭力?職場中這些程式設計師更容易走上管理崗!程式設計師
- [程式碼結構設計]根據不同條件使用不同實現類的業務程式碼設計
- 某大學程式設計競賽程式設計
- 程式設計能力與程式設計年齡程式設計
- 《程式設計師的春天:EOM與程式設計師》程式設計師
- [Hook] 跨程式 Binder設計與實現 - 設計篇Hook
- 幽默系列:程式設計師與眾不同之處程式設計師
- 談談如何在面試中發掘程式設計師的核心競爭力面試程式設計師
- 實際工作中的程式設計是怎麼樣的,與學校裡有什麼不同?程式設計
- 那些有爭議的程式設計觀點程式設計
- 那些最有爭議的程式設計觀點程式設計
- 那些爭議最大的程式設計觀點程式設計
- 程式設計師程式設計的10個實用技巧程式設計師
- 程式設計師程式設計時的簡單方法與技巧程式設計師
- 邏輯程式設計與函式程式設計的介紹程式設計函式
- Java實驗六: Java流式程式設計與網路程式設計(頭歌)Java程式設計
- 程式、程式設計與三論程式設計
- 因《C程式設計伴侶》的爭執,談譚浩強《C程式設計》的批評C程式程式設計
- 2018 年,程式設計師要具備哪些核心競爭力?程式設計師
- 程式設計師與非程式設計師的思維差異程式設計師
- 實際工作中是這樣程式設計的程式設計
- cuda程式設計與gpu平行計算(四):cuda程式設計模型程式設計GPU模型
- Java併發程式設計(Java Concurrency)(8)- 競爭與臨界區(Race Conditions and Critical Sections)Java程式設計
- 十個有爭議的程式設計觀點程式設計
- 最具爭議的10個程式設計觀點程式設計
- 盲人程式設計師的程式設計生涯程式設計師
- 幽默圖:不懂業務的程式設計與實際使用者體驗程式設計