I'm pretty much in the start of my career. I still have a lot to learn. But every time I have some free time I ask myself: should I do some progress on my reading (I have 3-4 books on my reading list that I really want to master as soon as possible), or should I do some progress on my side projects, which are really meant for learning purposes?<p>I'm really having a hard time deciding how to divide my time. How much time should I spend on passive reading (some of these reading are pretty theoretical) and how much time should I spend on actually coding?<p>I'd love to hear your takes on this...
I'd say it would really depend on your level of education. When learning any tooling, you spend more time in the documentation at the beginning and need to refer to it less and less as you gain experience. The next steps are specific to the field you are working in, whether it be LOB, embedded, distributed, data processing etc. For LOB apps I found it invaluable to review design patterns (because all tooling/frameworks use them) and object-oriented design principles. Development is more than just programming. Programming is the method of writing software and should become an asset in your arsenal, just like project management or problem solving skills. Unfortunately a lot of educational material doesn't go into the realm of proper architected software and instead just focuses on programming. Take a look at domain driven design (ddd), distributed domain driven design design (dddd), command-query responsibility segregation and different types of logical layering such as n-tier, client/server,semi-connected apps or onion layering too.<p>On a final note, write a lot of programs - even if they are only a couple of hundred lines of code. Productivity really kicks in after you've become comfortable not reinventing the wheel all the time - everyone should invest time into working this out of their systems.
Make sure they're both substantial and you won't be far wrong. Don't spend all your reading time just reading (without working through problems or otherwise engaging with it).