

Ask HN: How useful is buying a book for learning a framework / technology? - shubhamjain

I am a PHP web developer and I mainly deal in Codeigniter or CakePHP. I have tried a lot of times to learn Django but I am never able to cross the initial hurdle. Last time it went like, opened Django ebook + docs, went ahead up to fivish modules, couldn&#x27;t get my head around a very peculiar app, website abstraction, unable to get a basic user registration and login set up, I ditched it and was back to PHP.  I think the problem is, the online material is somewhat lacking in practical examples on how to get started and this is not only with Django. I had the same problem with Symfony, C# and Haskell. I lose interest pretty fast once I am unable to build something or find something to build with technology.<p>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.
======
weedow
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/](http://effectivedjango.com/)

------
bobfirestone
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.

------
pedalpete
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.

------
frigg
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:

    
    
      - 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.

------
hashtree
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)

