民初思韻網

加入收藏   設為首頁
選擇語言   簡體中文
你好,請 登陸 或 注冊
首頁 人文思韻 傳奇人物 歷史思潮 時代作品 話題討論 國民思韻 民初捐助 賬戶管理
  搜索  
    人文精神 >>> 技術話題—商業文明的嶄新時代
字體    

競爭編程與實際編程的不同
競爭編程與實際編程的不同
www.labazhou.net     阅读简体中文版

  英文原文:Competitive Programming: How is competitive programming different from real-life programming?

  你在叢林里,有一把小刀,有人要求你去殺掉一只美洲獅。任何人都會問“美洲獅在叢林里到底在做什么?!”,除了程序員。不過,這不是你被訓練為程序員要去做的事情。你在這里要解決問題,而不是對問題提出質疑。

  數年的訓練已經教會你了很多,你用小刀削尖木棍,砍斷藤條來甩動一端的尖銳石頭。或許你來自于一流大學,你已經學會了從周圍植物和昆蟲體內榨取必要成分,以增加武器的毒性。

  你堅信,你有一種殺掉獅子的、有效的、有能力的方法,你開始為了完成任務而努力。或許你的木棍太短,或者你的毒液不起作用。沒關系,你能夠活著改善方法,并在明天再次試驗。

  隨后有人找到了一種方法,收集叢林里的化學東西制作了輕度爆炸物。你的精加工梭鏢的方法對于完成任務,遠遠不是最好的方法了。然而,它仍然是簡單的方法,并繼續在學校里教。每個獵獅人都要被教會如何從頭建造他的工具。

  這是“現實中”的編程。

  在競爭編程中,你從同樣的資源(小刀)開始,期望你用兩分鐘殺死獅子。

  作為初學者,你會盯著獅子,什么也沒做。

  很快,你就明白,如果你殺了一只松鼠,說不定裁判認為它是獅子,就這么干吧。

  一名更有經驗的程序員,只是堅持刺獅子,希望獅子及時死掉。很快,你知道獅子身上有一些破壞免疫的固定部位,你知道甚至刺這些部位根本不用費力。有時候,獅子沒有暴露這些部位,因此你真正擅長的是殺死松鼠。

  那么,為了成為偉大的、有競爭力的程序員,你需要能夠做兩件事。

  首先,你必須學會如何找到獅子的致命弱點并一擊斃命。

  其次,你必須學會如何讓你的小刀更方便,你要在一分鐘內做一個尖木棍,用剩下的一分鐘把獅子刺死。

  但是,你從來沒有足夠時間去制作炸藥來對付獅子。

  ————

  Balajiganapathi Senthilnathan 的觀點

  它們就像和 Python 和 Brainfuck 語言【注1】的不同。

  在競爭編程中,你不得不選擇首先想到的、你認為可行的算法進行編碼。編程的目標只是搞定它,并最少出錯。你不必担心維護文檔等等。沒必要考慮如何命名變量、切割代碼為函數等等。還有,競爭編程是短暫的,你將不必在一個問題上花上幾天時間。你大部分時間是在編碼。

  雖然,競爭編程讓你對算法以及如何實現有了重要的理解,你在大部分工作中將發現,程序員只是在使用算法方面的類庫。因此,競爭編程最有用的地方就是,對于手頭的問題,使用哪種算法。在工作場所,你花在寫代碼的時間只有很少一塊,大部分時間花在了決定去編碼、測試、文檔和……

競爭編程與真實編程的區別

  注1:Brainfuck,是一種極小化的計算機語言,它是由 Urban Müller 在 1993 年創建的。由于 fuck 在英語中是臟話,這種語言有時被稱為 brainf*ck 或 brainf***,甚至被簡稱為 BF。http://zh.wikipedia.org/wiki/Brainfuck

2015-05-19 00:36

歡迎訂閱我們的微信公眾賬號!
春秋茶館訂閱號
微信號 season-tea(春秋茶館)
每天分享一篇科技/遊戲/人文類的資訊,點綴生活,啟迪思想,探討古典韻味。
  清末民初歷史人物  民初人物
學貫中西品讀東西文化
林語堂(1895年10月10日-1976年3月26日),中國文學家、發明家。福建省龍溪(現為漳州市平和縣)坂仔鎮人,乳名和樂,名玉堂,後改為語堂。美國哈佛大學比較文學碩士....
憲政專家民主理論大師
宋教仁(1882年4月5日-1913年3月22日),字鈍初,號漁父,生於中國湖南省桃源縣,中國近代民主革命家,是中華民國初期第一位倡導內閣制的政治家。
資助民初精神網
        回頂部     寫評論

 
評論集
暫無評論!
發表評論歡迎你的評論
昵稱:     登陸  註冊
主頁:  
郵箱:  (僅管理員可見)

驗證:   验证码(不區分大小寫)  
© 2011   民初思韻網-清末民初傳奇時代的發現與復興   版權所有   加入收藏    設為首頁    聯繫我們    1616導航