
Originally Posted by
freedompeace
spoonfed vs Googling what you don't know, and exploring things yourself, which you will consequently remember for much longer (and usually more in depth).
Philosophical question of the day: How would one know that they don't know something if they may not even know 'it' exists?
Is it better to learn & be told how to swim in the kiddie-pool first or find yourself in the deep-end to realize you didn't know how to swim?
Warning - long ramble ahead
Ok It seems the above quote holds the crutch of the issue (which is 90% absolutely true, but implies 1 incorrect thing):
Books & Google are both information, & you read from either
Trying it out = 'practice'/hands on, you do with both...
It seems like some people incorrectly assume if you have a book, you only read it and that's it (or only do what the book says & nothing more - THAT would be the hallmark of a bad or mediocre programmer *)
I think people here are getting their panties in a bunch over book-only, vs practice & self re-search
as if one excludes the other (only for retards) or reading something on google/msdn from scratch is somehow that much different than having a book with a preset chapter list.
It's like people say practically the same thing, but they don't understand they are so they keep nitpicking at eachother...
In reality most people read up a subject of their interest (or 'lesson plan'/chapter list) from wherever, then try it out etc, so you do both.. nothing to try out if you didn't read something new somewhere to try out.
(e.g. Go do some programming with Linq, but don't read up anything in any book or help file or even online article so don't google anything.. As you can guess that probably won't work so well...

)
Books Alone without practice = never going to work, 'Trying stuff' from scratch - how would you even know what to try out if you didn't find something to read up on first? Oh google first? that's no different then, than reading a book on the subject. Otherwise you just end up like all the retards on the C++ forum who copy & paste code, hit compile and then are shocked it doesn't work & can't figure out why even though the error message tells them exactly where the error is...
Books or Guides, or online tutorials etc all are there to give
structured guidance so you can build up your skill set, vs just trying to figure stuff out randomly one function at a time how to do something which gets frustrating for person trying it, and the people trying to help them. (just hang out on the C++ forum.. you see it all the time...). And no matter WHAT method you use, I would assume you ALWAYS try out new things & research more than what's spelled out for you - at least any decent developer would!
* Small anecdote : Back in College everyone had the same 'theory' classes and the same 'practical' classes in C++ software dev.. but some people still failed, while others excelled.. difference (besides obvious talent

) was the people who excelled were the ones who actually 'explored' things, and went 'beyond' the 1,2,3,4 instructional steps from the books and tried out 'new' things, figured stuff out on their own going PAST what was in the books. And yes
like freedompeace absolutely correctly points out that stuff stays with you MUCH longer than just reading a chapter & typing it out once.
I personally always took whatever I was learning and tried to write programs around those concepts that integrated a lot of what I was learning or doing at the time & make it relevant to some of my interests, hobbies etc. It's always better to actually care about what you're working on which will keep you motivated vs having some generic app that does absolutely nothing besides one function. Say you like playing guitar & are learning about databases - write a chord-database app. Doing graphical work? Do something that shows scales on a fretboard etc.
A Book (or any type of compiled resource like an online tutorial collection) can provide structure and make you think about things you may have never thought about (or never considered exploring on your own before). It makes sure you have a broad technical base to pull from vs some of the self-taught people who are amazing at 1 thing, but put them on any other task and they'd be stumbling all over because they're so stuck in their own little box because they never even considered alternative ways of doing things, or broadening their skill sets.
In the end it's WWFY - Whatever Works For You, as long as you're not just some copy/paster who thinks they're some awesome programmer... I always have to laugh when I talk to or interview people who claim they've 'totally mastered' a language and then can't answer basic questions about it because they can't write anything from scratch (or lack any skills in huge subsets - e.g. anyone thinking they "Mastered" C++ on windows? I would at minimum assume you know everything about Win32, MFC, WTL, STL, ATL, COM, DAO etc etc and could do them in your sleep) .
I personally enjoy reading a book on the couch and then later on trying those things out WITHOUT any reference - Good brain training

(then again - figuring stuff out without any docs is sorta my thing, right why?

- where is that slacker anyway...)