I see a lot of questions from people asking what books are recommended to learn a certain language or technology but I hardly see anyone asking for online tutorials. Since graduating from college I've only bought one programming book but I've reviewed countless online tutorials and web sites. Do physical books offer anything I can't learn through online tutorials and tech web sites? Thanks.
Physical books are good for reading when you are away from the computer. Some people like that format as they can use it when taking breaks from computer usage or when doing something where they wouldn't normally have a computer (lunch, bathroom).
The downside to books is if something is wrong it's up to you to figure it out. On a website it will most likely be pointed out right away if any information is incorrect.
what do you want to learn?
anyway from my experience it is both. tutorials gives you a good place to start but book will cover the issue.
So start with tutorials and use books and stackoverflow for problems :)
The book authors put several more hours of work than the tutorial ones; whilst it may be possible to an online tutorial to be as polished as a book, in practice the book has undergone several reviews along its drafts and versions (specially the best sold ones that will be recommended. Those are, also, selected from a big book supply).
On books, typically the author tends to touch more fringe themes than on the tutorial, that tends to go straight to the point, more concisely. Thus, the book may give you the same technical response, buy bundle also more wisdom.
Books tend to have exercises and be more design to be studied, not read.
You read typically faster on a book, and the touch feedback is pleasant to most of us.
Websites and tutorials are infinitely helpful if you're looking to learn something specific, and fast, but they can't match the depth of books. Books can afford to be longer, and thus can go into much greater depth than an online tutorial.
Both have their place. If you want to pick up a new language quickly, a tutorial is going to be much more useful than a book. But for broader topics - say, best practices - no tutorial is going to measure up to a book like Code Complete.
The best way I learn after you have the essential basics is by reading code. Its alot easier atleast for me instead of reading long articles or a 500 page book.
Nowadays most books can be bought in electronic formats, so IMHO the real difference is the difference between reading online and reading a book.
When you are reading online, you can use the hyperlinks in the document to quickly navigate to related parts, check related websites, copy-paste code examples.
Reading a book is more useful for longer theoretical parts (you can't try code examples in your head, of course), where you can take your book and a cup of tee and sit on your best couch and let the material sink in or when you want to return to an argument which you couldn't fully understand. Another advantage of using a book is that you have to type in the code examples -- great way to learn!
Tutorials are great for starting points and examples.
Books are great for more detailed concepts.
Take the best of both worlds. I go for tutorials when I'm learning something new and need the quick and dirty summary of it (new language, program, API, whatever). Books are great for things like design patterns or more detailed explanations.
A trend I've noticed in software design books recently is going through the entire thought process of a particular design, including the mistakes. One example is "Applying Domain-Driven Design and Patterns" by Jimmy Nilsson. This approach is quite nice to talk about pitfalls and blunders that we all make, showing us it's okay to make them, but then pointing out why another approach makes more sense.
While this is not impossible in tutorials, I don't see a lot of them going out of their way to force you to make mistakes in your design along the way to learning to do it the "right" way.
The book's a nice format for this type of approach since you a) can see the mistake, and b) not have to waste time coding it up yourself.
Personally I find that they both have their place:
Online Tutorials
- Great for getting quick help and cut-n-paste code samples.
- Usually up to date, or edited with links to updated info.
- Usually cheap/free.
- Can be hard to read online.
- Can be missing information, lacking in research, or just plain wrong.
- Can be hard to find the good ones amongst the dross.
Hardcopy Books
- Great for reading offline and engage your brain better than web pages usually do.
- Usually well researched and edited.
- Can be expensive.
- Can be out of date, and you may not realise until you actually try to use it.
- Are not always accessible.
Biggest shortcoming of online tutorials lack of standard and plan on the content. So you can't have website which have proper TOC like a book.
But learnvisualstudio.com alike video based online websites are great, you got the best of the both worlds. High quality content, a plan and a consistent style + video and interactivity, easy access to code etc.
I enjoy using books as reference material. Tutorials are great for learning a small feature, but having a book you've read and know is something that can be exceptionally valuable. Being able to hand a book to a coworker and say read chapter 6 can be more useful than an email full of tutorial links.
Having said that I have dozens of links to tutorial sites and only keep 2-4 books with me at work at a given time.
In summary tutorials are great tools (which can sometimes be very specialized) while a book is more like a toolbox. Neither is exclusive of the other and they tend to work well together.
Personaly I think I learn better from books then from tutorials. I can get the quick and dirty details of a language/API from a tutorial, but I need a good book to realy understand the topic in detail. I also like the fact that I can go away from my computer and read a book in my best chair and just enjoy the comfort at home.
I don't think they offer anything that the internet doesn't offer save for a different perspective on a topic ... oh and structure.
Regarding structure, unless you think you can organize your own course material for learning an entire language, it's much easier to rely on someone else's already built table of contents to walk you through it.
They work out very nicely as reference material as well.