Most of my friends knew what they wanted to be in high school. I didn’t.
Well, I thought I did. I wanted to become a petrochemical engineer because they were earning a lot of money, or so I thought. The problem was, I didn’t like chemistry. Failed it twice. I still thought this was my path because, you know, the money.
That was my plan for a while, until a tutor came to the tutorial center where I was preparing for college one day and said, “Most students study courses they don’t like. They do it for money, or because their parents want them to, or because companies pay well. Go home and think about what you actually love doing.”
I went home and thought hard. Chemistry was out—obviously not happening. But I’d always loved web applications—in fact, tech as a whole. After school, I’d hang out in the I.C.T. lab with my friends. I wanted to know how websites worked. How did people build apps? What happened behind the scenes?
Tech is huge. I needed to pick a niche. So I chose software development and decided to teach myself programming before going to college.
What Self-Learning Actually Looks Like
Learning to code by yourself sounds great.
You go at your own pace.
You pick what to learn.
It’s also really tough.
I made countless mistakes. Got stuck more times than I can count. Almost gave up more than once. But I figured out what works and what doesn’t.
If you’re thinking about learning programming on your own, here’s what I wish someone had told me.
1. Don’t Try to Use Every Resources Out There
When I started, I thought more resources meant faster learning. I was wrong.
I had YouTube tutorials, Udemy courses, books, blogs, documentation, and forums all open at once. One night I counted 47 browser tabs.
Instead of learning faster, I learned nothing.
Then I discovered roadmap.sh. It gives you a clear path to follow. No more guessing what to learn next.
I made a rule: one main resource, two backup ones. That’s it.
Pick a course or book as your main guide. Then use two other sources only when you’re confused. This will stop the endless switching and actually let you focus.
2. Stop Collecting Courses and Start Building
You know what’s worse than too many resources? Collecting them without using them.
Here’s what nobody warns you about: you can watch tutorials forever and still not know how to code.
I’d finish a 10-hour JavaScript course, feel smart, and then immediately start a React course. I never built anything with JavaScript. I just kept consuming.
I stopped watching and started building.
Every time I learned something new, I had to build something with it. Even something tiny.
When I learned about functions, I built a calculator.
I learned about arrays and built a to-do list.
The projects were small, but they were mine. That made all the difference.
3. You Need People, Not Just Tutorials
The first weeks were amazing. I was coding, and I was learning.
There was no professors breathing down my neck. I didn’t have classmates to compete with. No grades to chase. No deadlines that mattered.
I’d set goals and miss them, nothing happened. I’d skip days, then weeks. Procrastination became my biggest enemy. Some days I wondered if I was meant for this.
I found my community online. The web developer community, Build In Public, and Software Engineering community on twitter, became my classroom. Twitter gave me coding mates.
The idea was coding every single day. Even if just for 30 minutes. Small daily progress beats coding 5 hours, two days in a week.
4. Get Feedback Early and Often
I could write code that worked, but i had no idea if it was good code.
I built my first web app, my gosh i felt proud. Later I discovered it was terrible, from security holes everywhere to spaghetti code. The code was really messy.
I had nobody to tell me “Hey, maybe don’t do it that way.”
I started asking friends of mine who were experienced dev, if there was better ways i could write a particular code. I seldomly post my code on my socials for feedback (I’m working on it doing better though). The feedbacks might be harsh but will be incredibly helpful.
You can find mentors on social media just by asking. Most people will be happy to help.
5. Embrace Not Knowing Things
To be honest, confidence is dangerous when you’re self-taught dev. You think you know something, then you hit a wall and realized you don’t actually know much.
This is where imposter syndrome comes in. You feel like a fraud who’s about to get exxposed.
I stopped being ashamed of not knowing things. Instead, I got curious. I usually keep a “things I don’t understand” list. it helps me spot patterns and plan what to tackle next.
I started comparing myself to my past self, not to other people online. That simple shift helped my confidence more than anything else.
6. The Real Education Happens in The Struggle
These challenges weren’t just obstacles I needed to overcome, it taught me things no classroom could.
Yes, I learned to code. But I also learned how to learn anything, self-discipline, research skills, and problem solving under pressure.
Now when I see new technologies, I don’t panic, I know I can figure them out. That’s true confidence if you ask me. You can’t get it from a traditional classroom.
My Self-Learning Hack
- Use roadmap.sh for a clear learning path.
- Set small goals and deadlines you can actually hit.
- Join Learning Communities on Twitter, Reddit, and Stack Overflow.
- Share your code and ask for feedback.
- Find mentors online/offline who can help you.
- Build real projects with everything you learn.
- Code every day even if it’s just 30 minutes.
Self-learning programming is hard. But you can do it.
What’s your biggest challenge right now? Share it in the comments, we’d love to help you.
Go build something amazing.
If you enjoyed reading this, like it, comment on it, and share it with a friend.
Top comments (26)
I would strongly recommend contributing to an open source project as a potential pathway. Get to know the code of a bigger project that has a healthy community, start with trying to solve basic issues or improving documentation. Ask questions in public community channels. There's a lot of really smart and helpful people in those communities...Grow from there
...full disclosure, I work for Mattermost...getting hands on with "open" stuff is the best way to learn 👍🏼
You're right, open source was a game changer for me. It will be super scary at first though (speaking from experience 😂).
But you're right, those communities are incredibly helpful. Starting with documentation improvements is smart advice - less intimidating than jumping into the codebase. Thanks for sharing your experience with Mattermost - always cool to hear from people actually working in these communities.
Pls how can I get on the open stuff??
How can I found one
This is where certifications become useful for me, because it offers a structural path to study beginning to end. It's definitely No indicator that you are actually a programmer! Only real world experience can demonstrate that, but doing a certification forces you to learn things and provides structure to that learning!
Well the certification doesn't really matter but the structured learning path does. In the world programming, direction matters.
Having that guided learning path definitely has value. At the end of the day your credentials doesn't matter, only your potential.
Thanks for sharing your perspective on this. I appreciate you.
Great man thanks allot as I was just reading and going down almost all the mistakes you made mention of is what I was doing... Thank God I found this.. really helpful thanks again man... Pls how exactly do I find an online community that would help me grow ??
Glad this helped man
Yeah, we all make the same mistakes - that's why I had to write about it 😅 For online communities, start with these: Discord servers for your language (search "[your language] discord"), Reddit communities like r/learnprogramming and r/webdev, and Twitter/X - just search for hashtags like #100DaysOfCode or communities like web developer, and software engineering. Try as much as possible to engage and ask questions if you're stuck.
Pick 2-3 places and be active there rather than trying to be everywhere. Consistency beats being everywhere at once.
I'm rooting for you man 💪🏽
Thanks for this again man 🙏🏽🙏🏽🙏🏽 your really a blessing 🙏🏽🙏🏽.. would do just that.
This post is incredibly helpful exactly what I needed. I'm someone who works alone and doesn’t really have many friends in the real world, but I’ve found a lot of interest and purpose in learning about computers and tech. If anyone out there feels the same or is open to connecting, feel free to reach out. It’d be nice to share this journey with someone
Looking forward to connecting with you
Don' Try to Use Every Resources Out There
My real problem is n networking,I code only and that looks boring to me no friend nobody
Hey Ifeoluwa, I totally get that feeling - coding alone can get really lonely. The networking thing was huge for me too.
Start small: join Discord servers for your programming language (like JavaScript, Python communities), hop on Reddit (r/learnprogramming is great), and Twitter has tons of friendly devs. Don't worry about being "good enough" - just start engaging and you'll notice your twitter algorithm will change as well. Ask questions, share what you're learning, comment on other people's posts. I found my first coding friends just by being active in these spaces. The community is more welcoming than you think.
I'm rooting for you 💪🏽
Okay,nice to hear that from you,but I joined discord some month ago trying to message different people to share my feelings about coding to them but seems they are not interesting in friends
I understand you on this. DMing random people on Discord usually doesn't work. It can come across as spam or too forward.
I would suggest being active in public channels first, ask coding questions there, and they and help others if you can. People get to know you naturally that way.
How to be active in public channels. I mean what have we do? I am also struggle with networking or group of people interested in programming.
Literally if i found anyone of like that. I can program whole day.
I Need Mentor.
Love this advice Kevin
The book approach is solid - you're right about the structured learning path. I actually started with C but the principle is the same.
That muscle memory point is huge too. I wasted months just watching tutorials without typing. The "read and practice" combo is what finally made things stick for me.
C# is a great choice for the reasons you mentioned. Thanks for adding this - really good perspective
Your post strongly reminds me of teaching myself how to code. Super awesome post, really enjoyed reading it!
And creating lot of projects is also important
💯
Projects are everything. Even tiny ones count. I probably built over 6 terrible calculators before making anything decent But each one taught me something new. The key is actually finishing them, even if they're small. Better to have 5 completed simple projects than 1 half-finished complex one right?
I am presently learning JavaScript, but for real I indeed need help, I just got stuck at a point and daily life struggles to make ends meet makes to start procrastinating. Please how do I get pass this stage
Some comments may only be visible to logged-in visitors. Sign in to view all comments.