Hello Fellow Codenewbies and Self-Taught Developers 👋,
As a self-taught developer, what are your challenges in learning?
My biggest challenges as a self-taught in web development were:
- No clear path
- Lack of structure
- No one to hold me accountable
- No mentorship
I was learning alone. No one to guide me, no one to share my frustrations.
Whenever I get confused and burnout, I procrastinate for days, even weeks, to cool down.
Does it sound familiar to you?
I learned it the hard way, but you don't have to go through what I've been through. Or at least you can avoid spending your time on things that I wish I knew sooner and could do better.
I hope these pieces of advice can help and guide you as new self-taught developers.
As a self-taught developer and a newbie, I got interested in a few different development fields.
I was at crossroads between choosing to pursue data science or web development.
I bought a Python course and a Web Development Bootcamp course on the Udemy platform.
I learned Python first because I heard that it is a beginner-friendly language. So what can go wrong?
It took me almost 2 months, and I didn't go far beyond 20% of the course because somehow, it didn't click. And I got frustrated.
Rather than stick to my learning, I switched to the other course instead.
I am a visual person.
So the fact that I could see "Hello World" rendered on the page for the first time with HTML made my heart jump with excitement.
After trying a couple of languages, I found where my bigger interest lies.
You can read this developer roadmap to give you some clearer insight if you haven't found your niche.
After trying several languages and finding your niche, stick and go deep into it. Get good at it.
I started to learn to code when my daughter was 2 years old.
At that time, learning in the morning or during the day was almost impossible.
So outside her nap time, I found another time that works for me. And it is around 10:00 PM after everybody in the house sleeps.
Most of the time, I'm already exhausted. But I will intrigue myself to sit and learn for at least half-hour, which usually will increase to one or two hours.
And the learning structure that works for me is to practice what I've learned the day before. Then I add one or two new topics a day instead of cramming a bunch of new knowledge.
Yes, don't memorize!
Good to know: Senior developers would still google things.
Because no one knows everything.
Try to understand the concept and the flow.
And google the rest, also the syntaxes, when you get lost.
I was not comfortable in asking questions because I felt like my questions were "very beginner," or it was "a stupid question." Or I could get, "Have you Google it?".
Little did I know that those thoughts were only playing in my head.
It took me a long time to finally threw my first question.
And when I finally did, it wasn't as bad as I thought.
The first time I asked a question, I threw it on Twitter. To my surprise, I received answers, and some people even offered to walk through the codes with me.
The courses that I took provide discord channels for their students.
I started to feel more confident in asking questions or asking for help when I needed one there.
So don't hesitate!
When you get stuck for some time, ask for help.
It could be on Twitter or on the Discord channels where you at.
This journey is supposed to be enjoyable, make you grow, and not make you frustrated for too long or even quit.
A piece of advice that's always been given after learning something is, "Go build a project!".
Self-taught is often get trapped in tutorial hell.
It's a good practice that we code along with a tutorial rather than only watching and doing nothing.
But when it comes to building a project from scratch, there would be times when we don't even know where to start. Then we find ourselves getting back to a tutorial.
When you have an idea of a project in mind, go build it and learn things on the go.
But when you don't know what to build, try to replicate the project from the tutorial without playing it back. Even better, try to add some more features to the project. When you get stuck, google your problems to find solutions. Give yourself half to one hour to search for it. And only after you searched in that time frame and still don't find any solution, ask for help, or look back at the tutorial.
Don't let yourself get lost for too long and get demotivated.
Another tip, when you build a project, breaking tasks into smaller chunks would help you to finish your project.
After I learned about dev communities on Twitter, I also learned about #100DaysofCode.
And that was the beginning of my learning in public journey.
I started to log everything I learned that day using the hashtag.
I need to hold myself accountable with no one to hold me accountable.
And learning in public helps me to achieve it. Every day, I will push myself to learn, even when I only can do it for 15 minutes. Afterward, it becomes a habit.
I crossed paths with many developers who helped me in my learning journey.
If convenient for you, writing a blog or making video content are also ways to learn in public.
You may want to read this if you have thought of writing a blog post but still have some doubts.
Is your goal to land a job in the web development field?
Then, before you go much further in your learning, you better research job demands in your area.
My goal is to land a job as a full-stack developer.
After I finished the course 6 months later, someone gave me the advice to do my research on web developer jobs in my area.
They said it would help me pick which front-end framework I need to learn since I haven't learned one.
The result was heartbreaking!
The on-demand front-end jobs in my area are React and Angular, while on the backend are Java, PHP, and .NET (C#).
Based on my research, the backend stack that I've learned wasn't on-demand.
So a slight change of plan has to be made.
React is what I'm learning now to be a front-end developer.
When you are in a positive and supportive community, you will gain much more than if you are alone.
You have people who genuinely care for you and support your journey. You can ask questions and get help when you need it, and you can have the whole community hold you accountable.
You can also help others who need your support in any way.
With community, you will gain confidence and grow faster.
Learning to code is hard for everyone.
There would be times when you have a hard time understanding a concept. There would be lots of time when you have trouble finding solutions. You might cross paths with imposter syndrome.
When they come, don't be too hard on yourself.
Take a break.
Remember, where you are today is one step ahead of you were yesterday.
Give yourself a pat on the back.
Don't compare yourself with anybody else.
The only comparison is who and where you are now and before.
Be kind to yourself, always.
I hope you find the above tips helpful, and I wish you a pleasant journey in your learning 😊.
Feel free to add your tips and experience as a self-taught developer in the comment section below and let's keep in touch on Twitter!