How to Become a Self Taught Programmer
Published: 2022-11-06 15:27:31


## Introduction 
Hello Fellow newbies and self-taught developers, As a rookie, what are your challenges in learning?

**My biggest challenges as a self-taught in development were:**
- No clear path and vision
- Lack of structures
- No one to hold me accountable
- No proper guidance

I was learning alone. No one was there to guide me, no one to share my problems and frustrations. Whenever I get confused and burned 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.



![Intro](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0wg9ak4oq27biao2lidi.jpg)
----


------
## Find your field of interest.

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 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 programming 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.
  


![Fav](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/djslnydtqmveh7rbey7q.jpg)


------
### Promotion 

> Before moving ahead, I have something useful for you all. Just check out if you are interested.

------
# 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.
As it takes a lot of time and effort to be a successful programmer so, go deep as you can and try to become a master at one portion or a language.
Once you find the best fit for you then start with it.
  


![Choice](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hvjd8rze911sjrl0uexc.jpg)

------
# Find your best time to learn and create a structure 
  
I started to learn to code alone.
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.
  

![Structure](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a0ntp8z8j9p4zrn2ba0s.jpg)


------
# Don't memorize the code just understand how things work

Yes, don't memorize the code just try to understand how code works and internal behavior so you will get a deep knowledge.
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 as in the programming world every individual does googling every day to find his/her answers so, that’s not the issue.
 

  

![Things](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bdvg43s3lcujp6ai5z8h.jpg)


------
# 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.
 


![Questions](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jpc6fznugjk8bces5vxk.jpg)

------
## 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 this would help you to finish your project quickly and you won't feel bored as this technique is called as **Divide and Conquer** in DSA. 


![Projects](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3dmirvgxqmdh4u9epm5u.jpg)

------
## Research for Jobs related to your skills

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.

------
## Find a popular and active 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.

  

![Strength](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6tytzjmh3pf8fagnfwz6.jpg)

------
## Be patient and 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.


![Productive](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6z9fxfa8oza6smugi6mi.jpg)
------
## Last but not the least

Be patient and consistent as it takes lot of time and efforts to be champ as no one becomes a master in one day. It takes time to build great personality. 
Just trust the process.

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.
Thanks for reading.

------

![Thanks](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cv1x8konja9tw0tvszsw.jpg)