I am writing this post with the hope of giving inspiration to those who are learning to code and haven’t gotten your first gig yet. I used to read posts like this and feel hope in my periods of doubt and frustration. I really feel like if I could do this, then anyone can!
I started FCC in March 2017 with almost zero coding knowledge. After 9 months of working on FCC 2 hours per day, I got a new job that was 50% web dev and 50% elearning designer (my previous job). I thought about writing a post like this at the time but felt like this maybe wasn’t a real dev job. My web dev work at this job was mainly in a CMS where I worked with CSS and jQuery. After two years in this hybrid position I was promoted to be a full developer using just React at first and then the full stack including Node/Express and MySQL and more.
Okay, that is the high level summary. Looking back, I feel like I was a “real” developer (if part time) when I was hired, though I’m sure the cocky twenty-something full-stack devs would not have agreed! I was doing some complex stuff with CSS and traversing a complicated DOM with jQuery, but I was not fluent yet with servers, databases, or even all the skills of a React front-end like handling async functions, conditional rendering, and so on.
The next nine months are a bit blurry to me. With a baby at home, I had very limited time and concentration. I managed to work on FCC for 1 hour while eating lunch and 1 hour before bed. On mornings when the baby woke me at 5am, I would sometimes be able to study an hour before work. At this pace, I didn’t get all that far into the FCC curriculum, but I did build a few of the projects (including the weather app and random quote machine). I also managed to use CSS and JS to build some layouts and features into my projects at work.
After about six months, I started looking at job ads for front end dev positions. These ads seemed to be asking for a LOT even at the most junior and entry levels. After reading these ads for a couple months and looking for a job I could plausibly get, I saw an ad that was looking for a front end developer who could ALSO do elearning design. When I read that job ad, I thought to myself “who else has this exact combination of skills?” I had this strange feeling that the job ad had been written directly for me. When I decided to apply, the feeling grew even stronger. I thought to myself, “I’m going to get this get this job” even though it was the first application I made to a job involving web dev. When I applied, I sent my “elearning” portfolio from my recent work, and a Codepen link which had my first few FCC projects. I know a Codepen link may not be super professional for a normal dev job, but it was more than enough for this job. In a follow up call, one interviewer asked me if I had done all the coding myself, or if I had some help, maybe from a developer friend, and I could confidently say that I had written every line of code myself. I was thrilled when they offered me this job, and I felt like I found some kind of back door into the job of web developer.
In this job I worked with a CMS that allowed users to input text and images and then it would output into simple html web templates. This CMS had great business potential to save money on making web courses but the outputs looked so plain that there was a risk that the organization would not adopt it. Along with one front end developer, I improved the design of existing templates and built custom outputs requiring jQuery to make them dynamic. I learned a lot about CSS in this role, using lots of Flexbox including edge cases (we had to support IE11). The role would be perfect for a “designer/developer” person who wanted to design custom layouts then build them out in CSS (that’s not me).What a difference it was to spend full 8 hour workdays learning to code by building actual layouts instead of squeezing in one hour here or there in a day. Even better, I was getting paid to learn to code and to solve real web-development problems.
Despite the comparative luxury of my new situation, after a year or so, I started to feel like I wasn’t a “real developer” like I had imagined. I thought my first job might be at a startup, working with tools like React, Vue, Mongo, etc., and here I was doing just CSS most of the time. Even though I was doing full-stack tutorials involving things like React, I felt like I wasn’t really learning them since I didn’t have much time to build things outside of work. I was worried that I had hit a career dead end and would never be able to jump from CSS to modern tools and frameworks. I feared that my strategy to start with a hybrid role was not so brilliant after all, and I should have suffered more at the start to earn my way into a better career path. Okay, I sound neurotic in retrospect, but it’s hard to have perspective at the time.
The good news is that I was able to transition to a full stack role in the same company. I started on a React front end with another developer building the back end. And here is where another “real world” thing happened that you might not see coming. The developer who was supposed to build the rest of the back end left the company for a new job, and there was about six months before a replacement could get hired and be ready to take over his work. In that time, I had finished all the Jira tickets for the front end, and there were a lot of tickets outstanding for the back end. I looked through all of these 30 or 40 tickets, and I found the ones that had the lowest difficulty level. I said to my boss, I can take a crack at some of these back end tickets if you want, and he said okay. I managed to close the 5 easiest tickets, then I moved to the next 5, and the next, and I managed to complete most of the back end tickets before the new developer was hired and ready. My boss had higher priority projects for that dev anyway, so this entire project became mine at this point, both the React front end and the Express/MySQL/Sequalize back end.
So that’s basically where I am right now. I have moved on to a few more full stack projects and I’m feeling slightly more competent with each project, though it’s still a learning curve. Each new project has its own challenges and new wrinkles. There are days, or parts of days, when I want to rip my hair out. I spent an entire day recently solving a technical issue, and I thought, “what am I doing with my life?” But most of the time I like my job, and I feel a sense of intellectual challenge and satisfaction when I solve some thorny problems. Maybe best of all, I am hopeful about my future. I have been dipping my toe into some machine learning lately and thinking of ways I could implement some machine learning in my projects at work.
I will end with some common questions that arise in “first job” forum posts:
Did I use resources other than FCC to learn the basics?
Yes, I did lots of video courses. YouTube including Brad Traversy (I love this guy) and Wes Bos (funniest code instructor ever), Udemy including Stephen Grider (the great explainer), Colt Steele (super pedagogy), Maximilian Schwarzmuller (thorough and great), and Andrew Mead (tremendous). Angela Yu’s intro courses were not available when I started, but they are amazing and really encourage you to do “challenges” instead of just following along.
One thing I did was listen to many beginner courses while doing parenting tasks like preparing meals and washing dishes. I’m not sure if this is an effective way to learn overall, but it was good for reviewing things I learned already, and it kept my mind on the subject of coding even when I had no time to focus on coding itself.
Did you take a Bootcamp or other formal courses?
No, this wasn’t an option for me because of my situation. Before I got the 50/50 job, and even in the first year of that job, I wondered what would have been different if I had just quit my job and done a bootcamp. I live in Toronto where there are a few bootcamps that advertise strong placement rates with startups using the newest tech.
Did you go to coding meetups or do other networking?
I went to a handful of talks including the local FCC group, but I had limited free time on evenings and weekends. I felt very isolated in my coding journey (even after my first job started) and wished I could have met more people along the way, but it just wasn’t an option for me.
What was the pay at your first job?
I didn’t mention that my hybrid dev job came with a 33% pay raise over my previous job. I don’t know if it was because of the additional skills required (it was a company in a more business-oriented field too), but I would never have qualified for the role without the coding skills. I had expected to take a slight step down in pay for a junior developer role, so I was really happy with the pay increase. Also, I didn’t have to quit my job to take a bootcamp, pay for a bootcamp, or have any time unemployed while skilling up.