Take the time to learn your tools better: whether it’s your IDE, the OS, shell, programming language or libraries. Learn what you use thoroughly, and then branch out and learn new ones.
- You are unfamiliar with new technology and newer design options
- You haven’t added any new tools to your skill set in the last six months
- You see flashy new things but don’t know much about them
- You know there might be better ways to use your current tools, but haven’t had the time to investigate further
- You’ll be faster and more efficient with your current tool set
- You’ll have better answers when the next set of tough questions come up
- In more and more cases, you won’t have to guess, you’ll know
✓ Critical ❑ Helpful ❑ Experimental
Steps to first adopt this practice:
- Schedule a time during the day when you focus on learning more about your current tools in greater depth.
- Start two new, empty lists:
- List of Questions
- List of New Skills
- As you go through your day, when you come across something you don’t feel you understand well enough, add it to the list. Do not add items that you need to look up and apply immediately, but deeper questions that can’t be answer with a quick Internet search. Maybe it’s a deeper look into a tool you’re already using (such as git, or the latest additions to Java), or perhaps it’s something new entirely (that latest functional language or tool).
- At your scheduled time, start at the top of your list and dig in. Find articles, books, screencasts, demos, whatever you need to answer your question.
- When you feel you’ve learned something new that you didn’t know previously, add it to your List of New Skills.
- After two weeks, take a look at your two lists. Look at the items on you New Skills list, and consider whether you would have been able to know these extra things if you hadn’t explicitly made the time to do so.
What Does it Look like?
After you get into the habit of jotting down something to research further, you don’t have to keep a list of new things you’ve learned. You’re welcome to if you want to, but it’s not necessary.
The point here is to get in the habit of learning more deeply so you’re better prepared for the unknowns and sudden changes in direction that are part of modern projects. The more in-depth knowledge you have of your current tools, and the more you learn about new tools, the better prepared you’ll be.
- You don’t spend any time learning your tools or learning new ones
- You spend all your time learning your tools and new ones
- You spend time learning the same tools over and over again
- Learn all the keyboard shortcuts for your current IDE or editor
- Find a better way to use one of your other current tools
- Learn at least one new programming language every year. Branch out into different sorts of languages: object oriented, functional, logic-based, dynamic vs static typing, etc.
How To Fail Spectacularly
Anti-patterns from the Hall of Shame