You have to be a really good athlete to run a marathon.
One way to run a marathon is to try and try, and keep trying until you eventually finish. But that requires an incredible amount of tries, and it will take a very long time! (That is, if you don't get permanently injured)
Another way, and this is how the professionals do it, is to make a training plan that with, the use of focused training in different areas, improve your overall fitness and running skills, until you are fit enough to run the marathon. This way is a lot faster, and much more healthy.
We can do the same as developers. We can just keep mindlessly trying to “run a marathon” or we can focus on different areas of our profession, and approach our skills as professionals.
As developers we always face the Golden Hammer issue, where we end up using the wrong tool or approach to a problem because we didn't know that there was a better way. If all you have is a hammer, everything looks like a nail.
The best way to improve quickly is to constantly learn, and follow along as the industry change and new stuff comes out. Even if we don't get to use it right away, knowing something exists and what kinds of problems it could solve can be immensely valuable.
You don't have to be an expert in everything - no one can be - but if you know a little about a lot, you are more likely to come up with a better way to approach the problems you face.
The Employer/Employee problem
We can't expect that our employers pays for you to learn stuff that isn't necessary for you to do our jobs (some employers will do this, but they are few and far between). So we have to keep sharpening our skills in our own time.
I don't have the time - and by the way: When I'm off work, I'm OFF WORK!
This is a common reaction, but the thing is: What I'm talking about isn't work, it's an important part of being a professional.
If you have a family, other interests, friends and a subscription to Netflix, Disney Plus and HBO Max, it doesn't leave any time to be in front of the computer learning all the time. And even though everything is a question of priorities, there are still a few ways to add learning into an otherwise very busy life outside work.
In this series of posts, I will talk about the different ways I stay current and constantly expand my knowledge. This first post is on podcasts.
Podcasts
I live about 25 minutes away from work in biking distance. This means that I have almost an of hour commute every day. That adds up to around 5 hours a week, which is actually quite a lot. On top of that, I try put in my earphones whenever I do anything that doesn’t require a lot of thinking – like vacuuming, grocery shopping or walking the dog. This adds even more listening time, and I end up with about 8 to 10 hours in a week. On top of that I listen at, at least, 1.5x speed, so the actual amount of content consumed is probably more like 15-20 hours!
While many people use that time to listen to music, I use it for listening to podcasts and audiobooks that actually teach me stuff and keep me up to date on what is happening in our industry.
Even by only half listening, you still pick up a lot of things and slowly widen your knowledge.
Blogs
How often do you pull out your phone to mindlessly pass time?
Having an RSS feed reader like Feedly to pull in blogs post from different blogs(like this one) allows you to organize, and stay up to date on new posts without checking a bunch of different sites all the time.
E-books
-How do you eat an elephant? One bite at a time.
A whole book can be daunting and it might seem impossible to find the time to get through a whole book, but if you approach a book like a social media feed or a blog post, you can actually easily get through a book pretty quickly.
With a service like Amazon Kindle (yes - those e-ink tablets) you can buy e-versions of almost all books, and read them through the Kindle app on your phone. It might seem weird at first, but once you get used to reading on the small screen, it actually is pretty nice. Also it keeps your progress and even notes synced across your devices.
Why not read a few pages of Clean Code the next time you are waiting in line at the grocery store?
If you have to use a social media service, let it be Twitter - but only follow professionals. Twitter is a great way to build up a constant flow of links to blog posts, the thoughts of industry leaders, new technology and to get a feel of what is just hot and trending right now and what actually might stick and be state of the art in the future.
Video Courses
Sites like Pluralsight (which is free for students) and Brilliant.org are fantastic resources and worth it, even if you have to pay for them. But there are also an overwhelming amount of great content on YouTube. If you follow the right people on there it can be a really good resource as well.
Again, you don't have to spend hours at a time watching videos, becuase most of this kind of content is split up into clips that only last a few minutes. So the next time your code is compiling, you're waiting for your tests to run or even when you're pooping, you can put on a quick video instead of mindlessly scrolling Instagram or your meme-site of choice.
Conclusion
If you need inspiration on where to start, I will be putting up a post for each of the above ways with my ways of getting the most out of them along with specific recommendations in the comings months.(I'll come back and link to the posts here)
For now, just get started. It's only a few tiny habits that need to change, to move you from not progressing at all to moving consistently.
If you think of expanding your knowledge like compounding interest, then get your head around the following:
If you improve your knowledge about something 1% each day, then after a hundred days you will know 2.7x more than you did when you started. If you do it every day for a year, you wil have almost 38x'ed your knowledge.
Small steps can make a huge difference, even though each step might seem insignificant.