Keeping Up with Tech
Tech is constantly changing, so how can you stay up-to-date without burning yourself out? Keith Fung shares tips on how to keep learning and stay happy at the same time.
Tech is constantly changing and moving and at times it can be hard as a developer to keep up. There are plenty of blog articles listing the various ways to access knowledge, but less about the approach to learning. Let's discuss a maintainable way of staying up to date, with less burnout, more enjoyment, and more fulfillment.
(Bonus: I'll be discussing this in the framework of software development, but I will try to keep this loose for those who are tech-adjacent, but may not be developers!)
T-Shaped Approach
Back in 2018, I saw this post from Jason Yip discussing the value of T-shaped people. When looking at T skills, we are looking at an upside-down bar chart. The x-axis is all the different skills and the y-axis is the depth of skill. A horizontal bar would signify a broad set of skills with low depth or a broad set of skills. A vertical bar or I would signify a deep set of skills in a single area or a specialty. You may have already met people who are on one extreme or the other; A specialist in .NET who is unfamiliar with other technologies or a generalist jack-of-all-trades who knows every JS framework, yet still seems inexperienced. However, someone who is T-shaped has the combination of both a generalist and a specialist.
This leads our journey to start with two questions:
- What do you want to be a Specialist in?
- What do you need to be a Generalist in?
Specializing
Specialization in careers can happen on purpose but many times it's just situational. Maybe you got into a specialized field like programming games or maybe you worked on a client with a large legacy codebase or maybe you really really like a certain technology. Whatever the reason, you have a specific set of skills. Maybe you actually want to develop a new one from scratch. Regardless, specializing is about being explorative. Regardless, specializing is about being explorative, diving deep, and learning all you can.
Choosing
Have a hard conversation with yourself. What skills do you want to keep? What do you like to do? I find the skills we enjoy tend to be the best to specialize in. If you like beautiful front-ends, spend the extra time on those animation skills. Be great at the things you want to do often.
You may find yourself in a situation where the skills you have or that you like are not in high demand or do not pay well. No harm in having skills that are just enjoyed, but allow yourself to pivot or find adjacent skills. Maybe it's time you start fresh.
Starting Fresh
Perhaps you are lacking in skills. Whether you're brand new to development or missing skills for another reason, that's okay; interests change, technology changes, careers change. However, this does make it hard to find where to start. Usually, you just need a single starting point. This can truly be anything, perhaps you have a company an application you like, or a piece of technology you are interested in. Aim for specialties in the big and popular if you can. There's a lot of room to grow and learn.
The next step is nothing but research. The first step is search engines but focus on finding forums of individuals already interested in the topic. Meetups are a great source, but looking at the forum boards and GitHub issues for your favorite tech is helpful as well. If you're unfamiliar, seek those that are familiar. That will help you course correct faster.
Broadening
Broadening your skillsets is usually a bit easier to do than specializing. Usually, the problem becomes indecision by the amount of choice. Let's limit what we want to add in terms of skills.
We want skills that:
- Synergize - You have a specialty. You want skills that sync with that. If you're focusing on React front-end, perhaps you want to improve your CSS.
- Fill Gaps - We all have gaps. Think about the thing you have to keep learning on the fly or the thing you never have enough time for. Learn that.
Once we have those skills, try to focus on one at a time, but be sure to stay diverse. For example, only knowing one database technology is not as helpful as having a broad database knowledge. Broadening is about keeping yourself knowledgeable but flexible. Keep a diversity to your knowledge. No one trick ponies.
Future Proofing
When learning, there can be this tendency to be over-efficient. Many want to ensure they are not wasting time learning something that will never take off. Make some peace that some of your skills may not flourish into a career or that some technologies will die. Predicting trends is far from perfect, but here are some tips to try to help your learning journey and minimize the atrophy 😀.
Scaling
Looking back on being T-Shaped, I think of all skill learning as trying to scale up your skills across the T proportionally. For example, if you find you're too specialized and becoming an I, time to broaden your skills. If you feel like a "Master of None" when it comes to skills, it may be time to specialize. Having this simple visualization can really help in the what to learn today choices. If you feel like you're balanced, you can go either direction and try to balance the other direction later. Maintain the shape of the skillsets you want to acquire.
The Next Thing
I am often asked, "How do you figure out the next thing?". Predicting the future in tech is far from an exact science, but I'll try to help.
When I'm searching around, here are some things I'm looking for:
- Low Cost (& Easy) - People like cheap and free. There is rarely something for nothing but tools that have high costs are usually avoided by the majority of developers. Consider that ease of use factors into this too. Tools that take forever to implement are essentially expensive.
- Backing - Who makes things is super important. Famous company? Popular devs? Lots of installs/downloads? Check who made it and funded it and who is using it.
- Simplicity - Complicated tools don't tend to make it. Remember KISS and seek the simple.
- Documentation - Any tech you use will have to be explained. Always a good start if it is well-documented. Good documentation is the first step to a technology being popular.
- Variety - There are so many tech and tools. If I'm looking for a JavaScript framework, I'm comparing all the frameworks. Not just my favorite ones
On the other hand, these are the things I avoid:
- Proprietary - Too much proprietary is often a good sign of legacy code. Sometimes there isn't a choice, but keep your eyes on this.
- Magic - Too much handwaving and magic is never a good sign. Often means something that can get outdated quick.
Once you find something interesting, put it through the paces. A Hello World
is a great start, but build creatively and try something new. It's difficult to be creative so allow yourself time to fumble and learn. Think of real problems to solve. Be sure to use the official documentation. However, if you find every step of the tool or tech is clumsy or downright irritating, take a look at the competition. See if it's easier with another solution. At worst, you're just broadening your skills, at best, you're becoming a specialist. You can try and supplement with other experiences, but keep in mind those first-hand experiences can drive how you move forward and learn.
Next Steps
I hope that this was helpful to you on your learning journey. Remember to keep yourself flexible and keep exploring! After all, learning never stops.
If you want a team of up-to-date developers, feel free to reach out to us here at InfernoRed Technology! Tell us all about what you're learning!