My Journey as a Full-Stack Developer | What I’ve learnt so far

My Journey as a Full-Stack Developer | What I’ve learnt so far

·

13 min read

"I got into programming because I've always loved building and solving problems with technology."

This is a statement I can never say without lying through my teeth. Until 2020, I never had any interest in tech or programming; Asides from the type of interest a consumer has on a really cool product, I don't ever recall asking myself why or how a product works.

Just like how a lot of people get so excited when they buy the latest iPhone—impressed by the camera quality, speed, and design—but never stop to ask the more technical questions, that was me. I was that excited consumer, but never curious.

But that changed in 2020. The COVID-19 pandemic flipped everything upside down, and like many others, I found myself with a huge amount of time on my hands. What started as boredom soon turned into a shift in perspective that would set me on the path I’m on today.

How it all began

After getting an admission to study Polymer and Textile Engineering, I resumed studies at my university on January 2020. I was barely 3 months into my first semester until the pandemic struck unexpectedly, not exactly the ideal start but nevertheless I wanted something productive to do with the free time I had on my hands.

2020: Lost, Uncertain and Stuck

I think we all know how chaotic this year was. In Nigeria, young adults were scrambling to make the best of a bad situation, moving into side hustles and skills left and right. Forex, crypto trading, online businesses, content creation—everywhere I looked, someone was starting something new.

But not me. I couldn’t figure out a skill that resonated with me. After dabbling in a few ponzi schemes (don’t ask!) and hitting multiple dead ends, I began to feel stuck.

That’s when my elder sister stepped in and introduced me to tech. She suggested I try coding and even recommended a mobile learning app called Grasshopper because I didn't have access to a laptop. At first, I was sold, the app was gamified, teaching basic coding concepts through quizzes. It sounded like a fun way to learn something entirely new.

But here’s the thing: it wasn’t the best experience for me. Most of the answers I gave were pure guesses, and I didn’t really understand what was going on. Looking back, I can’t even tell you which programming language I was learning—it was that confusing.

Eventually, I gave up and lost interest completely. To me, tech felt like just another dead end. Little did I know, this wasn’t the end of my tech journey—it was just the first chapter.

2021: Got My First Laptop

The pandemic was finally over, schools were resuming and I was faced with my studies. Most of me discarded the fact that I still needed to learn a skill and just wanted to focus on studying and getting good grades.

My first ever laptop was gifted to me in the middle of the year and once again I got pressured by my elder sister to try programming once more but this time with access to a laptop.

I was hesitant because I didn't want it to distract me from my studies but I still decided to give it a try and this led to me writing my first line of code in Java.

// My First Program

class NewProject {
    public static void main(String[] args) {
        System.out.println("Hello, World!"); 
    }
    // Program to print out "Hello World"
}

This was just a simple program to print out the word "Hello World" on my terminal but seeing the words "Hello World" appear on my screen made me crack a smile. I wrote my first program! It wasn't much but I felt like I opened the door to a world I barely understood but eager to explore.

2022: Gaining and Losing Passion

This was the year I made the most progress so far; I developed a passion for programming and decided to go into the frontend of web development. Frontend web development is all about creating the parts of a website or web application that users see and interact with. It's the visual layer—the buttons, forms, layouts, animations, and overall design.

Learning the Basics: HTML and CSS

I began with the basics of HTML and CSS, the foundational languages of the web. It took me about a month and half to become familiar with them, understand their core principles, and build simple projects confidently.

Diving Into JavaScript

From there, I progressed to JavaScript, the main programming language of the web. I dedicated two months to learning and understanding its fundamentals. Of course, two months isn't nearly enough to master JavaScript—no amount of time truly is—but I made sure I had a solid grasp of the basics before moving on to the next step with the plan of learning more complex concepts on the way.

I accomplished all this through tutorials from Youtube and courses from freeCodeCamp, GeeksForGeeks, reading books as well, and within 3 and half months and I had a solid enough understanding to build my first website with HTML, CSS and Javascript.

The Hurdle

I already built a couple projects and ready to move onto my next step until my university got struck with a nation wide ASUU strike. The strike was bad for my focus, and it was hard to stay motivated and long story short, I didn't write a single line of code for the rest of the year. I stopped programming but the passion was still there. I just needed to find a way to get back on my feet.

2023: Getting Serious and Gaining Consistency

After the prolonged ASUU strike was finally called off, I knew it was time to get back on track. This was the year I resumed my learning—and this time, I was all in. I found a way to balance both my studies and my learning perfectly which was a huge problem for me the previous years.

My strategy moving forward wasn't just about learning the necessary languages or building projects; it was about finding a system that worked for me. The goal was clear: to become a Full Stack developer—someone who could confidently work on both the frontend and backend of web development.

To achieve this creating a learning plan was needed—not only to manage my time effectively but also to ensure I was progressing in the right direction. I also understood I was more of a visual learner than anything else so I made sure I utilized tutorials and courses more than docs and this improved my learning curve allowing me assimilate complex solutions and apply them faster in practice.

My First React App

The next technology I learnt was React JS, a powerful JavaScript library that simplifies client-side development. I avoided the official documentation because I could barely understand what was going on there and went straight into beginner-friendly courses and tutorials. After a while, I built my first simple todo app. To avoid falling into the trap of tutorial hell, I stopped relying solely on tutorials and began focusing on building projects independently.

I remember the first ever bug I fixed got me shouting and jumping on my feet yelling "I am programmer! I'm a programmer!!"----yes, I was that excited. With this knowledge I built a few portfolio worthy frontend projects and even completed my portfolio website to prepare me for the job market.

Understanding Tailwind CSS

Tailwind CSS, an utility-first framework that simply makes CSS styling faster. This was one of the easiest technologies I learnt because I made use of the Tailwind official documentation which was suprisingly easy to understand and it took me a few days to get the hang of it and build a project.

Attending my First Tech Event

The real highlight of this year was attending GDG DevFest Owerri late 2023. The event was very educative and eye-opening, meeting and connecting with like-minded people and learning from professionals made me really feel part of the tech community.

It really exposed me to a lot of things but the thing about knowledge is that the more you know, the more you realize how much you don't know. I realized I wanted to know more than I did, build more and learn as much as I could. That mindset—of continuous growth and exploration—is something I carry with me to this day.

2024: Going Full-Stack

While the frontend is all about what the user sees and interacts with, the backend operates behind the scenes, ensuring everything runs smoothly. It handles the logic, database operations, and server-side functionalities that make a web application dynamic and interactive.

My First Real-World Project

My initial plan after building a few projects and my portfolio website was to apply for a job or internship while simultaneously learning backend development. But it took a turn after attending DevFest. The inspiration I gained from the event wasn’t short-lived—it motivated me, gave me a deeper motivation to create.

Deciding what problem to solve

I didn’t just want to build typical projects like budget calculators or e-commerce apps. I wanted to work on something meaningful, solve an actual problem, create something that could genuinely impact the lives of the people.

Then I got an idea; An E-Learning platform for my department in my University. There were multiple problems students were facing at my department;

  1. We had a problem of accessing learning resources and study materials in one place. Resources like past questions, manuals, textbooks were not easy to find; you either had to purchase it manually, get it from senior colleagues or school's library and even if they did it could easily be lost or misplaced.

  2. Most of us weren't aware of our course's outline before the semester started which made us go into a course blind.

  3. There was no access to a simple GPA calculator and we had to calculate our GPA for the semester manually.

This was the underlying problem we've faced through out our years of studying—a problem that technology could solve.

Finding a solution

I decided to work on these problems by building a web application who's aim was to create a centralized platform where students could easily access resources all in one place and plan their studies better. The platform would feature:

  1. Downloadable Resources: Where students could download easily past questions, manuals, and textbooks in one place without the hassle of tracking them down manually.

  2. Course Outlines: This section would provid the outline for each course of every semester, helping students know what to expect and plan their studies accordingly.

  3. A GPA Calculator: A simple calculator for students to easily calculate their semester GPA.

Gathering the Resources

Getting access to these resources wasn't going to be easy. I had to chat and meet up with a lot of colleagues of both upper and lower levels to get and compile past questions, manuals, textbooks and handouts.

I also planned to meet lecturers to get access to their course outlines, but I found out most course outlines were available at the faculty's website and the rest were available in my department's handbook so it was a relief.

Building the GPA Calculator

This was the simplest part of the project. It was a straightforward programming task that allowed me to focus on just logic and user-friendliness.

This phase of the project not only tested my technical skills but also my interpersonal interpersonal skills.

Figuring how to store the resources

With only frontend development knowledge at the time, I realized I needed a way to store all the learning resources securely on the cloud. I had to improvise, and that's when I discovered Firebase.

Firebase was the perfect solution—it offered file storage on the cloud without requiring backend knowledge. Its seamless integration with frontend applications made it easy to upload, store, and retrieve files.

This choice not only stopped me from diving into backend development immediately but also gave me experience in integrating cloud-based services with a frontend application. It was a stepping stone that built my confidence and opened up new possibilities for future projects.

The Outcome

After three months of hard work, I launched the web application and shared it with my colleagues and on social media. To my surprise, it garnered a lot of attention and positive feedback. The app received far more traction than I had anticipated, and the traffic on the platform exceeded my expectations.

The feedback from users was incredible—many students appreciated how innovative and useful the platform was to them. This visibility didn’t just bring accolades; it also opened doors for new opportunities, validating my efforts and reinforcing my belief in the value of the work I was doing.

You can check out the platform here.

Landing my first role

Soon after, I was approached by a startup impressed with my initiative. They offered me my first role as a frontend developer. This was a huge milestone for me! Not only was it my first step into the tech industry, but it also validated all the effort and hours I had poured into learning and building.

This role gave me the chance to work on real-world problems, collaborate with a team, expand my skills beyond what I had learned independently and finally deliver value at a professional stage.

Upskilling

While working in my first role, I realized that my knowledge was still limited to the frontend. I could'nt get comfortable because I wasn't where I wanted to be yet and I knew I had improve my stack for even better opportunities. I decided to dive into backend side of web development 2 months into my role.

Starting with Node.js and Express

I immediately took off by starting a course on Node.js and Express. Node.js is a JavaScript runtime environment that allows developers to execute JavaScript code outside the browser. Combined with Express, a lightweight framework for building web applications, they make up a powerful duo for backend development.

The course walked me through creating a basic REST API, handling HTTP requests, working with middlewares, cookies, jwt authentication and a lot of server side features. I built small projects to make sure I implement what I’ve known thus further solidifying my knowledge.

Learning Databases

I started with MySQL, a relational database known for its flexibility and scalability. I learnt about schemas, rows, columns and writing SQL queries to perform operations like inserting, updating, and retrieving data.

From there, I transitioned to MongoDB, a NoSQL database that uses a document-oriented approach. Unlike MySQL, MongoDB stores data in JSON-like structures, collections and documents which felt more intuitive when working with JavaScript. This made it a natural fit for my backend development with Node.js and Express.

Learning all these wasn’t without challenges—debugging server errors and managing database queries needed patience and intense problem-solving. However, being able to create complete applications gave me a sense of independence and confidence.

After a few months, I eventually landed a role as a full stack developer confidently handling both the frontend and backend of a web application. It was an important moment in my journey, as it opened doors to more advanced roles and projects to work on.

Looking Ahead

I can say my journey so far has been a combination of challenges, wins, and valuable lessons. Every experience—whether good or bad—has contributed to building the developer I am today. But this is just the beginning; I’ve always looked at myself as a lifelong learner, and I’m committed to:

  • Continuously improving my tech stack while exploring other technologies

  • Exploring new areas in tech like blockchain development, Web3, UI/UX design and Machine Learning.

  • Sharing my knowledge and experiences with the tech community through technical writing and content creation. Writing articles and creating content on social media will help me solidify my understanding while inspiring others in their journeys.

  • Building genuine connections within the tech ecosystem, collaborating with others and learning from their experiences.

There are so much possibilities out there and I'm really curious to see how much further I can go, stepping out of my comfort zone and stepping into new challenges and opportunities.