I heartily recommend pretty much all of Jerry Weinberg’s books to all software developers. The Quality Software Management series is awesome; a lighter but still impressively useful starter book is Are Your Lights On, which teaches how to ask the right questions when you have no freaking clue what is going on. Secrets of Consutling is another good one.
You won’t find a line of code in these books. What they tend to teach you (well, me, anyway, YMMV) is how to gain an understanding of the non-technical essence of a problem. In 99% of cases the technology isn’t the issue anyway; the problem-solving skills (or lack thereof) of the people involved are.
For the remaining 1%, pick a few products or frameworks that appeal to you and become intimately familiar with them, at the “critiquing a work of art” level. Then attempt to build something equally challenging; a virtual machine, an emulator, an OS kernel, a compiler, a whole video game, a web framework, that sort of thing. Deep expertise in any given thing will transfer well, if you have also mastered the art of problem-solving in general, i.e. when you have (to start with) no clue what is going on.
I used to be a decent Java expert, but nowadays I’d go to some lengths to having that kind of label slapped on me; the pay is much better working on problems at a higher level of abstraction.
Are Your Lights On is a good all-purpose introduction to problem-solving, but it’s a bit… basic (worth reading anyways, just because I found it amusing, though). Are Quality Software Management and Secrets of Consulting a little more in-depth?
I heartily recommend pretty much all of Jerry Weinberg’s books to all software developers. The Quality Software Management series is awesome; a lighter but still impressively useful starter book is Are Your Lights On, which teaches how to ask the right questions when you have no freaking clue what is going on. Secrets of Consutling is another good one.
You won’t find a line of code in these books. What they tend to teach you (well, me, anyway, YMMV) is how to gain an understanding of the non-technical essence of a problem. In 99% of cases the technology isn’t the issue anyway; the problem-solving skills (or lack thereof) of the people involved are.
For the remaining 1%, pick a few products or frameworks that appeal to you and become intimately familiar with them, at the “critiquing a work of art” level. Then attempt to build something equally challenging; a virtual machine, an emulator, an OS kernel, a compiler, a whole video game, a web framework, that sort of thing. Deep expertise in any given thing will transfer well, if you have also mastered the art of problem-solving in general, i.e. when you have (to start with) no clue what is going on.
I used to be a decent Java expert, but nowadays I’d go to some lengths to having that kind of label slapped on me; the pay is much better working on problems at a higher level of abstraction.
Are Your Lights On is a good all-purpose introduction to problem-solving, but it’s a bit… basic (worth reading anyways, just because I found it amusing, though). Are Quality Software Management and Secrets of Consulting a little more in-depth?
Very much so; QSM especially (originally a 4-volume series, JW has reissued them in ebook format along with other titles).