Reflections on Full Stack Open

One of my goals for the year was to gain experience developing web apps. Given the sea of information and rapidly changing technologies, I wanted to find an online course that can provide direction and structure in getting started. My requirements for the course were:

  • Full stack development
  • Variety of challenging exercises and projects
  • Preferably text-based instead of a video course, so that I can dive into documentation and videos at my own time

Full Stack Open by University of Helsinki

In my search for a web development course, many free and paid courses came up highly rated. I decided on Full Stack Open as it fulfils all my requirements, is free and recommended for students with some programming, database and git knowledge. Excited, I dove right in and completed it over the course of 3-4 months.

Course structure

The course has a total of 13 parts, its base curriculum consisting of 7 parts:

  1. Introduction to React
  2. Communicating with server
  3. Programming a server with NodeJS and Express
  4. Testing Express servers and user administration
  5. Testing React apps
  6. Advanced state management
  7. React router, custom hooks and styling

For each part, there were readings interspersed with about 20 exercises for us to apply the concepts in our own mini web applications.

What I liked about the course

The course was really informative and well structured. I particularly enjoyed the exercises, which were well balanced in difficulty; difficult enough so that it was challenging but not too difficult that they were frustratingly unsolvable. The readings were well paced and built on top of each part. Correspondingly, the exercises were spaced across individual sub-parts to reinforce our knowledge through application (really helpful for retention).

Here’s an example of a blog listing page I built throughout the exercises:

I also valued the course’s emphasis on testing. Prior to this, I hadn’t used testing frameworks and mostly hard-coded my own tests for school projects. The course introduces test-driven development and testing tools such as Supertest for backend testing, React Testing Library for component testing, and Playwright for end to end testing. Learning these tools has helped to improve the quality of my code and (potentially) catch issues earlier.

Lastly, I liked that the course provides relevant tips and best practices for web development. This included introduction to useful plugins and updates on current trends amongst others. For example, here’s the developer’s oath repeated several times throughout the course

Final thoughts

Overall, Full Stack Open has been a valuable learning experience – It has greatly improved my understanding of web apps and I’d recommend it to anyone who’s interested in exploring the MERN stack. Alongside the course, I was coding a web server in C++, and the knowledge I gained about web development directly helped in the project. In the coming months, I hope to explore the course’s additional parts covering TypeScript, React Native, CI/CD, and more.

Leave a Reply

Your email address will not be published. Required fields are marked *