I have recently started learning to program and have fiddled with some simple c programs Like calculator,matrix addition etc from a c textbook. but I am not able to understand how those programs are written. I know most part of the syntax but if anybody asks me to write a program to do x I don't know how to do it. I learnt that its essential to know algorithms in order to write good programs.how do I get started with it?I am fully determined to become proficient in programming and willing to put in the required effort.how do I go from my present state to a situation where I will be able to write awesome programs.?I have made fabrice bellard my idol.:-) anybody willing to mentor me over email? give me some suggestions.
There's this introduction to algorithms course by MIT course ware which I found useful while I was learning. You can see it here: <a href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/" rel="nofollow">http://ocw.mit.edu/courses/electrical-engineering-and-comput...</a>
The video lectures are pretty good!
<a href="https://www.coursera.org/course/algs4partI" rel="nofollow">https://www.coursera.org/course/algs4partI</a>
The Cousera couse above is a really good. Its centered mostly around Java, but the basic principles, of course, can be used in any programming language.
The Algorithm Design Manual by Steven Skiena is well regarded, has war stories, case studies, homework assignments. - Find it at <a href="http://www.algorist.com/" rel="nofollow">http://www.algorist.com/</a>