The Curriculum I Learned to Land My Remote Full-Time Job as a Web Developer
This is my follow-up post on exactly what I learned during my 5-month learning period and how I designed the curriculum to learn to code.
Original Post: ➡️ https://realtimkim.medium.com/skip-the-coding-bootcamp-how-i-learned-to-code-got-a-remote-full-time-development-job-in-5-761cf07454ac
I’ll include the exact courses and why I chose them. I do think it’s important to note that if I was going to do things over I would do a couple of things differently.
One of the earliest mistakes I made was trying to learn too many things at once and spending way too much time in “tutorial purgatory”. I think all of the most popular programming sites are sufficient at helping you pick up the basics but the most important thing is to utilize the knowledge your learning as soon as possible.
Follow me on Twitter for more information about self-learning, wealth building, and lifestyle design. ➡ https://twitter.com/TimKimMe
The Design
Since I was going to be embarking on a relatively long journey I wanted to make sure what I was learning was going to be worthwhile. There are so many programming languages and new frameworks and most of them will help you find employment but I wanted to make sure I stacked the deck in my favor for when I hit the job market.
My main focus was on employability. There was no way I was going to be able to be a master programmer in such a short period of time, therefore, I wanted to focus on the technologies that would help me land a job as quickly as possible so I could get paid as I continued to learn.
Note: Keep in mind, I wanted to try and get a job at a startup as a web developer. If my intention was to get a job in data science or an enterprise company I would’ve approached the design of my curriculum differently.
I first aggregated all of the curriculums from the main bootcamps at the time. The curriculums are mostly available online or they’ll provide it for you if you reach out to them.
You’ll get a good sense of what skills will make you employable as a developer if you take the time to see what these bootcamps are focused on teaching their students. Their whole entire business model and metrics of success are built around graduate employment.
My initial search gave me a rough curriculum that looked something like this:
- Web Basics: HTML / CSS / JavaScript
- Basic Comp Sci Fundamentals / Problem Solving
- FrontEnd Development: jQuery / React / SASS
- BackEnd Development: Express / Node
- Database: MongoDB or PostgreSQL
There were some minor differences in the amount of time spent on each of these topics but each of the bootcamps did highlight one common factor:
Full-Stack JavaScript.
I did some due diligence by looking for how many jobs were available for those technologies and if they were going out of style anytime within the upcoming year.
I looked at StackedOverFlow and CodinGame’s annual developer surveys.
Here’s a link to StackOverFlow’s survey from 2020: https://insights.stackoverflow.com/survey/2020#technology-programming-scripting-and-markup-languages-professional-developers
By looking at these surveys it was obvious that the combination of JavaScript + React + Node wasn’t going anywhere anytime soon.
In 2017–2018 React was also the most sought-after framework by new employers and MongoDB was also popular.
I believe the medium you use for learning is very important. I personally learn best visually and by seeing examples so I was naturally drawn to video.
Curriculum Construction
As I stated above, one of the things that really stalled my progress, in the beginning, was moving around different platforms and trying to learn multiple different things at once. I was on CodeCademy, CodeSchool, DataQuest, and I had purchased multiple books on Python, SQL, and PHP.
I barely scratched the surface on each of these topics and I would constantly either do the same problems over again or switch to a different topic once things got hard.
Now that I settled on what I was going to learn I decided to pick the tools I was going to use ahead of time so I had a straight path to the finish line.
I decided to pick one platform that could teach me all of the listed technologies I mentioned and pick supplementary resources for each main topic.
Learning How To Learn
If it’s your first time trying to learn something online and you’ve failed at doing so up until this point, I highly recommend, before you do anything else, you start with this class.
Believe it or not, I had no idea that there was a ‘right way’ to learn. I lacked the strategies to enhance my learning and most of my life until I took this course I thought I had a deficiency for learning compared to my peers.
This course didn’t only help me learn how to code it gave me the confidence to learn how to do anything and it quite literally changed my life.
“ Give me six hours to chop down a tree and I will spend the first four sharpening the ax.” — Abraham Lincoln
Main Online Curriculum: FreeCodeCamp
FreeCodeCamp is my favorite platform. It’s gotten even better in the last 3 years since I used it. I wouldn’t have been able to do what I did without this site. Huge thanks to Quincy Larson.
I donated a part of my first developer paycheck to the site.
JavaScript + Programming Fundamentals
The most impactful out of the tools that I used has to be - Watch and Code.
Up until this point I had done a ton of online tutorials from multiple different sites. It wasn’t until I went through Gordon’s site, watchandcode.com, where I felt like I finally understood what I was learning.
Gordon is also a self-taught developer but I think his greatest skill is teaching. I related to him because he too had a marketing background before becoming a developer. If you’re struggling with understanding JavaScript under the hood and you still don’t have a strong grasp on functions, start here.
Front End Development: React + Redux
The Course I Took:
Stephen Grider’s Modern React with Redux
https://www.udemy.com/share/101WcYAkMZd1daQQ==/
Credit to Stephen, it looks like he’s continued to update it since I took this course in 2018 but I would not recommend learning Redux in 2021. I think React and how state is managed has come a long way since then.
2021 Recommendation:
Complete React Developer in 2021 (w/ Redux, Hooks, GraphQL)
https://www.udemy.com/share/101WH4AkMZd1daQQ==/
Before starting to work on my new startup I wanted to refresh myself on the latest React tools so I took this course last year and I highly recommend it no matter how confident you feel about React.
Back End Development: Node.js + Express + MongoDB
Learning Node was the toughest part of this whole curriculum. I had never run a local server before or interfaced with an API. I took multiple Node + Back End related classes to pound the same info into my brain until I got it.
I think it took 3–4 times of seeing the same thing explained by different people for me to finally start to get a sense of it.
The Course I Took:
The Complete Node.js Developer Course (3rd Edition)
https://www.udemy.com/share/101WGiAkMZd1daQQ==/
Node with React: Fullstack Web Development
https://www.udemy.com/share/101WPmAkMZd1daQQ==/
This specific course was a turning point for me. It was the first time I was able to put together a front end that interacted with an API that I wrote and I saw the whole thing come together.
I used many of the base templates provided in these courses to complete my FreeCodeCamp projects.
2021 Recommendation: Swap MongoDB for PostgreSQL
I never used MongoDB or any non-relational DBs at my job. We use FirestoreDB in our startup but if I was going to do this all over again I would’ve built projects and taken the time to learn a tried and true relational database.
I’d also look for a course on a Node framework like NestJS.
The Strategy
I completed every single lesson on FreeCodeCamp and didn’t skip a single lesson even if I felt as though I knew that certain subject.
After I completed the Responsive Web Design Projects I started the Front End Development Libraries Certification in tandem with the Udemy class mentioned above.
I completed each of the Front End Development Projects using jQuery then did them over again using React.
I did the same things for the API and Microservices Projects section and built each of the projects using Node.
Putting It All Together | Portfolio Projects
In my first post, I mentioned that I hired a tutor 2 times a week during this learning period. Our sessions were extremely valuable because I asked him to treat me like a junior developer at a company and hold me accountable for my tasks.
After two months of learning, we decided that it was time to put everything together and come up with an ambitious but achievable project.
For each of my portfolio full-stack projects, we also decided to add some ancillary skills that were necessary for developers to learn.
GitHub — Version Control
Version control is an important part of being a developer because you’re usually going to be working with a team. Github is the most popular tool to manage your codebase and feature updates to your application.
It’s also a great way to showcase the projects you have built.
You can create a free account here — https://github.com/.
For each main project, we created a new repository, created new branches for new tasks + features, and did code reviews before merging any changes with the master branch.
This experience was imperative in making me immediately employable.
Jira — Project Management | Feature Planning
Another overlooked part of learning how to code is project planning and management. Building an application from scratch is no easy task. More often than not a project gets stalled or run into issues due to a lack of planning.
For my main application, I set up a new project inside of Jira and scoped out the whole project. I separated tasks by features and used it as a chance to write requirements and define exactly what a feature was supposed to do.
If something I built wasn’t sufficient my tutor would fail the code review so I could do the task over again.
I recommend learning about project management along your journey to becoming a developer.
Summary | TLDR;
- I designed a curriculum for a single goal: Find a job as a Web Developer.
My curriculum would’ve looked vastly different if my end goal was focused on something other than employment. I didn’t have a massive runway to learn everything I wanted to so the curriculum was optimized around being employable as quickly as possible. - I focused on popular technologies that employers were looking for and found a platform that provided a track I could follow to learn the topics in my predetermined curriculum.
Learning How to Learn: https://www.coursera.org/learn/learning-how-to-learn
Main Platform: FreeCodeCamp — https://www.freecodecamp.org/ - I paired the sections with specific online courses to deepen my understanding as I went through it:
JavaScript Fundamentals: WatchAndCode — https://watchandcode.com
React/Redux: Udemy — https://www.udemy.com/share/101WH4AkMZd1daQQ==/
Node.js: Udemy — https://www.udemy.com/share/101WPmAkMZd1daQQ==/
React/Redux + Node: Udemy — https://www.udemy.com/share/101WPmAkMZd1daQQ==/ - Once I had enough small projects under my belt and I completed the curriculum in FreeCodeCamp I built full-stack projects using the technologies I learned while adding other important skills developers should know like version control (Github) and project management (Jira).
- During this period I met with a tutor 2 times a week to hold me accountable to weekly learning goals and help me understand complex topics that were hard for me to grasp on my own.
I plan on writing more about my journey in tech, building a company, learning, and lifestyle design as I continue towards my lofty goal of helping advance our civilization through technology.
Please let me know in the comments if you have any questions. I’d be more than happy to help you if you’re planning on doing something similar.
Much love ✌️.
Follow me on Twitter for more information about self-learning, wealth building, and lifestyle design. ➡ https://twitter.com/TimKimMe