I'm currently reading John Ousterhout's "A Philosophy of Software Design" and it's not bad. I don't think anything in it is radical, and most of it I agree with. It's just nice that I see eye to eye with a guy who wrote a language and operating system that other people use.
And I just ordered a stack of XP books (Extreme Programming Explained, Installed, Examined, etc.) I can't say they were all great, but I remember thinking they weren't that bad in the 90s.
And of course Mythical Man Month and Peopleware, but that's probably more for engineering managers.
And HtDP and to a lesser degree SICP. You sort of have to read them in order to speak the same language with other devs, and if you were raised on OOP, their functional slant will exercise your brain in a good way.
And I went back and read TDD by Example. I agree with everything about it except the focus on features (which seem like a problem domain structure) instead of abstractions and design points (which seem like solution domain structures.)
I'm currently reading John Ousterhout's "A Philosophy of Software Design" and it's not bad. I don't think anything in it is radical, and most of it I agree with. It's just nice that I see eye to eye with a guy who wrote a language and operating system that other people use.
And I just ordered a stack of XP books (Extreme Programming Explained, Installed, Examined, etc.) I can't say they were all great, but I remember thinking they weren't that bad in the 90s.
And of course Mythical Man Month and Peopleware, but that's probably more for engineering managers.
And HtDP and to a lesser degree SICP. You sort of have to read them in order to speak the same language with other devs, and if you were raised on OOP, their functional slant will exercise your brain in a good way.
And I went back and read TDD by Example. I agree with everything about it except the focus on features (which seem like a problem domain structure) instead of abstractions and design points (which seem like solution domain structures.)