4 ms·
Competitive programming is like a competitive sport. You need to practice a lot to excel at it. The best ones have been training consistently for years. It's a
by yodsanklai 12y ago
Competitive programming is like a competitive sport. You need to practice a lot to excel at it. The best ones have been training consistently for years.
It's a humbling experience for anyone who thinks he or she is a good programmer. I remember when I tried topcoder for the first time. I thought it would be easy to move through the ranks and it turned out to be much harder than expected.
However, it's an extremely specific type of programming that in my opinion don't reflect real life programming aptitudes.
I think I learned two important lessons though. Be confident your solution is correct before starting coding it, and don't debug but write correct programs instead. It's easier said than done, but a little discipline can help a lot.
- deleted 12y ago[deleted]
- random_coder 12y agoIn my experience, practicing for competitions like GCJ, Topcoder help a LOT in two ways. 1. Raw coding skills - You'll reach a point where what's in your mind can be coded with very few stupid low level coding bugs like syntax errors, mis-assignments, initialization errors and such. Obviously this doesn't help with higher level issues like program design etc.. 2. Algorithmic skills - You'll get VERY good at analyzing algorithmic complexity. You'll thoroughly understand common data structures like lists, vectors, trees, hash maps and other common algorithms. Both these things are very much relevant to real life programming.
- vowelless 12y agoI completely agree. I eliminated all basic issues in my coding skills a few years ago by doing a lot of online challenges. Drawing an analogy to writers, online challenges (or preparing for them) is like getting really good at sentence formation, vocabulary, paragraph formation, etc. This allows you to then focus on larger things like writing a paper and even comprehending other people's papers with much ease. Code is the language of software engineering and computer science. Online competitions help internalize that so that it becomes second nature.