My Path to Front End Development - 5 Years Later
Tags: career, javascript, beginners, webdev
Published: 2022-04-21 00:29:04

## Intro

Hello friends 👋

I would like to share my path towards becoming a front end developer using free resources in hopes that this post clears any doubts some of you may have regarding switching careers. This is going to be a a long one, so you can skip to the bottom if you want to see a summarized timeline of my adventures in the IT world 🚀

April 20th, 2017, was my first day at **[Frames News](https://frames.news/)**. It was my first professional experience as a software developer, age 24.
Before that, I was working remotely as an Apple *advisor* (ie: glorified call center operator), picking up calls for eight hours straight from people who had mostly had forgotten their Apple ID and couldn't be bothered to use Google to find that password recovery page. And before that, I went to college for four amazing years where I met really great people and got my languages degree.

Alot of the developers I have met ever since I got into this area, also had changed careers in pursuit of a better life and other ambitions, so if you too are reading this and considering jumping to this area, I hope this post will help you in making this decision as I will share how I became the software developer I am today and some of the accomplishments I had ever since I decided that I wanted to turn my life around, all without spending any money.

## In a past life

I completed my languages degree in May 2016. By then I only had two previous work experiences:
- I worked as a 'tour guide' for a short time in the summer of 2015. And by 'tour guide' I mean, my job was more delivering brochures in downtown Lisbon, in hopes that tourists would book day-long tours for the next day. The problem was that for the two weeks I worked there, we were a team of four guides that only had one tour group schedule a tour. I was lucky enough to volunteer to be the first 'tour guide' and actually did the tour while my colleagues were delivering brochures all day. They 'fired' half the team when they realized they were not making any money, luckily I was let go.
- In 2016 I worked at a support call center contractor with a marketing company as a client. As I'm a native english speaker, this was good pay, and having heard the stories my college colleagues would tell about working in a sales or outbound call center, I considered myself lucky I was only calling people to check why on earth they weren't scanning all their shopping with our *fancy* bar code scanner. And by *fancy*, I mean, outdated piece of crap that had alot of problems and was not to be replaced by the available new models unless the clients complained about some specific issues.

Needless to say, I did not enjoy any of these experiences. At the call center I met all sorts of people who gave me an insight of what the future held for me: 

- Guys who actually got into the client's bar code scanner thingy and actually PAID from their own pocket to buy the client's swag online, which they would proudly wear to work.
- *Old* folks who clearly were there just to pass the time and make a little extra money.
- People who I can only politely describe as mentally challenged who managed to get fired for being inefficient at reading a script (I am not 100% sure to which degree on purpose).
- Some had been at the company with the same client, doing the same thing and reading the same scripts for a time that I do not consider to be within sanity, I'm talking 15 years of asking people why they were not scanning their shopping every god forsaken day.

In the following year I was set to finish college and get a job as a languages teacher and while I did finish college with good grades and got my degree, I only managed to get an interview for a teaching job, a part time offer at a private school nearby that said they were only waiting to settle a few details and they would for sure call me back. They never did.

I found a job as an Apple remote advisor which was like having a call center in my room. It paid better than average jobs and they did send me an iMac to allow me to work from home. I started in September 2016, was making about 900 euros per month, and during the first few months, since I had to connect the internet cable to the iMac, I was constantly playing Football Manager on my own computer while taking calls.

The fact that I was working from home did very little to improve my opinion of this *kind of work*. I will always remember kindly the phone call I received while in the middle of going number two because I was 1 minute late on my break, the endless wave of calls, 75% of which about the same issue, that went on for eight straight hours and the weekly rotating schedule which could have me working from 8h-17h on a week and 12h-21h the next one. After a few months I was basically looking for a way out.

The realization that if I did nothing my life would go on like this and in twenty years I would be just like one of the fellows I met on my first experience, was my first step towards becoming a software developer. There, I realized two things:  **I would have to dedicate alot of extra time** to it and **the sooner I started, the sooner I would be able to leave my current job** . 

## Jack of All Trades, Master of None

By the time I was looking into alternatives, I already had a few options, all of them based on my personal hobbies and all of them with alot of competetion. I remember thinking: "*I can play guitar and piano and I also love playing video games, so for sure, a YouTube career is within my grasp*" and who knows...

Around this time, a very close friend from high-school came to visit and we had one of the most important conversations in my life, first because it introduced me to [FreeCodeCamp](https://freecodecamp.com), second because that's when I learned the expression **"Jack of All Trades, Master of None"**. Imagine a game of roulette, spending a few years pursing a gamer/musician career would be the equivalent of randomly betting on numbers 23 and 8. 

I had already 'coded' some games while in high-school with a very specific game engine (that [still exists](https://byond.com)), but I knew nothing of any real programing language. My friend knew this, in fact, we actually worked on a senior year project which involved creating a website. In this conversation, my friend recomended I checked out FCC and painted me a picture of what he heard about the IT scene:

- Crazy wages. Get a Tesla in 2 years.
- Anyone can become the next Steve Jobs.
- Party during work hours. Drink during work hours.
- No extra hours.  If extra hours were required, pizza for everyone.
- Huge demand for anything IT related. You can fix printers ? Here's 100k/yr !

All of this sounded great (and not even close to reality in most cases), there was just this small problem that I had no idea how to actually develop software and, like I said above, already knew how to play guitar and video games 🙃. I had previously tried to learn how to develop by watching some Udemy or Coursera videos, but that did not work so I checked out FreeCodeCamp and read some articles on people who managed to use this to turn their life around.

## Becoming a Developer

[FreeCodeCamp](https://freecodecamp.org) is a website that offers you a complete course in Web Development, for free. At the time, the curriculum was slightly different and was split into Front-End, Backend and Full-stack certifications, now its less condensed, feel free to check it out on their [website](https://www.freecodecamp.org/). To me, I really liked how they introduced new lessons and asked you to do an exercise on it.

In a few weeks I had stopped playing Football Manager on my computer and managed to do some lessons while taking calls. I felt the HTML and CSS modules were really easy.  My first project was a simple Bob Dylan tribute page using only HTML, [Bootstrap](https://getbootstrap.com/) and CSS. I started to feel some difficulty when I started with the JavaScript lessons.

However, the thought of waking up knowing I would have to face eight hours a day of talking to pissed off Apple customers who either forgot their password or bought a bricked phone, pushed me forward. During this time I was fully commited to getting my life on track and I had also decided that I would quit my job when I finished the Front End Development Program. 

I think what really worked for me is that FCC lessons did not provide the full picture and instead encouraged me to go and search out how to accomplish something and actually understanding what was happening.

So I continued learning JavaScript and eventually [jQuery](https://jquery.com/) , did a [Pomodoro Timer](https://codepen.io/OPaiTaCa/pen/NdGGOM) and a [Simon Game](https://codepen.io/OPaiTaCa/pen/MJeQjM) on [CodePen](https://codepen.io/) and my final project was making my own [GitHub Profile](https://davidsmorais.github.io/#/) page. I got my certificate for the Front End Development Program on January 16th, 2017 and I would quit my job soon after. With this certificate I started sending CV's and applying for every Junior Developer role.

![Certificate](https://cdn.hashnode.com/res/hashnode/image/upload/v1650497310318/mQGN3Nmhh.png)

## Job Hunting 

One of the first and most important things I did, advised by FCC, was to properly write my LinkedIn profile to something more resembling IT career. I was hesitant to do some steps, but I followed every single orientation and article and for the first time in my life, someone messaged me on LinkedIn 🤩 it was a recruiter who just wanted to become part of my 'network' and for some reason sent me a message 😢

My friends, I am fully aware that this certificate and 'online course' is not the best answer when they ask you about your education on interviews. Still, I managed to go to get a few interviews on well known consultancy companies, suited up (yeah, **I know 😅**) and most of the times I received the typical, "*We will reach out to you*", some actually did, just to let me know that the final client was looking for a more experienced candidate.

In one consultancy, I had a brief tech interview with the CTO and actually got an internship at that company, but the state denied to fund said internship and they were not willing to pay my full salary. The other occasion I came to getting my first job came in mid February 2017 when I got through a technical interview and was supposed to deliver my first take home assignment.

They wanted me to build a table from the JSON, and I read somewhere in the documentation that they used some sort of HTML templating solution. The process of cloning a repo, the whole git workflow and the HTML template were entirely new to me. I remember I did most of it using Handlebars and CSS. Rejection came a few days later.

During March I got some interviews in some consultancies and some start ups which kind of kept me going, however, nearly 2 months of rejection were starting to take a toll. I remember that I even sent my new 'developer' CV to some call centers and temp work agencies, but not even they were calling me back. I also started to get more selective in my job search and sent CVs only to start ups, who were more likely to look at my little portfolio and the effort I put into it.

We were now in April and I was worried I made a terrible mistake by leaving my job. I had nothing to show for myself except for a few CodePen projects, an empty GitHub profile, and a PDF that says I did some coding exercises that you can just Google the answer for. And my parents were happy to point this out to me.

And then, the guys from the code project I delivered in mid February called me and asked me if I was still available.

## I AM DEVELOPER ! (sort of)

The guy who was initially hired left for some reason, and I was more than happy to take the chance. I realize this bit of sheer luck has possibly enabled everything that came after, but I will be forever thankful to whoever poached that guy from the startup I was about to start working on.

And so, April 20, 2017, was my first day at [Frames](https://frames.news/). My job would be to make charts using the [D3](https://d3js.org/) library (which was also a part of the Free Code Camp curriculum) and vanilla Javascript. The company was quite small, there was a journalist who would use a backoffice to input data on chart templates, a senior developer to create and maintain the backoffice functionality and me, who would create and maintain the chart templates. Regarding the salary, I accepted the fact that I wouldn't be as productive as someone that graduated from a bootcamp or college so I was happy to take the 700 euro per month pay check.

The first few weeks were tough, I rembember being asked to read the entire [You Don't Know JS](https://github.com/getify/You-Dont-Know-JS) book with the implied threat of losing my job. FreeCodeCamp did give me the basic knowledge, but now I needed to learn about the foundations of the language I would be using for the next years. If you are a self taught developer, I totally recomend you read through this and other books that go in depth into the language features.

While my senior developer made me feel dumb multiple times a day, I felt I was evolving as a developer and actually learning alot during my work day. The work environment was also something I had never witnessed before. I remember them laughing at me when I my *memory's muscle memory* warned everyone I was going to take a leak. 

This experience was also invaluable because I had a walking fountain of knowledge sitting next to me and was really cool about answering my questions and pointing out all code style errors in countless PR reviews. I cannot count the amount of times he had to explain me the whole rebase workflow. What really helped me improve my Git knowledge was [GitKraken](https://gitkraken.com/) and other similar tools.

I eventually started to learn React and even started to lend a hand on the backoffice while my colleague would focus more on the backend and devops component, however, the company decided to stop development in the summer of 2018. The service and the templates I developed were active until the company stopped its service in March 2021.

## Milestones & Timeline

For someone who's considering changing careers into IT, I would like to point out that by the time my boss announced he was closing I was already receiving interview requests on a semi-daily basis and had little trouble in finding my next job, which doubled my salary and took me to travelling to the Netherlands for the first time in my life. I have never needed to apply for a job ever since.

I am currently on my fourth job in IT, working for [Pennylane](https://www.pennylane.tech/), a french company with big plans for the Accounting area, in the meantime I have done a few open source projects and am currently developing a game with Typescript and React, [Epoch Rift](http://epochrift.com/), among other side projects.

Here is a timeline of some of what I consider achievements ever since I started the FreeCodeCamp course


- 2016
	- September
		- Started [FreeCodeCamp](https://freecodecamp.org) Front End Development Program
- 2017
	- January
		- Completed the Front End Development Program
		- Quit my job
	- April
		- Got my first job at [Frames](https://frames.news) as a junior front end developer
	- June
		- Completed [SoloLearn](https://www.sololearn.com/home) JavaScript course
		- Started learning [React](https://reactjs.org/)
- 2018
	- March
		- Started developing [MDyna](https://mdyna.netlify.app), an open source markdown notes app with React and Electron
	- August
		- Completed [SoloLearn](https://www.sololearn.com/home) Python course
	- September
		- Joined [Intrasurance](https://www.intrasurance.com/) as a React Engineer via a consultancy
		- Started learning [Typescript](https://www.typescriptlang.org/)
-  2019
	- November
		- Went to Websummit via [MDyna](https://mdyna.netlify.app) and Github's Open Source Program
- 2020
	- January
		- Joined [Gaspard+Bruno](https://gaspardbruno.com/) as a React & React Native developer
	- March
		- Completed [SoloLearn](https://www.sololearn.com/home) Ruby course
		- Stopped working on MDyna
-  2021
	- May
		- Started working on [Epoch Rift](https://epochrift.com), a roguelike game with Typescript and React
- 2022
	- December
		- Joined [Pennylane](https://www.pennylane.tech/) as a Front End Developer
		- Started working on [Kuro](https://github.com/davidsmorais/kuro) a Microsoft To-Do desktop client for linux
	- April
		- Released [React Bifrost](https://www.npmjs.com/package/dm-react-bifrost) my first NPM package



For any questions you can reach me on my [website](https://davidmorais.com) and follow me on [Twitter](https://twitter.com/davidsmorais), you can also drop a coment below. I will do my best to try and clarify and doubts you may have regarding switching careers or what path to take.