It's been over 5 years since I saw someone on YouTube building a mobile game which led to me writing my first line of code as a kid during the first COVID lockdown. Since then, I've landed my first junior developer job while I was still in school and I will start my bachelor studies now.
In this blog post, I'll share what I've learned so far, what kept me motivated and how I managed to build some big real-world applications!
My first lines of code
I wrote my first lines of code after watching a YouTube video from Tomary about building a mobile app in one week. I was 14 and sitting at home all day because of the first COVID lockdown and started learning the basics of C# to be able to build my first own game. What helped me a lot were the beginner C# and Unity tutorials from Brackeys, an awesome YouTuber and teacher.
Many people recommend starting with programming languages like Python or JavasSript, because they are easy to understand and learn. But I think the language you start with is not important at all - The only important thing is that you build something you have fun with or is useful for yourself.
That's how I spent many evenings, days and weeks. A few weeks later, I "finished" my first app: A mobile 2D platformer game. Then I did something unusual for a first project. I published it.
Did it get any downloads?
Probably not more than 10 from friends and family.
Do I regret it?
Definitely not!
I only published it on the Play Store at that time because I only had an Android phone to test it on. Even though it can be tricky, I recommend everyone to publish even the smallest projects.
When publishing your projects, you learn way more than just programming. You learn how to bundle the app, how to set up a store page. You might even get some feedback you can use to improve.
The months after that, I built 2 more 2D mobile games. All three of the games pretty much didn't reach any audience, but I learned so much building them. And the most important thing: I had fun building them (a lot, actually).
My "Fuck around and find out"-Phase
After publishing three games, I wanted to build different stuff. Still during my first year of programming, I tried many different languages and frameworks.
I had an idea → I looked up how to build it → Some dude on Stack Overflow recommended using this Python library → I started watching Python tutorials and building what was in my head
This way, I learned a lot of basics:
- Python for building some discord bots and playing around with machine learning
- Java for writing some Minecraft plugins
- Flutter to build basic mobile apps
While I didn't learn anything in depth at that time, I built software I actually used. This way I found out what works and what doesn't. I got a decent understanding of many different basic concepts I still apply today.
My late entry to web development
Nearly a year into programming, I wanted to build a website. I wanted to build apps that everyone can access by just opening their browser.
So I started looking into HTML and CSS. Then I looked into JavaScript. Then I heard about frameworks and started looking into react. I learned the basics and build my first few websites.
During my learning process, I worked with many different types of learning materials. There were YouTube tutorials, courses on Sololearn and some tutorials on freecodecamp. These platforms helped me understand what I was doing, and quite important to me at that time, they were free!
🏢 The internship that changed everything
In autumn of 2021, I voluntarily attended an internship during the holidays that was initially required by my school but cancelled due to COVID. Just weeks before I acquired my first job as a 15 years old student washing dishes at a restaurant.
When I started the internship, I was provided a computer with React Native - a framework I have never seen in my life. During the week of my internship, I built 2 games with that framework which is typically used for "normal" apps (But what else would a 15 years old boy think of to build). My first game was a clicking game, where two players competed on the same device. My second game was a simple snake clone with gesture controls.
At the last day of my internship I met the team leader. For the first moment, he was just a random guy that I've never seen before who asked me to grab lunch. That day, I ate lunch with two completely unknown persons.
But we got along great! We chatted a lot, played the first game I have developed during the internship and finally spoke about the boring job I have just started. Apparently, they were quite impressed of my skills and creativity that they asked their boss to offer me a student contract. Fast forward three weeks, I was sitting at the same desk, but this time getting paid and working on a real multi-platform application.
I learned so much about continuously developing an app and working together on the same project as a team.
Over the last 4 years, I improved my skills in that area. I started taking more responsibility, started writing my first lines of backend code. For the first nearly 3 years, I only worked a few hours per week. After graduating last year, I increased my working hours and experienced the whole development cycle more in depth.
Building and launching hobby projects along the way
One thing that helped me in so many different ways was to keep developing my own projects. I mostly stayed in the field of web and app development, looking into frameworks like Node.js, Next.js, and Expo. To this point, I get most of my learning resources from udemy. It's a great place to get high quality courses for a really fair price.
I also started building my own apps. The first big app I built was called MyGainplan. A fitness app to manage your workouts and discover other users workouts. I built everything myself: The frontend with React Native, the backend and authentication with Node.js and MySQL. I learned a lot about databases, containerization and hosting on that project.
Even though the app got a handful of users, I decided to shut it down after the activity started to drop down to pretty much nothing and I wanted to save the server costs.
Then, during this summer, I released my second app. I took the lessons learned from MyGainplan and published MotoMeet, a social platform for motorcycle riders to meet up for group rides. This time, I decided to stick with a managed backend with supabase to reduce the server costs and not having to worry about authentication or hosting. I'm really happy about how MotoMeet turned out, there are a few hundred user accounts so far and the app is sometimes used by people all over the world.
Starting of my university studies
After a year of working as a part time developer, I wanted to learn more. I have fun working as an app developer (and still continue working for that company), but I wanted to take an even deeper dive into the world of computer science.
So I took a really big step and moved to Munich. I signed up for a bachelor's degree at the Technical University of Munich and I am starting my studies now. Looking back, that one YouTube video I saw 5 years ago really inspired me to go a long, long way.
TL; DR
Even though I am not at the end of my journey, here are my key takeaways from what I've learned:
- Don't just build what's easy, build what is fun and useful to you
- Don't believe people who say they have the best roadmap to become a developer. Find out what you want to do and just do it!
- Even though it's tempting to vibe code your thoughts, use AI as a tool to help you develop not to build whole projects. This won't get you anywhere in the long run
I would love to see your thoughts and questions down below and I'll answer as many as I can.
Enjoy your own journey of learning to code!
~Jarne
Top comments (0)