10 Tips For New Self-Taught Developers In Learning To Code - Advice From A Fellow Self-Taught Developer
Tags: codenewbie, webdev, beginners, watercooler
Published: 2021-03-14 13:37:00

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 burn out, 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 this advice can help and guide you as new self-taught developers.

---

## 1. Find your niche

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 Python and Web Development Bootcamp courses 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 two 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.

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](https://roadmap.sh/) to give you clearer insight if you haven't found your niche.

## 2. Stick to your choice and go deep

After trying several languages and finding your niche, stick and go deep into it. Get good at it.

## 3. Find your best time to learn and create a structure

I started to learn to code when my daughter was two 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 daily instead of cramming some new knowledge.

## 4. Don't memorize

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.

## 5. Ask questions or help

I was uncomfortable asking questions because I felt like my questions were "very beginner" or it was "stupid questions." 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 it 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.

## 6. Create projects

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 for a project, build it and learn things on the go. 
But when you don't know what to build, try replicating the tutorial's project 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](https://dev.to/adiatiayu/break-tasks-into-chunks-an-important-advice-i-wish-i-knew-sooner-f5) would help you to finish your project.

## 7. Learn in public

After I learned about dev communities on Twitter, I also learned about [#100DaysofCode](https://www.100daysofcode.com/).

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](https://dev.to/adiatiayu/when-should-you-start-to-write-a-blog-4oml) if you have thought of writing a blog post but still have some doubts.

## 8. Job research

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.
I learned by following the course's lessons — HTML, CSS, JavaScript, MongoDB, Express, and NodeJS without a front-end framework.

After I finished the course six 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 discovered one.

The result was heartbreaking!
The on-demand front-end jobs in my area are React and Angular, while the backend is 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.

## 9. Find a community

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, get help when needed, and 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. 

And here is [how I found my communities as a self-taught developer](https://dev.to/adiatiayu/networking-community-4kp3).

## 10. Be kind to yourself

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 times 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. 
Pat yourself on the back.
Remember, where you are today is one step ahead of where you were yesterday.
Don't compare yourself with anybody else.
The only comparison is who and where you are now and before.
***Be kind to yourself, always***.

## Closing

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 below. Let's connect on [Twitter](https://twitter.com/AdiatiAyu)!