How I Became a Web Developer in Seven Months
In June 2023, I quit my job as an engineer to learn programming. In January 2024, I started my first job as a Full-Stack Developer. I learned web development in just seven months. In this article, I want to tell you how I did it. So let’s dive in.
Why I Became a Web Developer
Since I already wrote a blog article about why I decided to become a web developer (Check it out here), I won’t go into much detail here. In short, a couple of factors led to this decision. My desire to stay in Thailand and be free to choose my workplace, my curiosity regarding programming, and my dislike for my old job were the most important factors. Nevertheless, I think it is worth mentioning that the salary was not a reason to switch jobs. As an engineer, you earn way more money compared to web developers. I decided to become a web developer because I wanted to work at something I really enjoy, not just for the money.
My Knowledge Before I Started Learning
Before I quit my job, I already knew a little bit about programming. During my bachelor’s degree, I took a course about programming with VBA and C# specifically for engineers. Furthermore, I attended three extra courses outside of the engineering faculty: Programming with Java 1 + 2 and Web Development Basics in the IT faculty. This was because, at the time, my girlfriend streamed on Twitch, and I wanted to write a custom Twitch Chatbot for her. This was my first hands-on experience with coding. I wrote a Twitch Chatbot in JavaScript which worked with WebSockets to connect to OBS Studio as well as the Twitch platform via API. To be honest, I didn’t really know what I was doing, but somehow I managed to make a pretty nice game there. From time to time during the stream, Animal Crossing characters appeared on the screen, and people were able to spend their Twitch channel points to ask them if they would like to move to their island. The viewers were able to invite all 400+ characters to their island if they watched long enough. (Nobody ever achieved this. The most characters a viewer collected was 107, I think.) Everything worked without a database or a server. When my girlfriend started her stream, she needed to start the bot on the local machine by running the JS file. On top of that, I learned the basics of Git during my work as an engineer and had pretty basic knowledge of C++ because I needed to use it at work from time to time. I also worked a lot with MATLAB/Simulink at work.
The First Two Months of Learning
After I quit my job, I wrote down a plan on how to learn web development and get a job as soon as possible. I thought that I should be able to build a nice portfolio by November 2023 and that I could start applying for jobs around that time. The plan included learning around eight hours a day. I also decided that I did not want to learn freestyle and all by myself. I am the most productive when I have a structured frame around myself. So I looked into different free resources on the internet. Finally, I decided to follow the path on The Odin Project. This website offers a full course from zero to Full-Stack Developer and even offers some lessons on how to prepare for job interviews. All for free! So I started learning the fundamentals of HTML, CSS, and JavaScript. It went pretty well for the first couple of weeks, and since I already knew most of the stuff in the section, my progress was as expected.
The Hard Reality
After speeding through the Fundamentals section, I felt pretty confident. Also, I didn’t need to learn for eight hours a day. It was mostly 4-5 hours each day for the first couple of weeks. But after I passed the point of repeating what I already knew, things turned out to be slower than expected. The lessons became more packed with useful and important resources regarding advanced JavaScript topics and front-end frameworks. Also, the projects I did during this period became more and more time-consuming and challenging. I realized that there was no way I could finish the whole course in the remaining four months. So I panicked a little bit. But I tried to just keep on doing my best. I learned advanced HTML and CSS like semantic tags and animations and working with keyframes, as well as advanced JavaScript. I also started digging into React. On top of that, I know there are way easier frameworks to learn, but since The Odin Project offered just this framework for front-end and it is still the most used front-end framework, I decided to stick with it. I bought a TypeScript course, which I took on top of my course at The Odin Project. I think it took me almost three months of non-stop learning to wrap my head around React and TypeScript and make some first projects with it. To be honest, I am still not 100% confident with it. So it was November already, and I just finished the front-end part of the course. There was no way I could learn the back-end in one month while building a portfolio and applying for jobs.
The Lucky Job Offer
Despite the struggle, I tried to do my best and started digging into the Node.js section and took a course in MongoDB. On top of that, I crafted a very basic portfolio website with just HTML and CSS as well as very little JavaScript. My intention behind that was to show that I have a solid foundation of the basics. After my learning sessions, I attended job fairs and networking events in the evenings. To be honest, I thought that I would never get a job in Thailand at this point. I had no prior experience, my portfolio was one of the most basic ones out there, and I didn’t even have a bachelor’s degree in a field of computer science. So one day in the end of November, I wrote an informal email to a company in the north of Thailand. The evening before, I read a blog article from a guy in a similar situation I was in. He had no prior experience and taught himself programming. He just sent an application to the company back in the early 2000s and got a job offer. So I thought I should also try it. I told the company in the mail that I am nowhere near being a full-stack developer and that I am still in the learning process, but that I am very diligent and I really want to code. So after a few days, a couple of interviews, and sleepless nights, I got a job offer for an internship as a Full-Stack Developer.
Five Months In
Right now, I am five months into the job. I have one month left as an intern, and then I will start as a junior developer. Even though I made it clear to the company that I didn’t have any experience with the back-end technology, they said at the beginning of the internship that I will have to focus more on the back-end side. Luckily, they gave me some time to learn all the stuff. So in my first month, I started learning the basics of PHP and Laravel. Since then, I have worked on real projects that are used by people every day. Right now, I think I am way more confident with the back-end technology since I work with Laravel every single day at work. I am happy to work in this company – the people are super helpful, and the atmosphere at work is very nice.
My Conclusion
To be honest with you, I think it is nearly impossible to learn web development in a timespan of under a year, become very good at it, and land a job (especially in a foreign country, like I did). There are so many things you need to know, and most companies want junior developers that have at least two to three years of experience under their belt. I think in my case, it was very beneficial that I took some extra courses at the university and that I did some (very different) programming at my previous job. Also, there was a huge portion of luck involved in landing a job that early in my web development journey. It was a huge struggle, and I thought about going back to my old job more than a couple of times during this period. But in the end, it all paid off. If you are thinking about learning web development, please do not rush it. Take your time to get a solid understanding of the basics and fundamentals and repeat if necessary. Try to focus on the process, not the goal. In the end, even if you land a job, you will never stop learning since the field of web development is evolving so fast. So it is crucial that you find joy in learning new stuff to find joy in coding and working.
See you next week!