In addition to what others have said, I would add The Little Schemer to the list. It may not seem like the most practical book, but it will make you a better programmer.<p>Beyond that, I would reiterate the following suggestions put forth by others:
-- How to Design Programs (get version 2. Racket, the IDE for this book, is practically plug-and-play, so you won't waste time prepping your development environment)<p>-- Think Python by Allen Downey (i haven't read this one, but it comes very highly recommended. the excerpts I've read show that Allen communicates the concepts very clearly)<p>-- Eloquent Javascript (very good introduction, all examples can be done directly in the browser with the specially-made console. This eliminates the time and confusion you will experience trying to set up a development environment with other languages.)<p>On top of those I'd also add:
-- The C Programming Language by K&R (if you are interested in C)<p>-- Dive into HTML5 (if you are interested in web development. HTML is a markup language, but you are going to need it to be able to build web stuff. This book complements Eloquent Javascript nicely)<p>-- Land of Lisp<p>-- DOM Scripting (Pair this book with Eloquent Javascript. It's the best introduction to the DOM that I've seen and will bridge the gap between HTML and Javascript)<p>The best books on coding are those that place equal emphasis on good prose and good programming practice and that de-emphasize syntax.<p>Also, look for books where the examples are real-world examples. i.e. things that people have actually had to implement at one time or another. Avoid books with completely imaginary examples that use made up names like foo, bar, widget, etc.