Know the Platform
Earlier today I wrote about the pain of learning a new toolkit. Afterward it occurred to me I never invested in IDEA or Eclipse, in the way I’m being forced to invest in Emacs. That made me think of all the other tools I use: Spring, JPA, Java, JUnit, integration testing… I know a little about lots of things… but only enough to get through my daily assignments.
Focusing on getting through my daily assignments, without a deep understanding of at least 3 - 4 of the really key tools, makes me a corporate drone, not a professional software developer.
Is being a drone really bad? I do value keeping a roof over my head, and of course my first loyalty is to my employer. But, part of what my employer values me for is in fact a certain level of professionalism, more than I’ve shown so far.
How to transition from drone to professional?
First: continue to keep my employer happy!
Second: learn:
- Toolchain: Emacs, Java, Ansible
- Platform: Spring Boot, Kubernetes
- Practices: specification, testing
- Patterns: Domain-driven design
Third: contribute. Give back to at least one of the above communities… contribute some code, answer questions on Stack Overflow, something!
Fourth: practice. Start a side project… and finish it!
A lot to take on, to be sure. I’ll post back here on my progress.