Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have been practicing coding for a while, but the problem is that it takes me a lot of time to write a solution for the problems. I want to ask if competitive programming can help me in improving this.

If yes, then how should I start and from which web sites could I use (like TopCoder)? I obviously won't be able to solve very hard problems for now. What should I do?

If no, what else should I do?

I also have another problem that I want to learn coding but the thing is that I feel that I am not very good at it. What should I do? It's like bugging me from inside.

I know some people may not find this question informative but please at least allow me to get an answer.

share|improve this question

closed as not constructive by Walter, gnat, Mark Trapp, Dynamic, World Engineer Oct 15 '12 at 20:31

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Don't underestimate the value of collaborative programming either. We have seen some problems in our team due to over competitiveness - over engineering / interpersonal issues. So competitive programming could help you, but so could taking part in an open source project, or developing a project with like minded friends. – Gavin Howden Oct 13 '12 at 20:05
up vote 13 down vote accepted

[can] competitive programming help me in improving [the speed]?

Yes, it can, and given sufficient time, it certainly will. However, speed is not the most important skill that you are going to improve. From my experience of participating with TopCoder for 10+ years, the most important skill that you are going to take from competitive programming is an ability to write simple code snippets correctly the first time, without using a debugger.

How should I start and from what site like TopCoder?

Use practice rooms for Division 2. Level 1 of Div 2 are typically "typing contests", in the sense that you figure out a solution right away, so your task becomes coding it as quickly as possible. Most real-life assignments are like that. You will quickly realize that debugger is the biggest "time drain", so you will naturally attempt to complete your code without debugging it. This will be frustrating in the beginning, but it will improve with time. It will take a few hundred level-1 problems to get good at it, so don't give up.

Debugging in your head is the skill that is going to help you in your real job: while the coding speed is not important, an ability to write correct code snippets without debugging will help you make a transition from good to outstanding.

share|improve this answer
Thanx a lot @dasblinkenlight! – Vaibhav Agarwal Oct 12 '12 at 17:14

As a beginning programmer, you should be much more concerned with the quality of your code then the speed of writing it. You should be working on projects on your own to expand your skills. You could follow that up with reviewing open source projects to see how others write code and maybe start contributing to an a open source project.

In my 25+ years of developing code on various platforms and business domains, I have never found a case where the speed of my code writing was more important than the quality and stability of my code.

share|improve this answer
But when you are participating in a competition let's say some coding competition or interview process, then speed matters right? And that too a lot I feel. – Vaibhav Agarwal Oct 12 '12 at 16:42
+1 for quality and stability over speed of writing. – Bernard Oct 12 '12 at 16:43
@cdkMoose that's good but can you also suggest me how to start competitive programming means from where to start? – Vaibhav Agarwal Oct 12 '12 at 16:55
@VaibhavAgarwal Project Euler problems 1 to 50: while it isn't competitive (unless you are trying to be one of the first people to solve the most recent problem), it is challenging and the type of question one might expect in a coding competition or interview process. – MichaelT Oct 12 '12 at 17:00
@Vaibhav: You posted that you want to learn programming. If that is the stage you are at, I personally don't think you should be concerned with competitive programming at all. That can come after you have developed your skills. As far as interviewing, I don't ask my interview candidates to write complete programs. I am more concerned with their understanding and thought processes. I am trying to develop a confidence that they could solve the problem, not that they would solve it in record time. – cdkMoose Oct 12 '12 at 17:06

Not the answer you're looking for? Browse other questions tagged or ask your own question.