I'm surprised no one in this thread has mentioned Hacker & Painters: https://www.amazon.com/dp/1449389554
This is the book that really got me into programing. I'd tried programming before, and had even studied a C++ textbook and written some simple programs. But it really hadn't clicked. Graham's points about the fundamental expressiveness of different programming languages really blew my mind. This started a chain of "learn language X and try to build Y" for different values of X and Y.
Part of what I realized is how much I had been hampered by how difficult C++ is to pick up (especially with the IDEs of the early 2000s, which would give you an "empty" project with a couple hundred lines of code in it). When I realized that to write a Perl script, all I needed to do was open Notepad and start from an empty file, it was just so unbelievably liberating. That and also, obviously, just how much easier dynamic languages are to work with in general. Of course I eventually came back to C++, but that was the spark which kicked off a journey that lead to me flying through CS in college and eventually ending up in a PhD program.
Edit: Fixed link. Note also that the essays are available online for free, though you have to reverse engineer the reading order from the table of contents.
This is the book that really got me into programing. I'd tried programming before, and had even studied a C++ textbook and written some simple programs. But it really hadn't clicked. Graham's points about the fundamental expressiveness of different programming languages really blew my mind. This started a chain of "learn language X and try to build Y" for different values of X and Y.
Part of what I realized is how much I had been hampered by how difficult C++ is to pick up (especially with the IDEs of the early 2000s, which would give you an "empty" project with a couple hundred lines of code in it). When I realized that to write a Perl script, all I needed to do was open Notepad and start from an empty file, it was just so unbelievably liberating. That and also, obviously, just how much easier dynamic languages are to work with in general. Of course I eventually came back to C++, but that was the spark which kicked off a journey that lead to me flying through CS in college and eventually ending up in a PhD program.
Edit: Fixed link. Note also that the essays are available online for free, though you have to reverse engineer the reading order from the table of contents.
https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/d...
https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/d...
Amazon: http://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp...
iTunes: http://itunes.apple.com/us/book/hackers-painters/id396767497
BN: http://www.barnesandnoble.com/w/hackers-and-painters-paul-gr...
BN (nook): http://www.barnesandnoble.com/w/hackers-painters-paul-graham...
http://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp...
http://ycombinator.com/lib.html