主持人:你能告訴我一些關于你自己的事嗎
受訪者:就像我決定從事的競爭性編程一樣,競爭性編程我不僅參加了那些比賽,高中時我在美國參加Google Code Jam,因為我進入了決賽,這是我生命中的一部分,每年我去幾次,國際比賽加上我有一個油管頻道,我在那里教書演算法很好,所以Google Code Jam進入決賽需要什么,因為我甚至從沒有過初步的準備,基本上不是準備,比賽前幾天的一些事情是關于其他游戲
主持人:顯然,您需要數年時間才能練習幾個月就去參加比賽
受訪者:如果你非常非常好,那么有幾個資格賽,我認為三加一額外的初步資格回合,然后有225人進入決賽,僅25人我認為25歲以上的冠軍,還有26歲的冠軍從前一年和根納季的勇氣實際上他被帶走了在過去的五年中,天哪,所以他不需要采取
預賽他直接進入了最后的決賽
主持人:所以你能和我談談嗎,更多關于什么是競爭性編程
受訪者:簡而言之,這是一項思想運動,您所考慮的不是興趣或撲克下一步的卡片在這里,您會考慮如何編程在某些時間限制下,您會遇到一些需要解決的問題資料的約束足夠快地發明一條魚直到并及時實施,誰最快就是最容易遇到的問題
他們通常會在乎執行時間或只是在乎復雜性,是一個很好的問題,復雜性非常重要,因為排名一秒或一小時或一天是有區別的,通常要您在時限之內,就可以像兩秒之類的時限好吧,有一些比賽可能很重要,也許要花很長時間才能計算出您的程式的好成績產生是因為這是一些np難題,沒有確切的問題,解決方案這就是您能找到的解決方案,但是大多數情況下您需要通過它,然后獲得分配給的點數這個問題,例如最后的Google Code Jam,您如何大家比較程式,主要是在時間上還是在更正上其中只有一種是正確的,并且會在時間內運行,那么每個問題都有一定的分數像這樣15分一個是20,因為它更難,最難的是說40和點的總和如果有平局很重要,那么當您提交時您的最后一個解決方案是,如果有人在兩個半小時內完成,那么他會更好比那些得分相同的人,如果我們也還好,那么你的速度有多快
主持人:是的,是的,你認為你會怎樣
受訪者:我認為最好的時間應該是我去年的期望在食人族之后,這是瘋狂的,但是這是我最高的我一生中的表現不是我希望重復我當然希望的
主持人:嗯,嗯,你能給我一個例子說明什么是競爭性編程問題
受訪者:可以,我想給你一個很酷的例子,我可能無法解決,但是先生,我想你可以高估它,這將表明一點我的那邊的那邊有一場網球比賽還是很有價值的如果是我,那就是馬里索爾(Marisol),然后您會得到一系列的字母,我和我們無論a或b球員得分如何,網球中都有一些規則需要一些點數才能贏得一場比賽,然后我不知道我不會我非常了解自己,是的,整個比賽都有一個順序,您需要說出哪位玩家完全贏得了整場比賽當然,如果有的話,您可以實施所有這些說的當然在周六結束時是平局,他們可能還需要打很長時間并不是說誰得到了4分或任何意味著立即獲得的分數而且您可以在10分鐘內實作,我不知道我的意思是我要去做,這非常非常簡單,我們有一串像是ba ba ba B然后因為我知道網球的規則想像一下,如果我知道網球的規則,我只會增加點,然后如果它是一個集合,他們已經想要設定,那就好了,他想要設定,以便我只聽完全正確的聲音
主持人:所以您通常會這樣做比賽期間發生的事情是您看到了片刻的思考問題關于如何實作它
受訪者:可能需要一點點的背面花了10分鐘,您查看了排行榜,就解決了,您看到了有人在30秒內解決它,您怎么可能問哦,他們就像他們已經寫過的預設代碼一樣,可能是關于就像用C ++粘貼一樣,它包含9種方式
主持人:所以您的意思是30秒是指運行時間是30秒還是他們提交了您已經閱讀并解決了該問題,并在法國提交了
受訪者:如果我想他們已經聽到了一個問題,那就是關于快速提出一個簡單的想法想法,這里的想法是,您列印出最后一個字母哦,凱西,是的,因為如果您已經希望自己成為那個,并且您知道這杯酒是ID,無論發生在反轉井下,讓我們假設我假設字串是正確的,這是一個很好的一點說人們習慣于競爭性編程的缺點是總是假設資料是正確的是描述匹配的序列,還是看陳述句是否表示您將獲得一個數字序列,它們將在此間隔內在此間隔內,他們不在乎錯誤的字符,也許一些數字作為非整數,他們只是按照提示進行操作,所以他們可能會錯過真正的作業是什么時候他們應該問我如果用戶給我不正確的日期該怎帽淼ザ,那是非常聰明的,是的,只是看看他的字串的最后一個字母是的,不會有一個酷我喜歡,這很有趣,好吧
主持人:然后你會說有競爭力的程式員會變得更好嗎軟體工程師,或者如果沒有關系
受訪者:那就很難了,我見過一篇文章,大小存在負相關關系,以確保它們很聰明,例如競爭激烈的程式設計人員非常聰明,但是另一方面,他們可能在技巧上不是很重要在作業中,重要的是要認真實施以確保能夠除錯這些東西,我認為這對于具有競爭力的程式員來說很容易很多錯誤,所以他們需要一直正確地收集,但是有他們沒有的一些技能是很好的候選人,其中一些會是很棒的打工人,其中有些人會沒有道理這很有意義,那么什么是最大的競賽和平臺,競爭性編程我已經提到過代碼,而這是俄語平臺上還有日本的廣告編碼器美國的頂級編碼器,差不多20年的平臺,這是第一個,而另外兩個相當年輕人,他們每周都會在網上組織比賽,因此,如果您將所有這些平臺,加上我沒提到的幾個平臺,您將參加比賽每隔兩天左右,就會有一些重要的見解時不時喜歡Google文化TopCoder打開Facebook黑客杯他們只是由大公司組織起來以吸引熟練的參與者,也許雇用他們Google Code Jam實際上是我認為精心準備的還帶有流有很多廣告的專業流知道他們會今年在廣告流中宣傳Google stadia,但也面向程式員
主持人:所以有很多剪輯與我們合作這是生態實習生,請告訴我們
受訪者:你喜歡它,為什么你喜歡谷歌,是的,這就像一個大廣告我仍然不抱怨,因為我可以和其他強大的競爭對手競爭有機會贏錢,我也要去美國旅行
主持人:是的,是的,他在這里為您的航班付款
受訪者:是的,負責人這是他們所覆寫的酒店的問題有時是五星級酒店,所以我去過幾家五星級酒店只是因為比賽的結果是,第一名,第二名的價格是多少
現在大約是10,000或15,000美元,特別是燃料,如果不是在歐洲的富裕國家,而是在波蘭,但它使用了真的要十萬多現在我想這么久嗎,但這只是我的腳,也許是因為一旦意味著這么多錢,您就沒有動力在公司作業
主持人:是的,是的
受訪者:Google希望吸引最優秀的人才,所以他們不應該預先給他們錢好吧,也許只是一個附帶問題
主持人:您過去經常做數學嗎
受訪者:直到高中我才真正上高中的比賽,我是做地圖而不是資訊學的,甚至去一些國際網站,也許沒有Google Code Jam的大,但是我認為我是最好的之一我這一年的波蘭和許多競爭激烈的人
編程在數學方面非常好
主持人:是的,其中一些人沒有學習計算機,他們學過數學或經濟學的科學,是嗎
受訪者:這些數學問題和編碼問題的解決方法非常相似,我認為需要理解所有這些知識的技能才能理解,我看到證明某事將起作用的邏輯含義是相似的,您需要大量的知識,這些知識僅適用于演算法,但是同一個人兩者都有好處,人們通常會參加競爭性程式設計大學然后他們停下來,因為似乎每個人都還很年輕的年輕人,還可能是因為公司的編程幾乎沒有,存在于20年前,只有少數人位居榜首,超過30大多數人在高中學習很多,如果他們為愛荷華州做準備在ICPC競賽中,或在大學中具有很高的競爭力和技能去某家公司,因為編碼面試也涉及演算法競爭性編程也許是一個嘗試學習比較的地方自己與其他人,還有像Google這樣的比賽成為程式員的主流,如果您是
主持人:很好,Google可能會邀請您參加一次很好的面試,并在大學畢業后,你已經有作業了,也許你開始了一個沒有的家庭,再有時間每周練習幾個小時,那為什么還要繼續
受訪者:可以肯定的是有些人仍然喜歡,因為他們喜歡它,但是不是很多,我個人認為,通常只適用于這些作業要容易得多贏得比賽
主持人:您認為面試的編碼問題是類似于競爭性編程問題,還是這樣更容易關于第一個問題
受訪者:獲得比賽有多容易,不是您必須像Google kickstart一樣獲勝才能被邀請200甚至500強就足夠了,您可以說申請時
也許他們會給你第一次面試的機會,因為你還可以如果您在其他方面不擅長,將很快進入決賽,但這是一個機會與成千上萬的人相比可能被認可問題是相似的競爭性編程更困難,因為有時候訓練的人是因為它需要難度較大,但競爭性編程時僅存在一些差異
需要一些復雜的演算法編碼面試有時可以問你,不可能用計算機測驗的問題,例如一些數以千計的計算機進行并行計算,您將無法滿足競爭性編程中的問題,因為組織者不想獲得
數千臺機器來測驗您的程式Google組織了這樣的與數百臺機器競爭您的程式的競爭者,但是局限性這稱為分布式文化呼叫編碼訪談有時還會出現其他一些無法解決的問題競爭性編程,例如發明我們從事的演算法給定一個具有二進制搜索某個數字,因為陣列已排序,很難測驗使用競爭性編程,因為您仍然需要獲取該陣列,因此計算機跟蹤器為此花費的時間至少必須是線性復雜度無論如何,當您在面試程序中與某人交談時,他們可以問您什么關于這一點,您可以實作較小的記憶體,也許嘗試獲得恒定的記憶體自動判斷的良好程式有時會有一些局限性,就像你不能同時區分兩個復雜度和常數很重要,因此所有內容都經過測驗的缺點是能夠區分一切,但也有優勢,一切都是公平的,客觀不是面試官喜歡你
主持人:您最好給一個快速問題打分,所以在競爭編程中,它會做到嗎
受訪者:碰巧,較高的復雜度實際上更好,因為較低的對數
主持人:對不起,更高的復雜性,如果使我們喜歡更高的復雜性,該怎么辦
受訪者:可能會更快,并且會更好,因為like常數對于like而言太高較低的背景關系是,是的,它可能會發生,您需要了解何時要專注于競爭性編程例如,需要了解hashlib哈希圖具有很高的如果可以的話,則常量因子,如果值仍然很小,并且它們適合并且
我是否使用陣列而不是所有內容都將是常量訪問,但這是更快,所以這是一個例子,另一個是也許有些復雜理論上更糟,但由于實際上是這樣的小資料,即使n平方,因為n很小,您不必關心它,而不必發明n在某個地方對數倍,這樣人們就不會在檢查期間檢查您的代碼,比賽就對了,他們甚至可以進行測驗,即使測驗很弱他們不涵蓋某些情況,可能是邊緣情況,或者您的演算法是發式的,可能是二次的,但是當資料是隨機的時,匯總是的有一些類似的演算法,組織者會盡力做到這一點悲觀的運行時間,他們試圖創建測驗用例惡意測驗用例,但并非總是無法預測所有情況有趣的是,他們有打牌作業,所以人們會贏,因為他們意識到測驗不是很好,所以他們可以使代碼甚至不能涵蓋所有的極端情況,但由于可能發生而因此獲勝特別是在比賽的最后幾分鐘,現在您已經知道你會沒有時間想出來,所以你只要嘗試任何可能的就像在學校寫一些是的,我一直在這里作業隨機,好吧,我CBI也許會通過,而且每10或100個專案就會通過一次那會很有趣嗎?到今年再次親自見面,這是我擁有我擁有的我的團隊無法獲得的權利
入職頂級互聯網公司,競爭性編程是必須的嗎?Google code jam比賽冠軍采訪
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/246519.html
標籤:其他
上一篇:程式員必收藏的五個網站
