How I Started My Journey to Becoming a Developer

A reflection on the

14 minutes

Early Dreams

I always dreamed of making my own game, even before I had the right computer. Back then, I didn’t own a desktop or a powerful mobile device for game development software. But I didn’t let that stop me. My curiosity and passion for creating games drove me to find other ways to learn.

I spent countless hours on YouTube, searching for ways to make games without traditional computer setups. I watched many tutorials, even if I didn’t fully grasp all the technical details, feeling inspired by the possibilities. That’s when I came across Brackeys, a channel that made game development engaging and easy to understand for beginners.

Watching Brackeys’ videos felt like a door into a world I had always wanted to explore. Without a proper development setup, I still became obsessed with learning about Unity, C#, and game logic. I started taking notes, replaying tutorials, and dreaming about the games I would one day create. The dream felt nearer, but the big challenge remained: I didn’t have a device powerful enough to start coding.

So, I began searching for workarounds ways to code with the hardware I had. I eventually found an app that acted as a simple IDE, allowing me to write, compile, and run basic code online. It wasn’t perfect, but for me, it was a breakthrough. I could finally write and test simple C# programs, marking the start of my development journey.

Looking back, those early days were filled with frustration, excitement, and a lot of trial and error. But they taught me an important lesson: passion and resourcefulness can drive you forward, even without the best tools.

Finding Creative Solutions

Despite my hardware limitations, I wouldn’t let my dreams wait. I knew I had to find a way to code, even without a proper development machine. After many hours of searching, I finally found a lightweight online IDE that let me write, compile, and run code in the browser.

At first, it felt strange. I’d seen videos of people using Visual Studio and other professional tools, but this web-based IDE was all I had. It wasn’t as powerful, but it gave me a crucial opportunity the chance to start. It was my way into programming, the first steps into learning C#.

I remember the thrill of seeing my first lines of code come to life. Simple print statements, loops, and conditionals felt magical. Writing something and watching the computer execute it was fascinating. I spent hours experimenting, tweaking small pieces of code, and running them repeatedly to see the results.

Of course, the online IDE had limitations. I couldn’t build complex applications and often hit frustrating roadblocks. But those early days weren’t about building something big they were about learning to think like a programmer.

That time taught me an essential lesson: Creativity isn’t just about what you build; it’s about how you overcome challenges. Even with limited tools, I found ways to keep learning, experimenting, and pushing forward. That persistence shaped the rest of my journey as a developer.

Rediscovering Mobile Development

Six months later, my world shifted completely when I found an incredible mobile app. This app let me run Java code and even build Android apps directly on my phone. For a long time, I felt stuck because I didn't have access to the usual developer tools. Finding this app was like discovering water in a desert. Finally, I could keep learning and creating without needing a computer.

The app wasn't flawless it sometimes had delays, and the interface didn't always work perfectly. But these were minor issues compared to the new possibilities it opened up for me. During breaks at work, on bus rides, and late into the night, I was engrossed in Java tutorials and documentation. Trying out code and seeing immediate results on my phone felt like a complete game-changer.

I jumped into Java development on my phone with great enthusiasm. My first program was a simple calculator. Even though it wasn't groundbreaking, running it on my phone gave me a huge sense of achievement. From there, I moved on to simple games, a to-do list app, and a basic weather app using data from a free API. These apps weren't complex, but they represented something much bigger the start of a new phase in my coding journey. Looking back, this period of discovery reignited my passion for programming. I learned that with determination and creativity, I could overcome big obstacles.

Doing Web Development on Mobile

After experimenting with Java for mobile apps, I found another tool a mobile IDE for web development. This tool allowed me to code in HTML, CSS, and JavaScript right on my phone. Its user-friendly interface and good performance made coding while on the go much easier. Even with a small screen, the editor offered syntax highlighting, auto-completion, and live previews of web pages. This made the whole process efficient and comfortable.

Fueled by excitement, I dived into the basics of web development. Starting with simple HTML and CSS, I gradually added interactivity with JavaScript. Every new concept felt empowering. Seeing my changes happen instantly on my phone kept me motivated. I built several basic websites and even put a simple portfolio online. These projects were small, but they marked a big achievement: I had coded and deployed everything from my mobile device. Being able to update and fix things from anywhere gave me a new sense of freedom in my journey as a developer.

Python and Mobile Development

I once stumbled upon a Python IDE for my mobile phone, which changed everything for me. Python became my main language because it's easy to read and write. The mobile IDE had great features, making it a perfect way for me to learn. During my commutes, I wrote small scripts to automate tasks, and when I had free time, I made text games. Python's many libraries allowed me to do more, like data analysis and web scraping, all on my phone. Its simplicity and flexibility let me bring my ideas to life no matter where I was. Using Python taught me more than just coding; it taught me problem-solving and the joy of creating from scratch, all in the palm of my hand.

What started as a necessity coding on my mobile turned into my favorite way to work. Working within the limits of mobile development helped me become more efficient and resourceful, which were invaluable skills throughout my programming career.

The Laptop Era

Two years ago, I finally got my first laptop, and it changed my learning journey. After years of working on my phone, having a proper keyboard and development setup felt like stepping into a whole new world. The laptop's power and bigger screen allowed me to tackle projects I had only dreamed of doing on my phone. With a real computer, I dived into learning new technologies with excitement.

Django was my first major exploration in the world of web frameworks. I started with simple tutorials, which soon led to building complex web applications. I learned about MVC architecture and the strength of Python-based web development. Django’s "batteries included" philosophy allowed me to focus on building features rather than reinventing the wheel, resulting in my first complete project a content management system for a local community group.

I also explored databases, starting with SQL. Using PostgreSQL, I learned about relational databases, fascinated by their structured nature. I spent hours optimizing queries and designing efficient database structures. Later, I ventured into MongoDB and discovered the flexibility of non-relational databases. Seeing the differences between SQL and NoSQL helped me understand different data modeling approaches and their ideal uses.

With experience in both relational and non-relational databases, I learned to make informed decisions about data architecture in my projects. Moving from mobile-only development to using a laptop not only enhanced my technical skills but also transformed my understanding of how to design software and systems.

Tackling Data Structures & Algorithms

After three months of creating projects with my new laptop, I hit a big milestone that many developers face: understanding data structures and algorithms. This challenge felt like the final level in my journey to becoming a genuine developer. Unlike the practical coding I was used to, algorithms required a different way of thinking. While I could create working applications, making them faster and more efficient demanded a deeper grasp of computer science concepts.

The challenge was daunting because my math skills were not strong, and I needed to enhance my problem-solving abilities. Even tackling simple problems was hard work, often leaving me feeling overwhelmed. I dedicated countless hours to drawing out solutions, carefully stepping through algorithms, and understanding why some methods were more effective. Concepts like binary trees, graph traversal, and dynamic programming appeared straightforward in tutorials but turned into complicated puzzles when I tried to implement them.

Despite these hurdles, I persisted. I started with the basics simple data structures like arrays and linked lists and gradually progressed to more complex topics such as trees and graphs. I learned to break tasks into smaller, manageable parts and to recognize patterns in algorithm solutions. Now, I can solve many problems effectively, although some medium-level LeetCode challenges still test my skills. This journey of learning reminds me that development is an ongoing process, and even seasoned developers encounter new challenges that push their limits.

Mastering algorithms taught me more than technical skills; it improved my ability to think abstractly and tackle problems methodically. These skills have been invaluable not just in coding but also in my daily work as a developer. Writing efficient code and refining solutions have become habits thanks to this practice.

The Power of Mentorship

A crucial period in my life came after my 10th-grade exams during a three-month break. I met a senior developer from a reputable company who became my mentor. Initially, we casually talked about technology and programming, but his genuine interest in my progress transformed our meetings into structured learning sessions. Simple chats developed into focused sessions after his work hours, where we explored problem-solving strategies and tackled LeetCode challenges. The sessions went beyond coding, delving into software architecture, industry best practices, and real-world tech job insights.

Those three months turned out to be transformative I advanced more during that time than in all my previous studies. My mentor provided more than answers; he demonstrated how to approach problems step-by-step and effectively use documentation, a skill crucial for my career. His patience and unique explanations helped me understand tough concepts that had seemed unreachable before.

This experience demonstrated the profound impact of mentorship on a programmer's growth. Having someone who could not only answer questions but also highlight gaps in my knowledge made a significant difference. My mentor's real-world experience offered perspectives that tutorials or online courses couldn’t. He helped me realize that becoming a skilled developer involves more than mastering code syntax or solving algorithms; it's about developing a problem-solving mindset and applying technical knowledge to practical situations.

From Side Project to Startup

My life's path took an unexpected turn when a small project I worked on caught the eye of a friend who is also a developer. This project started off as a simple tool I made to solve a personal problem. I had experience in building applications, but turning one into an actual business was something completely new and challenging for me.

I didn't end up becoming a game developer as I initially wanted, but I discovered something equally exciting I became both a developer and a founder. This new role came with its own set of challenges and lessons. I needed to balance creating the technology with thinking about business strategies, considering user feedback, and planning the future steps. The skills I gained over the years from my early work in mobile development to solving tough algorithms turned out to be really helpful in surprising ways.

Note: This timeline highlights important moments in my journey, but some details and learning experiences might be missing because time has passed. Each step, whether it was planned or unexpected, helped guide me to where I am today. It’s a reminder that sometimes the most rewarding paths are those we didn’t plan for initially.

This timeline highlights important moments in my journey, although some details and learning experiences might be missing because time has passed.