Ask HN: How useful is buying a book for learning a framework / technology?
5 comments
Well I do find it useful although in my experience it's boring. What I usually do is use the book/framework documentation to create a project which interests me, instead of the project described in the book.
Edit: This seems like a good resource http://effectivedjango.com/
Edit: This seems like a good resource http://effectivedjango.com/
I buy and read a lot of programming books. For me reading books helps. I have a conscious plan about what I am trying to learn and using books is the fastest way to get there. It is true that there is nothing written in any programming book that I couldn't find on the online. The advantage of books over reading online documentation and blog articles is someone has curated and edited the content for me. I can sit down and start reading instead of spending a bunch of time googling things to figure out whats next.
One of the things I usually do is immersing myself in a topic. Buying a couple of books on a subject and going from one to the next. Starting with a more intro book and progressing to more advanced materials creates a very natural feeling learning curve. Since starting this my overall retention has improved greatly.
In-between the immersion cycles I read more general CS type books. It creates a nice mix of topical knowledge and theoretical knowledge.
Frameworks change at a much more rapid pace than the underlying languages. With ebooks you can usually find more up to date content than buying print books. Looking at the published date before buying is important. In the python space there are a lot of current books on interesting topics. There does seem to be a serious lack of Django titles that are current.
I buy most of my books directly from the publishers websites. Between informit.com and orally.com there is always some sort of 50% off ebooks sale going on. I have bought ~45 books this year and paid full price for 3 or 4 of them.
One of the things I usually do is immersing myself in a topic. Buying a couple of books on a subject and going from one to the next. Starting with a more intro book and progressing to more advanced materials creates a very natural feeling learning curve. Since starting this my overall retention has improved greatly.
In-between the immersion cycles I read more general CS type books. It creates a nice mix of topical knowledge and theoretical knowledge.
Frameworks change at a much more rapid pace than the underlying languages. With ebooks you can usually find more up to date content than buying print books. Looking at the published date before buying is important. In the python space there are a lot of current books on interesting topics. There does seem to be a serious lack of Django titles that are current.
I buy most of my books directly from the publishers websites. Between informit.com and orally.com there is always some sort of 50% off ebooks sale going on. I have bought ~45 books this year and paid full price for 3 or 4 of them.
I hadn't read many programming books until recently when I got a premium membership to TutsPlus (which includes a bunch of e-books).
I've actually been surprised how much I've learned while reading on public transit, without doing the programming right there.
I don't read a book and then go back to the computer later and know how to program using the framework or language, but you do learn a few things about form, structure, and often in particular, the reason why certain structures exist. This is often not covered in shorter form blog posts and other online sources.
So, yes, I think reading is effective in helping to learn a framework, but not just going through the examples. I actually find I will often skim most of the code samples anyway.
I also agree with weedow, I don't think building the example apps helps very much, I always create a different project where I am forced to figure out how to do things not exactly as they are set out in tutorials.
I've actually been surprised how much I've learned while reading on public transit, without doing the programming right there.
I don't read a book and then go back to the computer later and know how to program using the framework or language, but you do learn a few things about form, structure, and often in particular, the reason why certain structures exist. This is often not covered in shorter form blog posts and other online sources.
So, yes, I think reading is effective in helping to learn a framework, but not just going through the examples. I actually find I will often skim most of the code samples anyway.
I also agree with weedow, I don't think building the example apps helps very much, I always create a different project where I am forced to figure out how to do things not exactly as they are set out in tutorials.
I think it depends on the framework/language you are learning. Books sometimes have several advantages over tutorials online. Off the top of my head:
As for programming languages, I don't really buy books because I find they're fairly easy to pick up once you know 2-3 (with the exception of books such as Effective Java). Don't forget there are also video tutorials which are an important resource.
- You have everything organized in one place.
- You are sure they are accurate (they often have an errata posted online).
- You don't bother searching for content online.
When I wanted to learn about Servlets/JSP/JSTL/Filters/DAO it was much easier for me to buy a book (Pro JSP 2) than to search for online tutorials, even though there are plenty. This book explained everything I needed to know about the subject.As for programming languages, I don't really buy books because I find they're fairly easy to pick up once you know 2-3 (with the exception of books such as Effective Java). Don't forget there are also video tutorials which are an important resource.
My rule of thumb is the further away from pure computer science you go, the less likely a book is useful and will stay on your shelf in the long run (and the presence of solid alternatives):
- Frameworks: Only in rare cases should you buy a book, read the source code itself
and/or online documentation.
- Programming languages/paradigms: Only buy a book that gets into the nitty
gritty (e.g. Effective Java, Programming in Scala) or helps you wade into a new
language (e.g. Learn you some Haskell for great good, if you are new to Haskell).
- Computer science-y books: Buy them all! (e.g. Hackers delight, introduction to
algorithms, bayesian reasoning and machine learning, purely functional data
structures)
Does anyone else feel the same problem? Does buying a book help? I think offline reading can be more pleasing than scrolling through web pages. There is an argument against books that things like Django change a lot in short time and book is outdated before you buy it.