With so many different programming languages, frameworks, databases, web servers, and other buzz words out there, knowing how everything fits together can be overwhelming.

When I first learned web development, I was also confused about which programming language to start, which framework to study, which database engines I should use, as well as how to scale my server if my application grew and the site started getting lots of traffic.

In this article, I will share an analogy I’ve used in my teaching career that seemed to really help people understand what happens behind the scene for a web server…


Photo by WTFast on Unsplash

To understand why there are so many frameworks, tools, and libraries for developers to use, consider the following analogy:

Imagine first that you’re in a video game world. In this world, there are 7 clans. When you play the game, you must first pick which of the 7 clans you’re going to start the game with. For example, the choices are “elf, “dwarf”, “human”, “orc”, etc. (edited)

So say you decided to play the game as an elf.

Once you level up (say to level 20), you can start driving a car. There are dozens of cars you can choose…


Photo by Bram Naus on Unsplash

Over the last 10 years, I have coached and worked directly with over 1,000 students, whom I have taught directly or indirectly through Coding Dojo. Coding Dojo now has a great team of career advisors who help with students and their resume preparation, but I wanted to take some time to reflect on what lessons I’ve learned as I’ve helped my own students find jobs.

Why you need a 10x resume

You may already be familiar with a 10x concept where in the software space, great developers are known to be 10 times more efficient/productive than an average developer. A resume is similar. A mediocre resume…


An array is where you can store multiple values: typically series of numbers or strings.

For example, in Javascript, say that you have an array called x.

let x = [10, 15, 5, 7];

This array contains four numbers.

A way to think of an array is to imagine a cabinet with multiple drawers. Imagine that the first drawer of this cabinet has a sticky note that says “0”. Once you open that drawer with the note “0”, inside, say you find a value of “10”.

A visual illustration below:

Imagine that the second drawer of this cabinet has a…


Photo by Scott Graham on Unsplash

Since 2011, I have coached a lot of my former students at Coding Dojo on how to improve their resume. A few simple changes could dramatically improve the number of interview requests one gets, often from less than one interview request a week to several interview requests per day.

Here are the top resume tips you should follow.

Tip #1: Don’t use tables or multiple columns in your resume

A lot of resumes are parsed and screened through the Applicant Tracking System (ATS) first. These parsers/programs don’t know how to parse a resume with tables or multiple columns. Never use tables or multiple columns in your resume.

Tip #2: Add at least 30–40 technology keywords

In your skillsets section…


Photo by Dino Reichmuth on Unsplash

As I coach a lot of my students, I also hear from them what type of interview questions they were asked and how to better prepare for these interviews.

One of the topics I’ve been hearing quite a bit is about hiring managers asking questions specific to SOLID principles for Object-Oriented Programming and whether my students understood how to apply these principles.

For those who are not familiar with SOLID principles, it refers to 5 design principles: S for Single Responsibility, O for Open/closed principle, L for Liskov substitution principle, I for Interface segregation principle, and D for dependency inversion…


Photo by Joanna Kosinska on Unsplash

Learning data structures could be difficult for someone new to coding. It does help a new coder understand the power of recursion and Object Oriented Programming in driving more efficiency out of your system.

For example, imagine that you installed a new operating system and starting the operating system took 10 minutes for the system to load. If a developer you know can make the operating system start in 30 seconds instead, wouldn’t you be stoked?

Similarly, if you installed a desktop application and it took 5 minutes to do a complex computation and on the next version update, the…


Photo by İsmail Enes Ayhan on Unsplash

A lot of my students, as they go through interviews in their career, they often get questions about how they would design an app that does X, Y, and Z. Based on X, Y, Z, they would need to have good reasons about which programming language they would use, which framework they would use, which database they would use, which micro-services they would create, if there will be APIs and if so what language will be used to create the APIs, and if there would be any front-end frameworks and if so what they would use.

I’ve thought about this…


About 10 years ago when I first learned about ORM (object-relational mappers), I was so stoked. In the past, for any web applications I’ve built with a relational database, I had to write lots of SQL queries. This became annoying especially when a lot of the information I needed from the database was simple select statements and it was tiring to type out all the SQL queries for everything I needed for my app. I would copy and paste different SQL queries and make minor tweaks for different features. This was mundane, repetitive, and extremely boring.

Then, when I learned…


This is the second part of the Ikea store analogy and how to set up a web application such that it can handle an infinite amount of traffic.

First of all, if you haven’t read the first part of the article, please read that first. The analogy will make a lot more sense once you’ve read the first article about HTTP request/response and where the Ikea store analogy is introduced.

Back to the Ikea store analogy

Imagine that at our Ikea store, there is a big issue all of a sudden. Your store became so popular that there are tens of thousands of people visiting your…

Michael Choi

Educator and entrepreneur

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store