编程风格——人们是如何如此迅速地解决编程竞赛的?



我希望这不是一个模糊/宽泛/主观的问题。如果是,请关闭。

无论如何,在一些编程比赛中(比如Google的Code Jam, Facebook的Hacker Cup等等),当我成功地理解了一个问题并对如何解决它有了一点头绪时,我发现有一半的问题已经被很多人解决了。

我的问题是,这些人怎么变得这么好?是纯粹的天才吗?是经验吗?是快速思考的能力吗?你对我如何提高技能有什么建议?我会说我是一个有能力的程序员。我最终可以解决其中的一些问题。

此外,每当我检查获胜者的代码时,我都会看到大量的宏被使用。对我来说,这意味着他们有一个模板(就像#define for loops的缩写版本),他们用它来编程更快。这有什么显著的不同吗?

问题是,你的对手已经花了大量的时间来掌握他们在这些比赛中的技能。你不太可能很快赶上进度,但是……

How do these people get so good?

有理论知识解决问题,实践,实践,实践。

Is it pure genius?

可以,但实践可以在一定程度上弥补。

Is it experience?

是的。

Is it the ability to think really fast?

没有。练习可以让你正确地处理问题,跳过问题陈述中不重要的细节。

How would you suggest I improve my skills?

获得理论知识和实践。

Do macros make a significant difference?
这可能会减少10%的时间,但可能不会更多。

从统计学上讲,任何有足够多观众的编程比赛都会吸引超级天才,他们能够以超快的速度写出漂亮优雅的代码。这就像跑马拉松。4小时跑完全程真的很不错,尽管世界纪录是2小时左右。别担心。

专注于代码的质量和优雅,而不是能够以超高速写出代码。练习,享受乐趣,不要过多地看别人工作得有多快。

最新更新