Free Books on the Internet
Category: Cool Stuff
Over the years, one of the things I've noticed is a constant decline in the quality of books. Where shelves were once filled with books on OS Design, Compiler Theory, 3D Graphics Algorithms, and Basic Data Structures, now they are filled with books on Learning Java in 24 Hours and Idiots Guide to OS of your choice. While this decline is primarily due to the flood of poor programmers who entered the market during the boom, it has not abated during the bust. More books on 100 Things You Should Already Know about API XYZ continue to hit the shelves while the classic material gets more and more buried.
Thankfully, the Internet has taken the place of these once cherished hunks of dead tree. You may not be able to find a good book on Text Parsing in Barnes & Noble, but you can find all the same info plus someone to answer your questions on the internet. Still, sometimes it's nice to have a well written book to read.
Well have no fear! Many of those books we once cherished are now available on the Internet, and I've compiled a list for you of some of the more interesting ones. Nearly everything below is available in PDF format. I actually skipped over some of the HTML only books, because I very much like the idea of having a file that can travel with me. HTML is far too unwieldly. So download a book, curl up in front of the fire, and get a tan in the rays of your LCD screen!
Advanced Linux Programming - Pretty much everyone knows the standard C libraries, and the POSIX libraries are a requirement for any serious Unix developer. If you want to read a book on beyond such simple programming APIs, then this is the book for you. Processes, Threads, IPC, I/O, Assembly, it's all covered!
Bruce Perens' Programming Series - Bruce Perens is a very interesting (and probably quite busy) guy. So busy, in fact, that he's single-handedly written dozens of books on advanced programming topics! Ok, so maybe he didn't write them all. Don't let that deter you, though. This series of books cover everything from Java to Mozilla Platform Development, and everything in between!
Parsing Techniques - As a more junior developer, I noticed that nothing quite honed a developer's programming skills like trying to build a better text parser. This book attempts to break down many of the techniques that have developed over the years, and establish the theoretical foundations behind them. A must read for any serious developer!
Creating XPCOM Components - With WebApps developing into a more and more powerful solution for deploying applications, it's no wonder that interest in the Mozilla Platform is on the rise. Most people think of Mozilla as just a web browser, and take no note of the amazingly diverse set of APIs that are used under the hood. This book provides much more depth and info on the Mozilla Platform, and explains the XPCOM structure in depth.
Practical File System Design with the Be File System - I'm only going to say this once: Download this book NOW. This book is the definitive guide to file system design, and was written by the guy who designed the BeFS Database File System. If you wonder why his musings on a dead Filesystem for a dead OS are of interest, just consider this: He works for Apple. Can you guess which components he developed?
Thinking in Postscript - As programmers, we like to think in pixels. Pixels are a discrete, indivisible unit that are easy to calculate and plan for. Yet we work with them day in and day out without ever realizing the limitations of such units, Nearly every programmer has one of those "Ah ha!" moments when he's first introduced to vector graphics. Make your "Ah ha!" moment happen today. Download this book!
Introduction to Machine Learning - Artificial Intelligence. Talk about an area that has had tons of money poured into it with very little practical return. Even the Spam filters in common usage today tend to use statistical models instead of AI! Yet the field is very interesting, and the constant march toward faster computers makes home research possible. So pull up a chair, and prepare to dissect your own brain!
A Practical Theory of Programming - Impress all your friends and neighbors! This book is crammed full of mathematical formulas that describe how programming works. It may not teach you how to write LISP, but it will at least give you the math to understand it! (As if anyone understands LISP. I kid, I kid!)
Information Theory, Inference, and Learning Algorithms - Information Theory has become a hot topic in the physics world of late. You see, it turns out that many of the mysteries of the Universe are tied to the ability or inability of particles and energy to carry information. For example, it is perfectly possible to violate the speed of light. Quantum Tunneling is a perfect example of this. Yet it is still impossible to transfer information faster than the speed of light! Is it a universal conspiracy? Who knows? What I do know is that having a good grounding in Information Theory is good for Computer Scientists, Physicists, and your average Developer alike.
Compilers and Compiler Generators - Ever written a compiler? No? Well, one day you may just find yourself in the position of doing exactly that. And when that time comes, you want to be ready. So read this book and understand the theories behind translating source code to machine code.
Linux Device Drivers, 2nd Edition - So you've got OS Design down pat. Plus you've got compiler design down. You've even taken AI and Information Theory! But what about those pesky hardware devices? How in the world do they get controlled? Well, pick up this book and find out!
Linux From Scratch - While abstract knowledge of OS Design is all well and good, sometimes you just need to dive into a working codebase to get a feel for things. While Minix is a great place to start, this book (and LiveCD!) will help you setup a custom Linux machine in no time flat! Move over Gentoo, I'm compiling my own system from scratch!
Now for Some Entertainment
If you managed to plow your way through all of the technical books above, then you deserve a break! Here's a few books and links to entertain your brain!
The UNIX-HATERS Handbook - Don't you just love how fast Unix boots? After all, things crash a-plenty, so it's a good thing it boots fast! Left over from a time now gone is the UNIX-HATERS Handbook. From the days when LISP machines stomped the Earth, and Macs were changing the face of computing (Wait, isn't that happening again?) comes a humorous look at all those little things that constantly go wrong in the OS we call Unix. You'll laugh because it's funny, but you may also learn a thing or two about what the world of computing once looked like.
Baen Free Library - Science Fiction and Fantasy. All free for the taking! Think I'm kidding? Click on the link and find out! My personal recommendations are: On Basilisk Station, 1632, and Mutineer's Moon. Odyssey is a great read as well. Enjoy!
Star Dragon - Star Dragon is a hard Sci-Fi novel from author Mike Brotherton. I can't tell you if it's any good, but I can tell you that it's free. Never hurts to scope out new authors!
Baen Book CDs - So you thought the Baen Free Library was cool, did you? Well so did Mr. Baen. He thought it was so cool that he'd try attaching a few CDROMs filled with even more books to his hardcover novels. The only catch? You can give the CDs to all your friends and neighbors. Wait, that's not a catch, that's a feature! Enjoy these hundreds of books offered at no charge, and with no DRM!
Audio Books for Free - Sometimes the pressures of life get in the way of reading. For those times, there are audio books. But who has a tape player anymore? This site is chock full of free MP3s that you can download to your player and listen to on the go! Sure, it's mostly classics. You do like classics, right?
Project Gutenberg - Speaking of classics, how can any discussion of free books fail to mention Project Gutenberg? With over 16,000 books transferred to electronic format, there's no better place to catch up on your H.G. Wells or Jules Verne!
Over the years, one of the things I've noticed is a constant decline in the quality of books. Where shelves were once filled with books on OS Design, Compiler Theory, 3D Graphics Algorithms, and Basic Data Structures, now they are filled with books on Learning Java in 24 Hours and Idiots Guide to OS of your choice. While this decline is primarily due to the flood of poor programmers who entered the market during the boom, it has not abated during the bust. More books on 100 Things You Should Already Know about API XYZ continue to hit the shelves while the classic material gets more and more buried.
Thankfully, the Internet has taken the place of these once cherished hunks of dead tree. You may not be able to find a good book on Text Parsing in Barnes & Noble, but you can find all the same info plus someone to answer your questions on the internet. Still, sometimes it's nice to have a well written book to read.
Well have no fear! Many of those books we once cherished are now available on the Internet, and I've compiled a list for you of some of the more interesting ones. Nearly everything below is available in PDF format. I actually skipped over some of the HTML only books, because I very much like the idea of having a file that can travel with me. HTML is far too unwieldly. So download a book, curl up in front of the fire, and get a tan in the rays of your LCD screen!
Advanced Linux Programming - Pretty much everyone knows the standard C libraries, and the POSIX libraries are a requirement for any serious Unix developer. If you want to read a book on beyond such simple programming APIs, then this is the book for you. Processes, Threads, IPC, I/O, Assembly, it's all covered!
Bruce Perens' Programming Series - Bruce Perens is a very interesting (and probably quite busy) guy. So busy, in fact, that he's single-handedly written dozens of books on advanced programming topics! Ok, so maybe he didn't write them all. Don't let that deter you, though. This series of books cover everything from Java to Mozilla Platform Development, and everything in between!
Parsing Techniques - As a more junior developer, I noticed that nothing quite honed a developer's programming skills like trying to build a better text parser. This book attempts to break down many of the techniques that have developed over the years, and establish the theoretical foundations behind them. A must read for any serious developer!
Creating XPCOM Components - With WebApps developing into a more and more powerful solution for deploying applications, it's no wonder that interest in the Mozilla Platform is on the rise. Most people think of Mozilla as just a web browser, and take no note of the amazingly diverse set of APIs that are used under the hood. This book provides much more depth and info on the Mozilla Platform, and explains the XPCOM structure in depth.
Practical File System Design with the Be File System - I'm only going to say this once: Download this book NOW. This book is the definitive guide to file system design, and was written by the guy who designed the BeFS Database File System. If you wonder why his musings on a dead Filesystem for a dead OS are of interest, just consider this: He works for Apple. Can you guess which components he developed?
Thinking in Postscript - As programmers, we like to think in pixels. Pixels are a discrete, indivisible unit that are easy to calculate and plan for. Yet we work with them day in and day out without ever realizing the limitations of such units, Nearly every programmer has one of those "Ah ha!" moments when he's first introduced to vector graphics. Make your "Ah ha!" moment happen today. Download this book!
Introduction to Machine Learning - Artificial Intelligence. Talk about an area that has had tons of money poured into it with very little practical return. Even the Spam filters in common usage today tend to use statistical models instead of AI! Yet the field is very interesting, and the constant march toward faster computers makes home research possible. So pull up a chair, and prepare to dissect your own brain!
A Practical Theory of Programming - Impress all your friends and neighbors! This book is crammed full of mathematical formulas that describe how programming works. It may not teach you how to write LISP, but it will at least give you the math to understand it! (As if anyone understands LISP. I kid, I kid!)
Information Theory, Inference, and Learning Algorithms - Information Theory has become a hot topic in the physics world of late. You see, it turns out that many of the mysteries of the Universe are tied to the ability or inability of particles and energy to carry information. For example, it is perfectly possible to violate the speed of light. Quantum Tunneling is a perfect example of this. Yet it is still impossible to transfer information faster than the speed of light! Is it a universal conspiracy? Who knows? What I do know is that having a good grounding in Information Theory is good for Computer Scientists, Physicists, and your average Developer alike.
Compilers and Compiler Generators - Ever written a compiler? No? Well, one day you may just find yourself in the position of doing exactly that. And when that time comes, you want to be ready. So read this book and understand the theories behind translating source code to machine code.
Linux Device Drivers, 2nd Edition - So you've got OS Design down pat. Plus you've got compiler design down. You've even taken AI and Information Theory! But what about those pesky hardware devices? How in the world do they get controlled? Well, pick up this book and find out!
Linux From Scratch - While abstract knowledge of OS Design is all well and good, sometimes you just need to dive into a working codebase to get a feel for things. While Minix is a great place to start, this book (and LiveCD!) will help you setup a custom Linux machine in no time flat! Move over Gentoo, I'm compiling my own system from scratch!
Now for Some Entertainment
If you managed to plow your way through all of the technical books above, then you deserve a break! Here's a few books and links to entertain your brain!
The UNIX-HATERS Handbook - Don't you just love how fast Unix boots? After all, things crash a-plenty, so it's a good thing it boots fast! Left over from a time now gone is the UNIX-HATERS Handbook. From the days when LISP machines stomped the Earth, and Macs were changing the face of computing (Wait, isn't that happening again?) comes a humorous look at all those little things that constantly go wrong in the OS we call Unix. You'll laugh because it's funny, but you may also learn a thing or two about what the world of computing once looked like.
Baen Free Library - Science Fiction and Fantasy. All free for the taking! Think I'm kidding? Click on the link and find out! My personal recommendations are: On Basilisk Station, 1632, and Mutineer's Moon. Odyssey is a great read as well. Enjoy!
Star Dragon - Star Dragon is a hard Sci-Fi novel from author Mike Brotherton. I can't tell you if it's any good, but I can tell you that it's free. Never hurts to scope out new authors!
Baen Book CDs - So you thought the Baen Free Library was cool, did you? Well so did Mr. Baen. He thought it was so cool that he'd try attaching a few CDROMs filled with even more books to his hardcover novels. The only catch? You can give the CDs to all your friends and neighbors. Wait, that's not a catch, that's a feature! Enjoy these hundreds of books offered at no charge, and with no DRM!
Audio Books for Free - Sometimes the pressures of life get in the way of reading. For those times, there are audio books. But who has a tape player anymore? This site is chock full of free MP3s that you can download to your player and listen to on the go! Sure, it's mostly classics. You do like classics, right?
Project Gutenberg - Speaking of classics, how can any discussion of free books fail to mention Project Gutenberg? With over 16,000 books transferred to electronic format, there's no better place to catch up on your H.G. Wells or Jules Verne!