When I was introduced to iOS development in 2014 I was amazed at what could be done with Objective-C, MVC (Model-View-Controller) design, and Parse. All through coding bootcamp we drilled down into these topics, putting them together brick by brick until our mobile stack could pump out a working prototype.
But change is always constant, and Objective-C made way for the first Swift release, and Parse stepped aside while Firebase ascended to it’s Google-acquired status. Finally, MVC gave way to MVVM for me, and opened up new paradigms of programming – Functional Programming, Reactive Programming, and dare I say it, Functional Reactive Programming.
However, instead of getting bogged down with the sheer amount of information available to the average developer with an internet connection, let’s focus on how to manage that ever-expanding landscape we call a development stack. At it’s most basic, managing yourself and your tech stack will come down to the time you trade for the gain you receive.
Trying to keep up with paradigm shifts, new languages, and emerging platforms is difficult. Really difficult. What’s assured is that no matter how hard you try or how many hours a day you put in, there’s always more to learn; that can be depressing or invigorating, depending on your mood. The key is to focus on the long game, the career that spans decades, instead of what may be right in front of you.
- Do your research before committing to learning anything new.
- Ask yourself some basic questions about how useful this new information or skill will be in the short versus long term, and how much of a time/effort commitment is required for mastery.
- The acceptability of this ratio will depend on the individual, but it’s important to consider what you’re trading your time for.
Balancing what you need to learn for your career versus what you want to learn for yourself is almost as tricky as not burning yourself out. The sweet spot will be when the learning needs of your career intersect those areas you want to dive into for yourself, but realistically that’s not always possible.
- Choose new topics and areas of interest that focus on what you will need to get to the next step of your career.
- There’s also a time/material ratio here that you’ll have to fiddle with – career learning time/material : self learning time/material.
If you’re lucky enough to have conferences, meet-ups, and more count towards your work time, you’re ahead of the game. For those that don’t have this kind of setup, it’s important to choose wisely when it comes to extracurriculars. There’s no doubt that attending conferences and meet-ups is a great way to engage with your development community, but there will be a lot of overlap and repetition. Don’t get pressured into going to every event just because other people are. Consider what you could gain spending that time working on one of your learning topics, or even spending time at home with your family.
There will always be those few who go to EVERYTHING in order to be seen or simply to say they went. You’re not a bad developer if you would rather read a book at home or eat out with your spouse.
This last area is perhaps the most overlooked when it comes to your personal tech stack. Performing maintenance on your existing knowledge base may seem like a time waster, but as most developers know, refactoring can be the best thing to happen to a project. And that’s all sharpening your existing tool kit is, refreshing and refactoring the knowledge you’ve already acquired, making sure it’s up to date and ready to go.
I’ve found that I frequently forget to balance my work and private life, and if you’re the same way just remember that software development is a marathon, not a sprint.