I love to read about design patterns, syntax and semantics language specifications ( e.g. the C++ standard ), Unit tests and this kind of stuff. Actually even more than to actually implement it because I am not confident with my skill level and the final outcome.
I do not want to stop reading about coding theory until I reach an expert level, writing good and clean code. For me it feels right and I love it. What do other programmers say about this approach? Thanks
It is optimal to use both book learning and learning by doing.<p>You can solve a lot of problems by looking on StackOverflow, particularly the ones like "how do I get the length of a string in (Haskel|Tcl|Lisp|Python|Ruby|COBOL|...)"<p>In some areas you can get away with it, but when a software system has been worked on for (say) 20 person years by multiple persons, you will find things breaking down because people did not understand the fundamentals.<p>Thus it is good to study the fundamentals, particularly the fundamentals that are relevant to the project work you are doing now.<p>I upload technical books to my tablet and read them while I spin at the gym.<p>When it comes to a practice like unit tests, it is a letdown if you read about them but don't write any tests because the value of unit tests in most situations in indisputable.<p>Also if you take a class in Physics or Calculus or something like that, doing problem sets is essential for you to really learn the book content. Teaching physics, I've heard so many times that "I understand the concepts but I can't do the problem" and then worked with the student to understand the thought process for us both to understand that the student did not understand the concept at all.
It's like sex: you can read all you want, but nothing beats getting messy and doing it for real with other human beings.<p>I guess what I'm trying to say is that if you spend all of your time reading theory instead of building software, you're a wanker.