Depending on your background and tastes, the following books are four different paths to a good introduction to computer programming: Michael Spivak, Calculus (do the problems, don't read the text) Hopcraft and Ullman, Formal Languages and Their Relation to Automata Epstein, Word Processing in Groups Jack Schwartz, On Programming I and II