How I Learned to Code and Got My First Job

My coding journey began about two and a half years ago, and I started working my first full-time developer job recently (wooo!). This might seem like a long time for some of you, but I didn't rush it and wasn't trying to find work until two months ago. Many people have done it more quickly and I was probably ready for a while. So I've decided to share my story, my resources, and what worked for me when learning web development.

How I got interested in coding

I was living in Thailand, training and fighting Muay Thai while working about 10 hours a week as a social media manager. I wasn't really enjoying marketing as a career and it wasn't as flexible as I wished, since I needed to be active at certain hours of the day.

Luckily I had the time to learn something new. I'd looked at a few things online which sounded like good skills to have that were flexible and that could be done remotely. But it wasn't until I met a guy traveling through Vietnam, who was working as a web developer, that I was intrigued and started to play around a little bit with coding.

Where To Learn?

At first, I was jumping around trying out different sites such as Codecademy, freeCodeCamp, and others I can't recall. I never really got anywhere with these to start with but they got me interested.

After researching, I decided to take CS50 - Introduction To Computer Science, a famous Harvard course run by David Malan. It teaches the real basics of computer science such as data structures, algorithms, and the relevant workings of a computer. This is all done in C but the basics you learn and the confidence you build apply to every language.

Once I completed CS50 I started on freeCodeCamp. What I loved about freeCodeCamp most was the projects. They give you great ideas to practice and test your skills as you are learning. Once I got through the first couple of sections on HTML/CSS/JavaScript and onto more advanced topics, I didn't find the lessons thorough enough. So I ditched them for Udemy courses which went more in depth on a topic. Then I could go back and build the freeCodeCamp projects for practice.

I used this combination of Udemy and freeCodeCamp until I had a solid grasp of HTML, CSS, JavaScript, Node, React, and Redux. I also completed all of the projects on freeCodeCamp except for the data visualisation section using D3.js, as I didn't find this skill in demand when looking at jobs.

What Next?

Although I was confident in these skills, I still hadn't gotten involved in open source except for a couple of tiny pull requests. I simply didn't know where to get started. Every time I looked at issues I couldn't see anything interesting. Or those that were interesting had already been claimed by someone else.

Eventually, I got involved with freeCodeCamp as a contributor. I would recommend just making a habit of checking the issues once a week or so to see if there's something that you want to help with.

Along with my work with open source, I also got an internship as a front-end developer focused on React. It wasn't the ideal internship but it was remote and I learned a lot by working on a codebase someone else had built. I was the only dev on the front-end. This presented it's own challenges, like being given a problem and being responsible for researching and solving it. In this time, I learned about and implemented internationalisation as well as React Native.

Getting the Job

I had a strong mix of skills, projects and experience to show off, my résumé in hand, and a portfolio site promoting my work. I was ready!

Getting the job was mostly a game of patience. All together it took me 2 months of searching and applying every day to jobs. Most of the time I didn't hear back. I applied for a lot of jobs which were looking for mid level developers or more experience than I had, which didn't work out. Most of the jobs I found on job boards were advertised by recruiters and I found these the most fruitful. I often received a call and meeting with recruiters who were impressed by my résumé and skills and were looking for junior roles for me.

I was also attending meetups to network and look for jobs. I didn't find any roles directly, as the companies weren't looking for juniors. However, I did meet a recruiter at a React meetup whom I grabbed coffee with the next week. He had a role from a company that was open to juniors and this is where I ended up accepting a position.

The hiring process for this position consisted of a tech test (https://github.com/GlynL/tech-test-prendi), and then an interview where I was actually offered the job at the end. It's a great small company where I'm working with the senior developer and can bounce ideas and get help when I need it. It's a full-stack job, I get to use React daily, and I will get the chance to work with a lot of technologies as projects require them.

When I was interviewing, the thing that people appreciated most was that I had worked on a real application in an internship. Even if I could have done everything in a personal project it proved that I could work on a real world application with other people. I would certainly recommend seeking out internships as this will look great on your résumé and will be a talking point during interviews.

What would I do differently?

If I were to do it all over again, there's a couple of things I would do differently.

For starters, I would get more involved with open source projects much earlier on. There's always something you can contribute to a project even if you are still learning HTML and CSS. You may have to be more particular about the issues you pick up but you can definitely help! The skills you gain in navigating a large codebase and working with others are invaluable. And as you learn more you can pick more complex issues to match your skills.

Secondly, I would also start networking earlier as this might've led to securing internships and/or junior positions. If people know you are searching for an opportunity then they will think of you when they have something. Or it'll at least give you an advantage in the application process as they will know who you are and that you have a genuine interest in the field.

Please feel free to let me know if you have any questions or would like me to elaborate on any of the points. I'd be happy to help!

You can contact and connect with me on Twitter @glynwebdev.