I know what you’re thinking. He’s writing a post about revision control: SVN, Git, etc.
This post is all about training and education. More specifically, I’m talking about what you need to learn as a developer, and what you can reasonably expect an employer to train you on.
I had always kind of thought that as a developer you were responsible for your own education and your own career development. Ultimately, that is still true. It’s a cold competitive world out there, and you need to look out for #1. But are there times when you can have an expectation to be trained? Yes!
Here’s my philosophy:
If it’s a core skill, something that you can take with you from one job to another or one assignment to another, then it’s on you. Learn it through education, experience, or extra-curricular practice. I call those ‘trunk skills’. Some examples for a developer include using an IDE, using revision control (you knew I was going to bring that up!), learning functional programming, and writing concurrent code.
If it’s a non-core (“branch”) skill, something that may not be critical to your employability, something largely obsolete, or something your employer needs for a specific purpose, you can probably expect your employer to put some effort into training you. It would be great if you can pick it up quickly, all the same, but certainly isn’t something you should put any effort into outside of your regular work hours. Examples might include COBOL, Kubernetes, and WebSphere.
So remember, if there are skills you need to improve, and if it’s for *you*, focus on core skills. There are always things you need to work on. Even the best developers in the world have areas for improvement.
I took a page out of my brother Angus Woodman‘s book in this post. He tends to write articles as they come to him, and not keep a backlog of ideas. So it is with this one, which I have only recently begun to think about.