主持人:你能告诉我一些关于你自己的事吗
受访者:就像我决定从事的竞争性编程一样,竞争性编程我不仅参加了那些比赛,高中时我在美国参加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比赛冠军采访