Hey, my uncle is a chef. He works at a restaurant and makes food... Anyways some new higher up has come in switching everything around... he's made my uncle change his ways and then change back into them... because his was better(don't know if he just did his job worse because he didn't want to do it his way).
But basically my other uncle was talking about the situation. he then had the killer reason that he was a bed chef or manager etc(the new guy)...
He used cooking books to cook therefore he wasn't a real cook.
Now... I've read many places about the debates if you should read coding books or not... and in fact a lot of college graduates don't pick up any other books after they finish school... they just code. I've also noticed that I learn best by just doing. As in I read a programming book and I didn't finish it... I actually read it why I didn't have a computer. But basically...
Is it wrong to read a programming book... Atleast ones that teach you the language... versus going to tutorials or guides like this site and just diving right in?
I understand this may seem like a useless or open ended question.. It just had me pondering. Because whenever I try to tackle a book... I always feel hmm should I be reading this or should I just go ahead and do it.
I've also noticed the people that will buy something and not read the guide on putting it together.
As a matter of fact I think I'm one of those guys... I bought a chair and it took me like 4 hours to put it together with the directions... Although I was day dreaming a lot. I think I would of finished it in like 10 minutes had i not looked at the directions lol. (and of course 1 screw would of been missing had I not looked at the directions :D)
Is it wrong to read a programming book... Atleast ones that teach you the language... versus going to tutorials or guides like this site and just diving right in?
Hopefully the information imparted is the same in all cases therefore it is a matter of preference as to what medium best servers the reader.
you can only become a competent programmer, especially a competent debugger, by programming frequently. Having said that I learned much much MUCH more in the couple of hours that it took to read Scott Meyers' Effective C++ than I ever could've learned from spending the same amount of time programming.
There is a lot you will never know if you don't read books. What's worse, you won't even be aware of what it is you don't know. Some things would take considerably more time to realize and learn on your own, such as the concept of loop unrolling, and more importantly, when not to use it, and then there are some things that I doubt any person would eventually catch on to, such as branch prediction.
There are some things you can learn by doing, but there are other things you just have to know, and for those things, the only way to just know them is to read about it.
How old are you? How many professional programmers do you really know? First hit on google for 'Programmer cubicle' http://www.cthreepo.com/blog/cubicle.jpg and there is a book on the right side of his desk.
He used cooking books to cook therefore he wasn't a real cook.
That's not really a good analogy. If you were hired as a programmer in a company and couldn't even write a simple piece of code without having a book beside you (references to framework APIs aside), then yes, you wouldn't be a real programmer and the personnel manager would have messed up real bad in hiring you.
However, books are crucial for learning, by giving you a solid foundation. The vast majority of tutorials are bad and likewise, most C++ books are hardly worth the paper they're printed on. That's because it's easy for anyone to just write and publish a tutorial, even if s/he doesn't know much about C++. And while it's a bit harder to get a book published, there's the monetary incentive that makes people do it anyway.
But the difference is, there are some good books (like the "C++ Primer", the aforementioned "Effective C++" and "The C++ Programming Language"), while I don't know any good tutorials.
Of course, you can and should practice while you're reading these books. The rest of your programming career will consist of nonstop practice anyway.
I think that programming books are meant to be read, just not in the same way you read a science fiction book. Programming books are references meant to teach you things. Reading it cover to cover non-stop probably means you've forgotten half of what you read by the time you finish. On the other hand, reading some of it, practicing the newly taught skills for a while, then going back and reading some more (and so forth) will allow you to remember more of the material, but will also take much longer to finish the book.
The amount of time needed to finish the book is directly dependent on how much new material there is you have to practice and how quickly you can learn. Newbies have very little working knowledge to build on, so every new concept is akin to rocket science. Expert programmers not only will find less material "new" to them, but also have a wealth of knowledge to draw upon that facilitates the learning curve. For example, a programming newbie to Java has to learn the entire syntax of the language PLUS object-oriented programming. An expert C++ programmer wanting to learn Java already knows OOP and can focus on the syntax. The expert can see the similarities between the public, private, and protected keywords in C++ and Java and essentially "know" what the mean in Java in under one minute.
As a self-proclaimed "expert" (and by "expert" I am not implying super-guru-dom) of C++, I own exactly two books on C++ and related topics, one of which I rarely ever use and the other only on occasion. For me, those books are references, just like Wikipedia is a reference when I want to learn about Mersenne primes or whatnot. I have never read either book cover-to-cover, not at one time, nor over an extended period of time. At my current stage, I know what I know and I know what I don't know about C++. For the things I don't know, I at least know where to look for the answers, and that's all that matters to me.
Yeah this was a pretty bad question. Thanks for all the answers. I guess I just wanted to ask because I've been reading a lot. LOL. And now I'm planning on reading a ton more...
Intrexa, i'm 20 ha.
I'm going to stop wasting my brain power on things like this.
Also, jsmith, i'm glad you said that. I'm reading a book that teaches a bit of assembly, the gnu debugger :), and c... along with some other useful topics. It's very informative and since reading your post I plan to somewhat master everything before I move on to the next chapter. It's that in depth and concise. Somewhat dense but I've looked at a lot of topics superficially that acts as prereqs to it.