11

これが漠然とした/広範な/主観的な質問でないことを願っています。ある場合は、閉じてください。

いずれにせよ、いくつかのプログラミング コンテスト (Google の Code Jam、Facebook の Hacker Cup など) で、問題をうまく理解し、その問題へのアプローチ方法が頭に浮かぶ頃には、問題の半分はすでに次の方法で解決されていることがわかります。多くの人々。

私の質問は、これらの人々はどのようにしてそんなに良くなるのですか? それは純粋な天才ですか?経験ですか?それは本当に速く考える能力ですか?スキルを向上させる方法を教えてください。私は有能なプログラマーだと思います。私は最終的にそれらの質問のいくつかを解決することができます.

さらに、勝者のコードを調べると、多くのマクロが使用されていることがわかります。これは、プログラミングを高速化するために使用するテンプレート (短縮バージョンへの #define for ループなど) を持っていることを意味します。これは大きな違いをもたらしますか?

4

2 に答える 2

13

問題は、これらの大会で競争するためにスキルを習得するために膨大な時間を費やした人々と競争していることです. すぐに追いつくことはまずありませんが...

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% を削減できるかもしれませんが、それ以上ではないでしょう。

于 2013-03-06T09:09:04.370 に答える
7

統計的に言えば、十分な人数の参加者がいるプログラミング コンテストには、優れたエレガントなコードを超高速で大量生産できる優秀な人材が集まります。マラソンを走るようなものです。世界記録は2時間程度ですが、4時間で走るのは本当に良いです。ご心配なく。

コードを超高速で量産するのではなく、コードの品質と優雅さに焦点を当てます。練習し、楽しんでください。他の人がどれだけ速く作業しているかをあまり見ないでください。

于 2013-03-06T09:08:39.720 に答える