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.
1
[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.
1
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.
6