I just joined codechef, before that I thought I was some hotshot, with programming skills unmatched at my place of study, I thought I was the king, later realised I was nothing but a frog in a well.
I went to this practice page of codechef, selected easy, and voila, not only I cannot start typing the code, I do not even understand the problem ~_~
The solutions look alien text…maybe because cout, cin and Scanner (incase of Java) are not used.
I thought maybe I need to restart it all, and when I went to study again, things that come in my mind, “I know this shit already”.
So, guys, the bottom line of it all is, how do I improve myself?
What course should I take up? Preferably, online.
and how the hell everyone here is so damn smart ~_~
Did you solve even one of the problem. If not try this one link text and link text these are pretty easy problems and will help you in gaining confidence once you see the “Green Tick mark”.There is atleast one very easy problem in each of the long contest, figure them out and solve them, then move to solve a bit harder problems, and no matter what take part in live contests because even if you solve one of the problems you will feel confident enough to move to next problem.I too am a beginner and at pretty novice level.
And there are ample learning resources out there just few click away. Also browse through these:
From there you will get enough links to other resources. And try to understand problems with all the concentration, you have to figure out it yourself, if any problem ask the admin in comments during any live contest.
I can also add that above all that, being persistent is the way to go when it comes to programming (that and having that feel for it, not everyone is made to do programming of algorithms at the level that it’s done here, and I am sure that some of my univ mates wouldn’t be able to solve even the cakewalk ones).
So, if you have doubts, be curious… Explore all the resources you can find, work with simple examples, modify them, learn from your mistakes and get better and better
The link shared by smaurya is a great read for all beginners. My additions-
I am sure all the “smart” programmers, at some time were equivalent to your current position. So you don’t need to worry.
Some points-
Practice a lot, and that too during ongoing competition - Solving practice problem is great, but to really make you stretch yourself, you need to do it during online competition. So good luck for the October challenge.
Read the problem statement over and over, until you understand it enough to solve some test cases on paper. After solving example test cases, you must create your own test cases (slightly bigger) and solve them too.
Now you need to translate your solution into program. For this you need to have some grasp over data structures. Like what data structure allows me to store integers, with fast retrieval of minimum element. More complex problem, require you to know algorithms like shortest path. But the knowledge of data structures and algorithms will come slowly and gradually.
So you have coded and submitted the solution. Now you get a WA (Wrong answer). Duh. Now there are 2 possibilities. That you have either misunderstood the problem, or there is a bug in your code. For first case, you need to return to pen and paper. For second you need to learn to use a debugger, or just debug by tracing your code manually.
There will be some problems which you could code, but couldn’t get to accept. These are the learning opportunities for you. Follow the editorial of them carefully.
Also, during live competition, target the problem with highest number of submissions first.
Upsolving is really important if you want to improve in the sport. After any contest ends try solving the problems which you haven’t solved for some time. If you are able to solve it you are good to go otherwise look at the solutions of some good programmers out there and try to apply the concept in your code . Trust me it surely helps .
Try your hand at more contests form other platforms like codeforces, hackerrank and keep upsolving . Keep learning important data structures and algos and try to implement them in your solutions.
@ashishpm Starting with triveni’s post. Good link. Answer seems like a professional. Link reference is also good. But don’t answer older questions. Person who has asked this question visited last time in 2014. Answering question brings it in front page of discussion. And don’t re-open older questions. Try to answer newer questions. Mind = Blown