tl;dr at the end.
As a fresh Comp Sci graduate of Union College (a small liberal arts college in upstate New York), I was excited to see where I could go with this degree. I read about how CS grads were on high demand in the job market, so I had an unrealistic belief that just by having a Computer Science degree, I would be able to land a job easily. Boy, was I wrong…
During my four years at Union, I took the usual CS electives that you’ll find at larger universities (data structures, algorithms, compiler design, programming languages, etc.) along with courses in other subjects which I was interested such as economics or a course about modern Japanese society. My time at school was split between completing work for my courses and wasting time doing all types of shit. I was free from my parents overseeing my schedule and aspects of my day-to-day life for the first time and I had no idea how to spend that free time effectively. I would not spend any time exploring the things I learned in class at a deeper level or other aspects of coding that I found interesting, but didn’t want to actually invest time in it.
This did not bode well for me when reality decided to smack me in the face as I hadn’t been searching for jobs during school so I had to begin searching for jobs. I quickly realized something: I didn’t have any real skills for a job. Compound this with the fact that I was an international student which means that the time I had to find a job was limited before I would be forced out of the United States. So, as I began my job hunt, I applied to many different types of jobs, from consulting to business development, but I realized this isn’t what I did in college nor was it something I would’ve enjoyed doing. I knew I wanted to be a coder. But there were so many types of jobs that involved coding: software engineer, web developer, frontend developer, backend developer, fullstack developer. Which one would I be?
I decided on training to become a web developer given my time constraint and my interest in being able to develop mobile apps (more on this later on). So, to begin my journey I first scoured Reddit searching for the best places to learn web development and I found that FreeCodeCamp was mentioned quite often, so I gave it a shot. I want to note that at this point I had gone through other online courses via Udemy as well as The Odin Project. However, I was never able to truly learn using Udemy and I felt the pace of The Odin Project quickly ramped up at certain points. So I decided to go on a deep dive into FCC.
I began FCC in August and tore through most of the first few sections of the Front End Development section as it was very basic HTML and CSS material which was more of a refresher from my previous time spent learning. As I went through the projects, I made sure I understood what the purpose of the project was, also paying great attention to the design of the projects, because I planned on presenting them as part of my portfolio for potential employers to look at. I looked at each project and thought to myself, what are the creators of this course trying to teach me here?
This time spent on reflection helped ensure that I paid extra attention to certain aspects of each project as well as diving deeper and learning or reading a little more about certain things on the side. It was important that I knew what my goals were as this dictated what I spent extra (but limited) time on. I knew that I wanted to eventually possess the skills to develop mobile apps, but I felt that learning Swift or Java to code iOS or Android apps was daunting and also somewhat inefficient since React Native was popular and only required really coding the app one time. Thus, the stepping stone towards RN was to learn React.js, which I also had an interest in. After completing the entire Front End Development section and obtaining my certificate I completed their beta React course a few times and tried building a few projects on my own using React to familiarize myself with it. FCC was able to make the journey of learning something enjoyable, straightforward and satisfying. Not to mention, the community on Gitter, which was extremely supportive and fun to talk to about the journey we were all taking together.
As I went through and completed the exercises and projects for FCC, it felt like I accomplished something everyday (they make it like a game with achievements) as I completed another exercise or project. The way FCC lays out the exercises and the incremental increase in difficulty as students progress through the course allows students to progressively improve at their own pace, while not feeling discouraged by excessively difficult exercises which seem to come out of nowhere. It was also nice having a map and a goal to work towards to and having some products that you could use and also add to your GitHub as part of your portfolio. Note: it is important to not get too caught up in completing exercises because at the end of the day, the goal is to land that developer job.
After working on FreeCodeCamp for about two months, my time in the US was about to run out and I had about a week to go before I was to return to Beijing and eventually take up a job offer in Singapore. Despite over 300 job applications which I either never heard back from or was rejected, I was finally able to land an interview with a small startup called Uptop. I went through their interview process and was offered an internship. FreeCodeCamp helped me greatly in learning and refining the necessary skills to actually be hired and if you work smart and hard and persevere through the challenges, you will be rewarded with a life changing opportunity.
- graduated from Union College, thought getting a job would be easy as CS major
- wasted a lot of time in college doing nothing
- realized I didn’t have any skills, had limited time in US to find job due to my situation and applied to many jobs, but wanted to be a coder
- decided to be a web developer, scoured Reddit, decided FCC was my goto
- started FCC, paying attention to design details as well as what the main purpose of different projects were
- reflecting on purpose of why I’m doing something and understanding my goals was helpful
- wanted to develop react native apps, decided react would be appropriate stepping stone
- FCC community (on Gitter and forums) is great
- FCC roadmap, incremental difficulty makes it a very doable and satisfying
note: important to remember purpose of FCC => get dev job
- almost got kicked out of US, interviewed with company, got the job with many thanks to FCC