Learning to code by yourself is hard, and the path is often not as straightforward as we imagined. Unforeseen challenges come up daily, and without the right motivation and support, it's easy to fall into despair.
The scary truth? Most self-taught developers quit early from burnout before they even start building projects or applying for jobs π²
In this article, we will go through the challenges, the pitfalls self-taught developers commonly face, and what steps you can take to keep learning and stay motivated.
As a self-taught developer myself, I quit twice before getting it right! Coming from a PhD in Life Sciences, with no previous programming knowledge and way above the average age of a college freshman, I started again from the ground up. I made the best out of my failures and learned valuable lessons along the way.
1. Lack of purpose
When I started to learn web development for the first time, I had no clear purpose.
I thought I could make a quick buck building websites and dove head first into web development. After an initial honeymoon phase of writing vanilla HTML, CSS, and JavaScript, it got more challenging, and I slowly lost motivation. Making money was not a strong enough reason for me.
To find your purpose, ask these questions:
- Why do I want to learn web development?
- Do I want to build something on my own or rather be part of a team?
- What am I most passionate about web development?
- Am I a more technical or visual type of person?
Once you set a goal, finding a path and identifying the right learning resources for you becomes easier.
If you want to be a front-end developer, maybe you should not start with PHP, for example. Instead, I would recommend you learn HTML, CSS, JavaScript, and React with Scrimba's Frontend Developer Career Path.
Defining your purpose will boost motivation during the difficult moments you encounter and help you stay focused to achieve your long-term goals.
2. Self-doubt
As a self-taught developer, it is normal to doubt yourself, especially at the beginning.
If you've ever asked yourself one of these questions, you are not alone:
- Am I smart enough to learn programming by myself? π€
- Who will ever hire me? π€
- Am I too old? π€
When we cannot find an answer to these questions, we tend to give up after the initial momentum.
With enough practice and motivation, anyone - from any background - can learn web development.
- Dan was an air conditioning technician and landed his first job after 7 months of self-study.
- John got a developer job after having worked as a guitar teacher.
- Robert got his first job as a developer at 33!
If you are questioning if you're good enough, remember that everyone started somewhere - and very few people are outstandingly smart!
You have probably noticed this yourself. When you started your first job, you likely were not as skilled as you are now.
Did you study at university? I bet your first exam did not feel as good as the last one.
If you are willing to put in the effort and consistency, you can't be in a worse place than you were yesterday. Celebrate every little win and acknowledge your progress.
3. Not thinking like a programmer
One of the most challenging concepts to wrap your head around is how to "think like a programmer." It's an abstract concept, so let's look at two specific things you can try to improve your mindset and approach to code.
Don't memorize or copy-paste code.
Most self-taught developers make two common mistakes at the beginning.
First, they tend to memorize most of the code they are learning, only to find out that they can't remember anything useful.
The second issue that self-taught developers commonly encounter is getting stuck into a copy-paste loop: they follow the tutorial, think they understand and copy-paste the code in their text editor. Wrong π π»ββοΈ! In the long term, copy-pasting code is as detrimental as memorizing code!
Breaking down complex problems
I was making these mistakes myself until I found a book that changed my way of learning called Think like a programmer by Anton Spraul.
In the book, he clarifies that problem-solving is much more critical than any language's syntax - documentation is always available. It is much better to acquire an ''algorithmic mindset'' and know where to look or what to use to solve problems rather than memorizing syntax for a specific problem. You should be a librarian, not an encyclopaedia of code!
Writing code yourself allows you to understand the nitty-gritty and maximize your learning. I recently took the habit of writing pseudo-code before every project I undertake. It helps to feel like I'm building something myself and gives me the boost of confidence I need to get to the end.
Most importantly, learning programming takes time: persistence and practice are the keys to success π.
Allow yourself time to acquire foundational knowledge and do your best to apply it constantly.
4. Lack of support and community feeling
Many people start studying programming as a way to shift careers or to pursue a new interest. It is likely that not so many people around you are doing the same.
I first started to code with a 10$ online course. We had a community Facebook group that was poorly taken care of and soon transformed into a spam links dumpster. The only course teacher was most of the time unavailable to answer questions. Having no one around I could relate to when I was overwhelmed and frustrated was discouraging and one of the reasons why I initially gave up.
Nowadays, more and more e-learning platforms realize the importance of a thriving community.
If you are looking for an inclusive and welcoming community for aspiring junior developer I recommend the Scrimba community. Alternatively, look around!
Here are what I think make a supportive community that help you avoid burnout:
- Members spread positivity and are recognized for their engagement
- Teachers and community managers are available to answer your questions
- Feedback from members is well-received and valued
- Events are organized (for example, coding challenges or giveaways)
- Spam and aggressive behaviors are kept at bay
- Local, offline meet-ups are organised when possible
Also, reach out to your developer friends or acquaintances - there is a high chance that you know at least a couple - and ask them questions!
You will notice that the developer community is very open and willing to help people that are starting out
Joining local and online communities will make the journey to become a developer and land a job much more enjoyable!
5. Lack of an online coding presence and a portfolio
Another common mistake beginner developers make is keeping their awesome projects on their computers, and once they are ready to apply for jobs, they realize that they have nothing to show.
You have spent hours building a wonderful website, a shining Chrome extension or a JavaScript Pomodoro timer. Why on Earth wouldn't you share it with others?
This way, people - including your next employer - can see you have been actively learning, building, and sharing with others.
There are several ways to do that:
- Upload your projects on GitHub and keep them up-to-date.
- Share your progress on a YouTube channel or your blog.
- Have a portfolio website - you can learn how to build one with this free Scrimba course.
The verdict
Becoming a self-taught developer is a windy journey, and it is common to struggle and feel overwhelmed.
Setting up a clear purpose or goal and shifting your learning mindset is essential to overcoming these challenges. No matter where in the journey you are, you will always face self-doubt and encounter issues: in this regard, joining a local or online community of developers will make you feel comfortable and less lonely.
Finally, show off your hard work and share your projects with the world. Motivation and persistence will be your two best companions.
Top comments (1)
On Twitter and dev.to, we only hear about the successes - "How I learned to code and get a job in 3 months etc."
It's a really good example of survivorship bias ,as for each successful developer, I am sure there are 10 or more who tried and failed.
Tuning in to your internal motivation and drive then practicing patiently over time is key π This post is an excellent reminder and guide, nice work @stefano04 !