How many books do you have to read when you're a programmer?
#1 Members - Reputation: 289
Posted 24 April 2011 - 07:17 AM
And when you read, do you read the same parts over and over again once per books you have in your possession? Does that make some parts of the contents redundant?
This affects me setting a goal during my free time, to read about 15 programming books on C/C++, DirectX and OpenGL, and 2 big books on Java. And I would like for some opinions. Hopefully, it's not about what kind of books I have to read, just need the total amount. Thanks in advance.
#2 Crossbones+ - Reputation: 2428
Posted 24 April 2011 - 07:33 AM
2. There is no magic number of books you have to read and you don't just sit there reading front to back, what do you hope that would achieve? I have about 60-70 books on my shelf that I've used but it's just information at your fingers, not some magic that makes you code better. Not to mention after learning the basics it's more about reading papers and articles and putting together an implementation.
3. Why do you think you need 15 books on those subjects? You listed 4 subjects so if you think about it that should point to having 4 books, one of each subject, and then filling in the holes and advanced details once you have an idea of what you want to learn. Also why try to learn C++ and Java at the same time while learning how to program? Why not stick to one language while you're learning and then eventually learn others?
I have seen a few people ask something along these lines though so I do want to stress that reading a book is just going to give you information... which will be forgotten very quickly if you do not use / practice it while learning. You aren't going to sit down and read a book on C++ cover to cover like you mentioned, at least not if you want to actually learn how to write code and become proficient at it. You likely wouldn't suggest sitting down and reading a book on Calculus without working through the math will teach you anything, so why is programming different? You will read a chapter or so, do the exercises, try building your own small app using those techniques, etc. Quite honestly sitting down at the computer and playing around with a simple "Hello World" you're going to learn a lot more than simply reading a book from cover to cover without practical usage.
#4 Members - Reputation: 256
Posted 24 April 2011 - 07:58 AM
Like has been said, just reading books wont means can code.
Having said that there are loads of really useful books out there, as well as loads of websites.
#6 Members - Reputation: 3372
Posted 24 April 2011 - 08:26 AM
If you count ebooks (eg. The F# Survival Guide) then I probably read about 2-3 a year now. 4-6 a year was probably more accurate when I was transitioning from beginner programmer to barely competent programmer. And when I say read a book, it means reading the majority of the thing, occasionally skipping chapters on bits I don't care about (like implementing my own algorithm in the Regex book I own. Good to know I have that resource, not entirely useful when I was learning regex syntax). But spending enough time with it that you grok the concepts, get what you need from it, and can refer back effectively when you need more from it.
#7 Members - Reputation: 289
Posted 24 April 2011 - 10:26 AM
In addition to Saruman's fine post:
If you count ebooks (eg. The F# Survival Guide) then I probably read about 2-3 a year now. 4-6 a year was probably more accurate when I was transitioning from beginner programmer to barely competent programmer. And when I say read a book, it means reading the majority of the thing, occasionally skipping chapters on bits I don't care about (like implementing my own algorithm in the Regex book I own. Good to know I have that resource, not entirely useful when I was learning regex syntax). But spending enough time with it that you grok the concepts, get what you need from it, and can refer back effectively when you need more from it.
I think I found a good method of reading books now. Yes, I do think that writing code is better than reading the book, but then I hit a few contradictions:
1. If you start programming from the beginning, you need at least 1 book as a guide to learn.
2. After reading the fundementals from the first book, you need other books to fill in lessons and subjects outside of the curriculum of the first book.
3. For those who learned at least 2 programming languages, you need at least 1 book for each language.
In total, in your possession, you should have a few books, but I see most posts say they learn by writing. That still counts as if you have read a book.
#9 Members - Reputation: 3372
Posted 24 April 2011 - 11:55 AM
I think I found a good method of reading books now. Yes, I do think that writing code is better than reading the book, but then I hit a few contradictions:
1. If you start programming from the beginning, you need at least 1 book as a guide to learn.
2. After reading the fundementals from the first book, you need other books to fill in lessons and subjects outside of the curriculum of the first book.
3. For those who learned at least 2 programming languages, you need at least 1 book for each language.
In total, in your possession, you should have a few books, but I see most posts say they learn by writing. That still counts as if you have read a book.
Quit trying to make some sort of generalized rules for these things. I don't have a book for each language I've learned. I have a number of books that are reference guides, some that are good for their concepts, but not for their examples. EVERYONE learns by writing. Do you really think it takes me a few months to read a book? No, it takes a few days. It takes a few months of writing code to turn reading into knowledge.
#10 Members - Reputation: 103
Posted 24 April 2011 - 12:36 PM
Buy a book to get started in a language - a tutorial book, not necessarily a "resource" book.
Program in said language until you are stuck.
Buy a book on the subject of what you are stuck with.
Read said book start to finish, and learn a whole bunch about the theory around your problem, giving you resources to use if you change languages.
I read 2-4 books a year, usually. Many of them are not language specific at all.
#11 Members - Reputation: 1896
Posted 24 April 2011 - 12:44 PM
Also, especially when it comes to technical subjects, quite often you won't read a book cover to cover, but rather will keep it available as a reference and refer to it as needed. Lastly, as often as not you can find the answers to whatever question you might have online (for example, MSDN is a good first stop for .NET-related questions).
#12 Members - Reputation: 308
Posted 24 April 2011 - 12:51 PM
Most my learning was done from actually coding and trying new things out, getting stumped, googling gamedev and trying the new things I find. Alot of it comes from experimentation and experience.
[ current projects' videos ]
[ Zolo Project ]
I'm not mean, I just like to get to the point.
#13 Members - Reputation: 4032
Posted 24 April 2011 - 02:52 PM
It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.
#15 Crossbones+ - Reputation: 2428
Posted 24 April 2011 - 04:52 PM
I've written production code in about 8-9 different languages but the only actual language books I own are "The C Programming Language" and Stroustrup's "The C++ Programming Language" .. everything else such as C#, Python, Erlang, etc I've learned from reading online, documentation, etc. Most programming languages are quite simple with a very small number of keywords (in comparison to say C++) and if you have a solid foundation in programming it should be dead simple to learn a new language.3. For those who learned at least 2 programming languages, you need at least 1 book for each language.
Quite honestly if you work in the lower level aspects of game development (i.e. rendering, physics, etc) you are going to be way more concerned with your math and algorithm skills than your wizardry in language or API X.
By this line I'm not sure if you've understood what I meant by learn by writing code. For example when just learning programming as a skill you should be reading chapter 1, going to the computer and doing any listed exercises, possibly doing some on your own, now you can move to chapter 2. You should understand all of the concepts before moving on, otherwise you are just completely wasting your time. So if your plan is to sit down and read an entire C++ book on the couch like it is a novel and then start programming something with your newly gained "knowledge" I would be surprised if you could get "Hello World" running. I just wanted to stress this as it is very important to actually write code, the books and online resources are just there to help you understand and be able to write the code. To put it into perspective just keep thinking of my earlier example of sitting down trying to read through an entire math text without doing a single problem, you likely won't be able to answer a single question at the end of reading the text unless you were constantly working on problems and messing around figuring things out on your own.In total, in your possession, you should have a few books, but I see most posts say they learn by writing. That still counts as if you have read a book.
#16 Members - Reputation: 3515
Posted 24 April 2011 - 05:22 PM
Reading 20 books about programming won't help you get better in the same way that reading 20 books about riding a bike, or 20 books about renaissance paintings will make you good at those skills. Programming isn't about memorization. It's about learning the concept of how it works, and then having the intelligence to know how to use the tools you have to solve the problems you need to solve to realize whatever programs you want to make.
Once you start to grasp how programming works, you will start to understand how all the concepts you learned can be combined to make different things. Then you might read books for different things, like how to code reliably or securely, but not so much to learn programming.
#18 Members - Reputation: 432
Posted 24 April 2011 - 07:21 PM
As others have said though, reading alone won't make you a good programmer: programming will. Books are great for teaching you new things, especially difficult things you normally wouldn't learn on your own, but if you get a book with exercises, make sure to do them all as you won't learn much by just reading. Practice is much more important.
#19 Members - Reputation: 2822
Posted 24 April 2011 - 07:27 PM
I have several books that just seem to fall open to certain passages. Oh wait...And when you read, do you read the same parts over and over again once per books you have in your possession? Does that make some parts of the contents redundant?
I'm sorry, I didn't realize you were talking about programming books.This affects me setting a goal during my free time, to read about 15 programming books on C/C++, DirectX and OpenGL, and 2 big books on Java. And I would like for some opinions. Hopefully, it's not about what kind of books I have to read, just need the total amount.
Seriously, I have bookshelves full of programming books. More is better. Ask most successful published authors and they will tell you you need to spend as much time reading as you do writing, maybe twice as much. Programming is also a literate art and is no different in that respect. Broaden your horizons by standing on the shoulders of giants.
Like I said, I have shelves full of technical books. I have shelves full of back issues of IEEE and ACM journals. I have the 3-volume boxed set of TAOCP (who knew he would actually put out volume 4?). I still have all my textbooks from University because you never know when M-way external tape sorts will come back into vogue.
Don't take advice on what books to read from people who are take pride in their illiteracy.
Professional Free Software Developer






