Someone asked me, if any person wants to start coding, what is the right process? I tell them –
I started programming with this book – teach yourself C – harbert schildt. Its really important in the long run to have solid idea about the language, and how you can mold it for your use. Like in some problem if I use while loop instead of for, the whole thing gets a lot easier.
Once someone gets a good grip on the language, he should try to solve some easy problems. And the best site to solve easy problems is obviously UVa. You can find the list of easy problems in here – http://shygypsy.com/acm/cgi-bin/grepplus.pl?keywords=easy . There are some more other sites. I put their address in here – http://smilitude.googlepages.com/ in the programming section.
Once someone is done with solving easy problems, he should feel confident about his knowledge about programming and get the taste of problem solving.
After that, the scenario changes a lot. Now you have to learn new things, new algorithms, basic things that everyone should know. CLRS is a good book for that, but its quite tough, I want to write a book later on, but I don’t think I can write it in a few years. I am not yet enough experienced actually.
This is a good place to start – http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=alg_index . It covers most of the important algorithms.
And I’d suggest them to attend online contests (specially topcoder), and not to fear failure. I was a straight failure in my first one year of programming. And the more you get experienced you should start using google and online forums to learn new things, connect with smarter people. Like I use topcoder forum a lot, whenever I need to find a reference.
And more importantly, find what’s you are passionate about. If it’s not programming that you are passionate about then don’t go for it. Go for something else, find a girlfriend or buy a guitar! But before doing something else, try a little to see if programming fits you.
I really waste a lot of my times, looking for what other programmers are doing. Like peeking into Petr’s blog, some other programmers blog, and their interviews in online whenever I get. Actually that inspires me a lot. And in the long run inspiration is really important.