Some time ago I was reminded of an article by a man whom I know personally and am really proud of being aquatinted with. In article "10 software developers' books which shook the world, but are still unknown in Russia" (in Russian) Andrey Terekhov discusses top 10 books from his library which are definitely worth the time you spend reading them. These books are "must read" for those who want to be software engineers instead of mere "programmers".
What is interesting about this list is that not all the books would be "Yes, sure! You've got to read them!" for everybody. While going through the list I understood that, for instance, "Peopleware" will not cause reader's eyebrows to go up. But with following 3 titles:
- Jeffrey Ullman, "Elements of ML Programming"
- Clemens Szyperski, "Component Software"
- Andrew Appel, Jens Palsberg, "Modern Compiler Implementation in Java"
I would expect that some people say "Hey! I'm a Java/.NET/PHP/Ruby/whatever developer! Why do I care?!" And those are people who fail maturity test.
Mature people (this has nothing to do with age or junior vs. senior developer) look for and appreciate opportunities to widen and deepen their knowledge and understanding of things. They realize that going to next level also means going beyond current horizons. And sure way to do that is study adjacent (and not only) areas of knowledge even if this new information is not immediately applicable to what they are doing now.
So do not miss opportunities to go beyond and know more than you need today to make sure you know enough tomorrow.