如何开始竞争性编程?[关闭]


17

我已经练习编码一段时间了,但是问题是我花了很多时间来编写解决方案。我想问一下竞争性编程是否可以帮助我改善这一点。

如果是,那么我应该如何开始以及可以从哪个网站使用(例如TopCoder)?我现在显然无法解决非常棘手的问题。我该怎么办?

如果没有,我该怎么办?

我还想学习编码还有另一个问题,但事实是我觉得自己不太擅长。我该怎么办?就像从内部烦扰我。

我知道有些人可能找不到这个问题,但是至少请允许我得到答案。


1
也不要低估协作编程的价值。由于竞争力过强-工程/人际关系问题,我们的团队遇到了一些问题。因此,富有竞争力的编程可以为您提供帮助,但也可以参与开源项目,或者与志趣相投的朋友一起开发项目。
加文·豪顿

Answers:


19

竞争性编程可以帮助我提高速度吗?

是的,如果有足够的时间,它一定可以。但是,速度并不是您要提高的最重要技能。根据我10年来与TopCoder的合作经验,您将从竞争性编程中获得的最重要的技能是能够在不使用调试器的情况下第一次正确编写简单的代码片段。

我应该如何开始?从TopCoder这样的网站开始?

在第2分区使用练习室。第2分区的1级通常是“打字比赛”,从某种意义上说,您马上就找到了解决方案,因此您的任务将尽快进行编码。大多数现实生活中的任务就是这样。您将很快意识到调试器是最大的“时间浪费”,因此您自然会尝试在不调试代码的情况下完成代码。一开始这会令人沮丧,但随着时间的推移会有所改善。要精通它,将需要数百个1级问题,因此请不要放弃。

头脑中的调试是可以帮助您完成实际工作的技能:尽管编码速度并不重要,但无需调试就可以编写正确的代码段的能力将帮助您从良好过渡到出色。


非常感谢@dasblinkenlight!
Vaibhav Agarwal,2012年

10

作为一个入门的程序员,您应该更加关注代码的质量,而不是代码的速度。您应该自己开发项目以扩展技能。您可以通过审查开源项目来跟进,以了解其他人如何编写代码,并可能开始为开源项目做出贡献。

在过去25年来在各种平台和业务领域上开发代码的过程中,我从未发现有这样一种情况:我的代码编写速度比我的代码的质量和稳定性更为重要。


但是,当您参加比赛时,让我们说一些编码比赛或面试过程,那么速度很重要吗?我感觉太多了。
Vaibhav Agarwal 2012年

@cdkMoose很好,但是您也可以建议我如何从头开始进行竞争性编程吗?
Vaibhav Agarwal

@VaibhavAgarwal项目Euler问题1至50:尽管它不具有竞争力(除非您试图成为最早解决最新问题的人之一),但它具有挑战性,并且在编码竞赛中人们可能会想到的问题类型或面试过程。

@Vaibhav,我将以开始其他竞赛的方式开始竞争性编程:练习,练习,练习。
cdkMoose 2012年

1
@Vaibhav:您发布了要学习编程的知识。如果那是您所处的阶段,那么我个人不认为您应该完全关注竞争性编程。这可以在您掌握了技能之后进行。至于面试,我不要求面试候选人编写完整的程序。我更关心他们的理解和思考过程。我试图建立一种信心,他们可以解决问题,而不是他们会在创纪录的时间内解决问题。
cdkMoose 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.