In the last couple of days I repeated this more than four times, so let me post it here for any future references.
Two points for those who want to become a programmer. First, there is no lack of information these days. There are numerous tutorials online and books in print. There are magazines, classes, mailing lists, search engines, and everything and anything you need. But all that information won’t make you into a programmer. In order to become one, you have to program. There is no way around it. You have to design your programs, write the code, debug it, test it, document it, and maintain it. And you should also read good code that other people wrote. There is no lack of open source projects these days – take the most popular ones and you’ll learn a lot.
Secondly, among all those available resources, I can suggest two books and two books only. If you read and study both of them, you won’t need to read another book about programming your life time. The first book is “The C programming language” by Kernighan and Ritchie. This is an all time classic. The second book is “Programming Perl” by Larry Wall. This is a piece of modern literature.
I prefer to contemplate the problem as long as possible and then drop the idea to change to world altogether. In other words, just to repeat doing things the same way. I call it ‘recursive submersion’.
dimonf,
the above books teach one the thinking process, problem (de)composition, efficiency analysis, and things like that. That can help with optimizing “recursive submersion” quite a bit. :)
hmm first book I’d read over a decade ago, maybe I should have a look again. I’ll definitely check out the one by Larry Wall.
I find it useful to tell programmers the basic most important tenet that before touching a single key they first need to figure everything (ok as much as possible) out on paper!
Sanjay,
yeah, agreed. Maybe not precisely on paper, but figuring most of it before writing the actual code is definitely a good practice. Saves tonnes of time.