Tinkering wins most of the time. Honestly, unless it's a completely new concept or way of thinking (or for a lack of a better term, "academic" concept), tinkering and building stuff will be faster and more fun.<p>I only read books after I've tinkered enough to think "I can build something with X, but let's find out the best ways to do it".<p>There are some problems with books for X language or Y framework:<p>* A lot of books (especially free ones) have little to no exercises, giving you no chance to solidify your knowledge and instead copy and paste (or type along)<p>* People that love reading books instead of tinkering, in my experience, a) take too long to learn b) don't retain any material beyond two weeks or so because they don't do exercises (if there are any) c) think they learned the material because they have it in short term memory<p>The above also applies to a lot of "video courses" as well.<p>The only good book I've read in the past years is <a href="http://haskellbook.com/" rel="nofollow">http://haskellbook.com/</a> because it explains things well, is well structured, and most importantly it is full of exercises.
1. Skim the book in 3 or 4 hours to get idea of high level concepts and how they relate, and where to read in more detail when I hit something I don't understand.<p>2. Start coding.<p>3. Refer back to book when I get stuck, and read that section more in depth.
My entire life "tinkering" has always won out. However, right now I am doing the exact opposite in my attempts to learn math - working through a textbook from cover to cover.<p>Math seems like a difficult thing for a beginner to "tinker" with. You can go into Visual Studio and tinker with C#; you can open Chrome Dev Tools and tinker with CSS; you can go to Sublime and tinker with JS or python; and you can sit down and tinker with sketching or painting or building a wooden box. But how do you tinker with a tool which has so many rules and concepts and no compiler or runtime log to let you know when you've done something wrong?<p>So far my extent of "tinkering" with math has been completing the exercises at the end of each textbook section and Googling answers to various equations or examples of proofs I want to try out based on an assumption I've made from the things I've just learned. I guess that is a form of tinkering also, but it comes after the entire reading part.
My experience is different than most people apparently: Books put you on the fast lane IMO. Of course it takes practice to master something, anything. Books represent a form of compressed, structured knowledge that is very difficult for someone to find on his own.<p>It is really nice to play around with mentos and coca-cola but without reading something like the McMurry (Chemistry 8th/7th/6th or 9th Edition) you'll never understand organic chemistry's basics. You might get a long way on your own if you're Ramanujan-level, but otherwise I think you'll learn, but way more slowly and in a possibly unstructured way.
There's something to be said for just reading manuals. Like, I can mess around with Gimp and get basic stuff done, but I bet if I read a book or manual I would pick on fundamental things that would help me really learn to master the tool.<p>I like to just read man files of utilities too, even when I have no specific need. It's like broadening my background knowledge to call on later when an opportunity comes up.
I'll read a tutorial/blog post or the official docs to quickly get up to speed on something, and read textbooks for learning a topic in depth. The problem is I get too caught up in reading a dense textbook but forget a lot of it because I don't apply that knowledge. I'm trying to find a middle ground between reading and application.
Tinkering (especially for programming) most of the time. I have ADHD, so it is a bit tough for me to stay fully focused when reading as I tend to skip paragraphs etc :)