How I Became a Self-taught Front-end Developer

It was the middle of summer and I was on vacation in northern France, and I suddenly thought to myself, "why don’t I become a developer?". I had no set career path at the time, and no clue what I actually wanted to do with my life. The twenty year old me who was feeling a bit lost in life took the plunge into this mysterious world with many unanswered questions. Lots of questions were surfacing to the top of my mind; Do I need a degree? Where do I start? Should I join one of those bootcamps? How long will this even take? The list goes on…

I tried to learn how to code in the past but failed miserably so why would this time be any different? Well the answer was simple… My past approach and mindset to learning how to code was all wrong and il explain why.

Where I went wrong the first time

Coding seemed like a great skill to learn and many successful people are always preaching the importance of learning how to code to skyrocket your personal growth and career. So I did what any newbie would do, started learning the most popular programming language at the time and still is to this day, Python.

I had little sense of direction but I started learning Python through Codecademy since it seemed like the most logical path to take. I took out my pen and paper and started writing out the Python syntax and explaining what each line of code did. This seemed like a great idea at first but it became very tedious and nothing was really starting to click. I also found it very boring at the time copying some lines into an interpreter and having some text print out in a console window. There was little understanding of what was going on and the whole thing just seemed like a waste of time!

There goes my dreams of learning how to code I thought. Little did I know that style of learning was just not for me, and with little sense of direction and what I even wanted to do with code I became very, very bored.

What did I change?

So what was different between this and the next time I started learning how to code whilst on vacation in France? The second time I tried to learn how to code I wanted to have a sense of direction of where this could all lead me and what paths I could venture down if desired.

I realised I’m a visual learner so learning front-end development made the most sense to me. With this I also learned the types of things you could build with front-end development, this sparked the curiosity within me. I’ve always been a fan of design and creating things that can be visually appealing so creating interactive websites and web applications seemed right up my street. I believe this is all about finding what excites you most, and explore the many areas of programming (game development, front-end development, systems programming etc.) and pick one that resonates with you most. Just remember, you don’t always have to stick to one path since the concepts apply across the board and once you’ve learned one programming language, the second one becomes a lot easier to pick up!

I began to learn the basics of HTML and CSS using freeCodeCamp and a couple of YouTube videos, one which comes to mind is Mike Dane’s Full HTML Course, which I loved. Cheers Mike!

The process of telling the computer how to structure the markup and style it a certain way seemed like the most engaging way of learning how to code, and so this sparked my passion for development.

Get your hands dirty!

With that comes the my next point which is be curious and break things. Don’t always stay inside the boundaries and follow exactly what the course is teaching you at first, just be curious and start messing around with the code and don’t be afraid to break things. So with that being said, let’s talk about creating mini projects to put the things you’ve learned into practice. The projects at first don’t have to be complex, they can be as simple as building out a landing page you’ve designed. Every time I learned a new concept I would try and implement that into a little project. When I learnt conditionals, I would implement if statements into my app that would return different results based on different inputs.

After learning HTML and CSS, I swiftly jumped into learning JavaScript. This was a lot more challenging than just laying out HTML and adding some styles to it with CSS. JavaScript requires logical thinking of how to go from point A to B. This is why I preach the importance of trying to code a little everyday because programming requires a different mindset of how we approach solving problems. We need to rewire our brain to think like a programmer so doing a little each day goes a long way, and when I say a little I’m talking even just 15-20 minutes.

For JavaScript I took a Udemy course by Jonas Schmedtmann which really helped me grasp the fundamental concepts of programming such as variables, functions, conditionals etc. In this course he had some great little projects along the way which implemented concepts he’s previously talked about, this definitely helped making it all a lot more concrete in my mind.

Pace yourself

Don’t be afraid to take breaks either! Taking breaks will help you retain the knowledge you’ve been soaking up. Maybe try out the Pomodoro technique or something similar. I personally liked doing 90 minute coding sessions followed by a 30 minute break since I could get into the flow state and really dial in on what I was building.

Time to take it public

With all this learning you should definitely share your findings online with others, such as Twitter which I what I did at the beginning and it paid off a lot. I used social media to connect with like minded people and also share the types of things I was learning and building. This eventually turned into an opportunity to work as a freelance front-end developer for a digital agency here in the UK. This was my first glimpse into the world of programming commercially and not just working on my little passion projects. I was working with this agency on and off for about a year which helped me level up my front-end development skills massively and was something I could put on my CV for when I start searching for a full-time position.

Take on some real world projects

With this experience came the confidence I could build out a real world project myself, so I decided to ask a friend of mine if they wanted a marketing site being designed and developed for their animation studio. Luckily they were in need of one! I offered to do it for free since I was still relatively new to this but they insisted on paying me for my work, so win-win. I highly recommend you do the same and build out 1-3 real projects either for free or paid since this will allow you to develop your soft skills and how to deal with clients which you can showcase to potential employers. This shows you’ve actually taken the leap and jumped into building real projects instead of working on God forbid another todo list.

Start marketing yourself

So you’ve got a couple projects under your belt, time to showcase these on a portfolio website which potential employers and recruiters will be able to look at. If you’re not good at design, I suggest finding a template you can work with, or if you have decent design skills maybe try out designing something yourself! Whatever you fancy.

At the time I had experience working with on a marketing site for a client, and also I had the experience I gained from working with a digital agency. I talked about these in great depth and shared the types of things I’ve built, both in written and visual form. With the projects built and showcased, time to market yourself!

I recommend getting your LinkedIn profile up-to-date with a link to your portfolio. If there is one thing I want you to remember it’s this, you’re not an “aspiring” developer, you are a developer. I used to always say how I was an “aspiring” developer and I can guarantee that hurt my chances of landing any interviews.

For the CV I used a simple template from Google Docs and wrote about the types of commercial coding I've done for clients, as well as the time I was freelancing for the digital agency. I spoke about the results and value I provided.

I also had links to my passion projects at the bottom in case they wanted to see what I've built in my free time. A bug tracker is probably one of the best passion projects I suggest you try building. It shows your ability to perform CRUD (Create, Read, Update, Delete) actions on a database, manage user auth with a signup/login system, have permissions for each user role, and you can either use a back-end as a service like Firebase or Supabase, or create your own back-end from scratch if your feeling up to the challenge!

Just start applying!

One thing I would say is don't be a perfectionist like I was, apply for jobs along the way because you never know what might come up. You're probably never going to feel ready to start applying to jobs so just take the leap and start applying sooner rather than later.

I applied to a lot of jobs, I honestly can't remember how many...

It's so hard getting your foot in the door, I'm not going to sugarcoat it. But don't give up, just keep applying and improving your skills and eventually the time will come.

Most of the time I got no reply at all, and other times I got a vague rejection email. It probably didn't help I was applying to jobs around the time the layoff were happening. It was definitely a humbling experience, that's for sure!

Eventually I had a glimpse of hope when I got reached out to by an agency owner who was looking for a front-end developer to join their small team. I jumped at the chance and got on a call with him as soon as I could. This is what eventually turned into my first full-time position, it was very unexpected, but sometimes life can surprise you!

I was planning on giving up many times and re-evaluating my career choices but thankfully I stuck with it and it all paid off.