How to stay motivated as a self-taught developer
Learning by yourself can be discouraging. Here's how to keep the momentum going.
It’s the first day of the year.
You decided you’re finally gonna learn to code. Or you are committed to improving your skills to get a better job opportunity. Maybe this is the year you’re gonna start working remotely for an international company.
Every new year brings a boost in motivation. We’re up for a new challenge. We are gonna make things happen!
A few months in, you realize that the challenge is bigger than you have anticipated, and with everything else that’s going on in your life, you just push your plans a little bit — until next year begins.
I get it. It's hard. Learning to code by yourself is not a walk in the park. It's frustrating, exhausting, and you feel like you're not going to make it. And when you’re self-taught, you need an even greater dose of motivation.
Over the years, I’ve found a system that works extremely well to support the learning process of a software engineer’s career. It’s based on four pillars: Accountability, Organization, Networking, and Learning in public.
1. Accountability
The first step is to make sure you’re committed.
Find people you trust and share your goals with them. It can be a colleague, a family member, a mentor, or a friend.
Ask them to check regularly how you’re going, what you’re learning, and whether you’re reaching your objectives. Ask them to keep you accountable.
It’s easier to justify to yourself why you’re not making any progress than to do it for someone else that cares about you. They’re gonna ask you the hard questions — and sometimes that’s what you need to keep focused.
2. Organization
Keeping things organized is essential for a self-taught developer. You don’t have a syllabus from the university, and you need to choose your own resources.
Find great resources for the language, framework, or stack you want to learn. Deconstruct the material you have and focus on the most relevant parts.
Create a schedule and specify what you want to cover in each learning session. You’d be amazed by how quickly you can get into a topic just by knowing beforehand what your focus is.
Take notes as you learn. You don’t need to remember all the details for every project, but the main takeaways and trade-offs you had to make will surely be valuable later.
3. Networking
Surround yourself with people from the tech industry. Find out who the best software engineers are in your area of study. Follow them on Twitter, read their blogs, and ask questions.
Learn from more experienced devs. Listen to them and question their decisions. Add your perspective — they also want to learn from you!
Get involved in communities. Apps like Discord and Slack have a lot of communities around tech stacks, languages, frameworks, or other interests in common.
Help others that are learning, just like you. There will always be people a few steps ahead and behind you on their journeys. Always give more than you consume. Helping others will encourage you to keep learning.
4. Learn in public
Although working from home can be isolating sometimes, your learning process doesn't have to be.
Sharing what you're learning is a huge motivation boost.
You'll quickly notice that a problem you’ve struggled to solve is difficult for others too, and sharing resources is a win-win game. Additionally, teaching a concept you learned will help you to strengthen your knowledge of the subject.
Create a blog, YouTube channel, or social media account to document your learning process. Besides all the previous benefits, you’ll see an amazing sense of progress compared to when you started.
As you may have noticed, this system works for all software engineers, regardless of their background. However, self-taught developers can particularly benefit from a learning structure where they can stay motivated and develop their network along the journey.
Josias Schneider — The Outsider Dev