While working with a new client who had some green developers, it struck me that they only knew about 20% (totally arbitrary for this example) of the features of the tool they were using daily. For example, when asking them if they preferred merge vs rebase, I was often met with blank stares. Similarly, when using their editor, I would often find them manually searching and replacing renamed variables, rather than using the built-in feature of the editor.
As an automation specialist, I have a natural drive to find the best solution to simplify the tasks I perform regularly, and it surprises me when others do the same. Here’s a list of the things I do daily to ensure I master the tools and technologies of my trade:
- Order the tools and tech by their most used. For example, I use Git everywhere, followed by VS Code for editing. My editor is situational; VS Code for more substantial edits, or Vim for commit messages/smaller edits, so it goes second. Then in third place will probably be my programming language. I change this more frequently (depending on the client). For a developer, the development language may be first.
- Read, at a minimum, the introduction documentation. Mastery will only come from reading all of the literature. I have learnt the hard way that when I experience some odd behaviour, there will be documentation discussing the nuance, somewhere.
- Start reading new and old release notes for said technology. This will ensure you stay up-to-date with new features, and you can often find undocumented features too. This is especially true of open source technology where documentation isn’t always as current as the code.
- Subscribe to blogs that discuss said technology. This is where I often learn tips and tricks that even the developers may not be aware of. People are very creative and often use tools in ways the developer never intended; sometimes bad, but mostly good.
- Practice. Without practice, you will never find problems that need a more creative solution. Experience is merely another word for “time using/doing”.