I got my first developer job after 4 months of learning web development. It was lot of hard work but this is how I did it.

Learn the Basics

Having never tried web programming before, I needed to start right at the beginning. Learning basic HTML and CSS.

Luckily I found freeCodeCamp. It’s an amazing site that teaches you web development through small programming challenges. It progresses through each area of development, one at a time. They teach you everything you would need to know for front end web design. The ‘Algorithm Scripting’ and ‘Projects’ sections are brilliant. You practice what you’ve learnt by building some real web pages. I worked my way through the whole front end developer course.

The projects in this course are great as they allow you to show off what you know by building a portfolio. They are also great talking points in interviews. Discussing my ‘JavaScript Calculator’ project is what got me through my phone interview.

Learn Git and GitHub

I started using Git and GitHub so I could work on projects during my lunch break at work. Knowing what it does and how to use it made starting my job a lot easier.

I would recommend learning to use Git at the same time as your first project. You only need to know the basics, so you can push your projects up to GitHub. Having your project code online allows future employers to see what you’ve written and how you write.

Commit your projects and push them up to GitHub whenever you finish them. When someone sees a GitHub profile with months of regular contributions, they know that you’re keen and consistent.

GitHub can also host your portfolio for free. This means you can have your portfolio at https://<your username>.github.io which is pretty cool. You can also host each of your projects so friends, family and employers can see the work you’ve been doing.

Portfolio

Your portfolio is one of the most important things you have when applying for a job. It is often the first thing that an employer will look at when they get your application. That said, don’t worry about having it perfect and beautiful in the first try. When you first make your portfolio (as part of freeCodeCamp) get it working and looking OK but don’t spend days designing it.

Image for post
The Portfolio that got me my First Job

I rebuilt my portfolio 4 times before I got my job. When you feel that you’ve learnt enough to improve your portfolio, do it. Not only are you showing off what you’ve learnt, you are also practicing it too. Although, spending too much time perfecting styling or animations will delay you learning the next thing.

Further Your Knowledge

Using JavaScript to build web pages is one thing, understanding how it works is another. I scoured the internet for the best books for learning JavaScript and kept finding the You Don’t Know JS book series. One of the best things about this book series is that it’s available for free.

This series goes through the most important aspects of JavaScript, explaining how they work. For your first job, you would want to have read and understood Up & Going and Scope & Closures. The rest of the books in the series would be best read whilst working at your first job. Some of the topics are hard to grasp without having encountered them.

Some places will give you a few problems to test your level of understanding. I can almost guarantee that you will be tested on scopes and closures.

To improve your understanding, you can learn a new skill area. This could be a new library or framework. There are tons of tutorials available for building projects using new technologies. Try to keep it relevant to HTML, CSS and JavaScript web development.

Practice What You Learn

This is one of the most important things for securing a job. The best way to improve is to use the things that you have learnt in real projects. If you have learnt about responsive design, make a basic website that is responsive. It doesn’t even have to be a website that makes sense. Getting practice using your new skill is the important thing.

To practice JavaScript, do the freeCodeCamp algorithm scripting challenges. When you’ve finished those, try Code Wars and Coding Game. These are great places to practice JavaScript, with challenges for every skill level.

Start Applying Early

Once you’ve completed the intermediate projects on freeCodeCamp, you have enough experience to start applying to junior developer jobs. Have a look at your portfolio and decide whether you want to update it or start again. You should now have a lot more experience than when you first built your portfolio. Make it what you can do and link to the projects you want to show off.

Apply to jobs that interest you, try the large job sites and the smaller ones. I got a few job calls because I had posted my CV and portfolio onto these sites. One of the phone calls turned into an interview and then a job. Recruiters are looking for people to work as junior developers.

When I started to apply, I thought I wasn’t good enough yet or no one will want me. A lot of people feel this way when they apply for their first job. My reply is that the worst that can happen is you get no positive replies and carry on learning more and gaining new skills. Another possibility is that you get to an interview but don’t get the job. This is a great opportunity to ask them what skills to improve. Most interviewers would be happy to give you a pointer or two. The best case is that you are better than you thought and they want to hire you.

I had a lot of negative replies, often stating they wanted X years of commercial experience. A few calls where the recruiter liked what I’d done but the employer wanted someone less junior. Eventually I got a call where they were impressed with what I’d done and invited me to interview.

Preparing for the Interview

Know the basics. Practice the basics.

That is all an interviewer can expect from a candidate for a junior position. Having a recent project that you know well is also a great idea. Being able to talk about a project and why you chose to do things one way or another is brilliant. It shows an interviewer your thought process (and that you have one) and you understand what you have done.

Prepare a few questions for the interviewer too. What stack are they using? What operating system they use? Do they use Agile methods? What will your responsibilities be? Have a few questions that you want to know about the business. You will be spending a lot of time there so you want to make sure that you will enjoy it and learn from it.

And that’s how I got my first developer job. Now I’ll talk about a few things that I wish I did differently and what I learnt when I was helping to hire someone.

What I’d Have Done Differently

If I was doing this all again, I would have definitely done a few things differently.

I would read less programming blogs. While they are very interesting and informative, they almost never actually get you any closer to getting that job. I know little bits about other programming languages, frameworks or design but none of it I have ever used.

Daily CSS Challenge. I found the daily CSS challenge and spent an hour or two a day working on these funny CSS images. It was great fun but I wasn’t trying to become a designer, I wanted to be a developer. I should have spent that time working on a project or learning a new skill that was appropriate for what I wanted to do.

Paid courses can be exactly what you need. I’ve used courses on Udemy to learn new skills and they’ve been incredible. You can usually pick them up on sale for $10 and they take you through a contained process. This means you’re learning exactly what you need to and will always have all the information you need. If you prefer learning from following videos then this could be a great idea.

Don’t focus too much on getting projects looking great. I spent about 15 hours tweaking and readjusting my second portfolio. I tried 3 or 4 colour combinations and design layouts and tried to make all the spacing perfect. 2 months later I had scrapped that portfolio all together and had a much better one. I could have spent that time learning and been further down my learning path.

Asking more questions. Whenever I would it a road block in a project, I would sit there and try to work it out or Google to try to find a solution. Sometimes this worked great but sometimes I would spend a few hours going around in circles. I could have solved it quicker and learnt more by asking people who might have a solution. The freeCodeCamp forum is an amazing place full of super knowledgeable people who are happy to help.

What I Learnt From the Other Side of the Table

I learnt a lot when the company I was working for was interviewing for my replacement. I learnt a lot about other developers at a similar level to me as well as senior developers.

A lot of the people interviewing for the job lacked any understanding of the basics. How were they going to learn to create Angular components if they didn’t understand closures?

Some of the applicants had immaculate projects. When I saw them I was so jealous. The senior developer on the team saw what it actually was — a pretty web page. It lacked the normal functionality that you would expect to see on a site like that. That applicant would make a great designer, but not so great developer.

One of the applicants had an amazing portfolio of projects. A lot of the projects were quite advanced and well put together. He was one of the front runners for the job. That all changed very quickly through the interview. Talking with him, it was obvious that he didn’t really understand a lot of the code in his projects. After the interview, a quick Google returned most of his projects as step-by-step tutorials. If you do include tutorials like this in your portfolio, make sure that you state that is what it is. What is better is to then do your own project that uses what you learnt from the tutorial.

In summary…

To get a job in 4 months:

  • Learn the basics. Free Code Camp for the win!
  • Use Git and GitHub to store and showcase your work.
  • Make a portfolio that states your skills and showcases them.
  • Further your knowledge. You Don’t Know JS.
  • Practice what you learn.
  • Apply early. Why wait?