Five Years of Not Giving Up — My Journey as a Developer
Five years ago, I had no idea where programming would take me.
It started with my cousin.
He had started learning programming, and one day he recommended that I give it a try too. I didn't immediately jump into it. I took some time to think about whether programming was really something I wanted to do.
A few days later, I finally decided to start.
I opened YouTube and began with HTML.
There was no expensive course, no perfect roadmap, and no shortcut.
Just me, YouTube tutorials, and a lot of curiosity.
From YouTube Tutorials to Real Projects
After HTML, I started learning CSS. I watched tutorials and then tried to build small projects myself.
I would build something, break it, try to fix it, and then build it again.
And I kept doing that.
Day after day.
I became obsessed with practicing. I couldn't stop.
After HTML and CSS, I started learning Bootstrap. That alone took me almost two months.
Then, after around six months of learning and practicing, I started JavaScript.
JavaScript was a completely different experience.
There were so many concepts I didn't understand at first. I spent countless hours watching tutorials, trying things myself, getting confused, going back to the tutorials, and trying again.
But I didn't quit.
My cousin and I eventually got an unpaid internship at a software house. He got a job there later, but I remained on the unpaid internship.
I stayed there for almost eight months.
For those eight months, I wasn't earning a salary. My father supported me with my basic daily expenses. I would usually need around 100 PKR for bike petrol and some snacks, while I brought lunch from home.
It wasn't easy.
I was trying extremely hard to get a job, but I couldn't find one.
Learning by Building
Eventually, I left the software house and continued learning and building from home.
But leaving didn't mean stopping.
It meant I had to push myself even harder.
During that period, I continued building projects and also started learning React.js.
At the software house, I had another friend who was also an unpaid intern. We spent our time learning from YouTube and building small projects together.
We built things like calculators, to-do list applications, and other small projects.
They weren't impressive products.
But they were important.
Every small project taught me something.
Every bug forced me to think.
Every time I broke something and fixed it, I understood programming a little better.
Looking back, those small projects were some of the most important projects I ever built because they taught me how to learn.
Another Opportunity
After I left, around two or three months later, my cousin also left that company and got another job.
He invited me to join him.
The role was for a React.js frontend developer.
I had learned React, but I had only been working with it for around four months.
And honestly, I wasn't confident.
This was before AI coding tools became as popular as they are today. I was scared of giving the interview because I didn't feel ready.
My cousin got the job.
I didn't.
I continued working as an unpaid intern at another company.
And this time, something different happened.
I met an amazing senior developer.
He was a very strong full-stack developer, and he taught me a lot. He trusted me with real work, explained things to me, and connected me with real company projects.
For the first time, I wasn't just building tutorial projects.
I was working on real projects for real clients.
And I loved it.
I was still unpaid, but I didn't stop.
I kept learning.
I kept working.
I kept coding.
I think that's when I realized that I genuinely loved programming.
I could do the same thing again and again — build something, break something, fix something, learn something new — and still enjoy it.
The Job I Didn't Take
Eventually, I decided to ask the company if they could give me a paid position.
My senior supported me and spoke to the manager.
The manager asked me about my salary expectations.
I said 40,000 PKR.
My cousin was earning around 80,000 PKR at that time.
Then the manager said something I will never forget:
They could give me the job, but they would have to fire my cousin.
I immediately said no.
I couldn't accept a job if getting that job meant replacing the person who had supported me from the beginning.
My cousin had been one of the reasons I started programming in the first place. He had supported me throughout the journey.
So I rejected the offer.
I told my cousin what happened, and we decided to leave the company.
Instead of continuing to look for jobs, we decided to try something completely different.
We started freelancing.
My First 60K PKR
We started getting projects through my cousin's Fiverr account.
I still remember completing our first project.
When my cousin gave me my share, it was around 60,000 PKR.
I was incredibly happy.
I remember crying.
Not because 60,000 PKR was some huge amount of money.
It was because of what that money represented.
For almost two years, I had been learning.
I had spent months doing unpaid internships.
I had spent countless hours watching tutorials.
I had built project after project.
I had tried to find a job and failed.
And then, finally, someone had paid me for the skill I had worked so hard to develop.
That 60,000 PKR was my first real earning from programming.
I will never forget that feeling.
The Next Step: Learning Next.js
After that first 60,000 PKR, something changed for me.
I didn't think, "I've made it."
Instead, I became even more motivated to improve.
I started paying more attention to what other developers were using and what technologies were becoming popular in the industry.
At that time, I started seeing more and more developers recommending Next.js, especially for building production websites and applications.
I had already spent a lot of time learning JavaScript, so I had a strong foundation.
That made it much easier for me to understand React and then move into Next.js.
I decided to learn it.
And this time, it was different.
I wasn't starting from zero anymore.
I already understood JavaScript, components, frontend development, APIs, and how web applications were structured.
So I went deep into Next.js and managed to learn the fundamentals and start building with it in roughly one month.
I started using it in real projects and continued learning through actual client work.
Today, Next.js has become one of the main technologies I work with.
Most of the modern web projects I work on are built around React and Next.js.
Don't Just Chase Frameworks
One of the biggest things I've learned is:
Don't just chase frameworks. Build strong fundamentals.
Frameworks change.
Tools change.
The way we build software changes.
But if your fundamentals are strong, learning the next technology becomes much easier.
Freelancing Became My Career
After that first project, we didn't stop.
We continued getting projects and working with real clients.
Eventually, I created my own Fiverr and Upwork accounts as well.
Over time, I had the opportunity to work with some amazing people. Some clients continued working with me again and again.
One thing that makes me especially proud is that throughout this journey, I don't remember having a client who was genuinely unhappy with my work.
Clients appreciated the work.
Some gave me tips.
Some came back with more projects.
And slowly, my skills improved with every project.
I learned not just how to code, but how to communicate with clients, understand requirements, solve real problems, manage projects, handle feedback, and deliver something that another person could actually use.
Freelancing gave me something I couldn't get from simply learning programming tutorials.
It gave me real experience.
Five Years Later
Today, it has been five years since I started this journey.
And one interesting thing about my story is that I still haven't had a traditional full-time developer job.
For a long time, I thought that was something I should be worried about.
But freelancing gave me almost everything I was looking for.
It gave me real clients.
Real projects.
Real responsibility.
And the freedom to work on different kinds of products and technologies.
I've worked with modern web technologies including React, Next.js, JavaScript, TypeScript, Tailwind CSS, databases, APIs, CMS platforms, cloud services, and many other tools.
But more importantly, I've learned how to learn.
And I think that is one of the most valuable skills a developer can have.
Building for Real Problems
Over time, I've also become increasingly interested in building products that solve real problems rather than simply building websites.
One example is an idea around improving patient queues in Pakistani hospitals.
The goal is to reduce manual queue management, help patients understand when they may see a doctor, and make the process easier for both patients and hospital staff.
Working on problems like this reminded me why I started programming in the first place:
Not just to write code, but to solve problems.
What About AI?
Today, AI is changing the way developers work.
Some people are worried that AI will replace developers.
I don't see it that way.
AI has changed my workflow, but I see it more as a tool that helps me work faster.
Things that used to take much longer can sometimes be done much faster now.
A project that might have taken two months can sometimes be completed in a month.
But the developer still needs to understand what they are building.
You still need to understand the problem.
You still need to make decisions.
You still need to debug.
You still need to know when AI is wrong.
AI can make development faster, but I don't believe it removes the need to learn.
If anything, I think developers should focus even more on understanding fundamentals, problem-solving, communication, product thinking, and how software actually works.
Don't be afraid of AI. Learn how to use it.
The Biggest Lesson I've Learned
If there is one lesson I would share from my five-year journey, it is simple:
Be consistent. Don't stop.
There were many moments when I felt behind.
There were times when I couldn't get a job.
There were months when I worked without getting paid.
There were countless bugs I couldn't understand.
There were technologies that felt impossible when I first started learning them.
But I kept going.
I kept opening my laptop.
I kept watching tutorials.
I kept building.
I kept breaking things.
I kept fixing them.
And eventually, those small efforts started adding up.
I didn't become a developer in one day.
There wasn't one magical moment when everything suddenly made sense.
It happened slowly.
One project at a time.
One bug at a time.
One client at a time.
One lesson at a time.
Looking Back
Sometimes I think about the person who opened YouTube five years ago and started learning HTML.
He had no idea what was coming.
He didn't know about React.
He didn't know about Next.js.
He didn't know about freelancing.
He didn't know that one day he would be building real projects for clients around the world.
He definitely didn't know that his first programming income would make him cry.
But he kept going.
And I'm glad he did.
The last five years haven't always been easy.
Actually, some parts were really hard.
But they were worth it.
I'm proud of the journey — not because everything went perfectly, but because I didn't give up when things didn't go according to plan.
And I'm still learning.
I'm still building.
I'm still making mistakes.
I'm still breaking things and fixing them.
And honestly, I still love it.
If You're Just Starting
So if you're reading this and you're just starting your programming journey, don't worry if you're not good yet.
Don't worry if you don't get a job immediately.
Don't worry if everyone around you seems to be progressing faster.
Keep learning.
Keep building.
Keep practicing.
Keep showing up.
Be consistent. Don't stop.
Your journey may take longer than you expect.
Mine certainly did.
But sometimes the longest journeys are the ones that are worth the most.
Thank you for reading my story.
I hope it gives even one developer the motivation to keep going.
About Anas Sheikh
Anas Sheikh is a developer who has built his career through continuous learning, freelancing, and working on real-world projects.
His journey has taken him from learning HTML and CSS through YouTube tutorials to working with React, Next.js, TypeScript, Tailwind CSS, APIs, databases, CMS platforms, and cloud services.
More importantly, his story is about persistence — continuing to learn and build through unpaid internships, job rejections, difficult periods, and countless bugs.
View Anas Sheikh's CoderLegion Profile
Developer: Anas Sheikh
Series: CoderLegion Developer Stories
Interviewed and edited by: Mehadi Hasan, Community & Editorial Team, CoderLegion