Deep Dive… learning a new way to express myself
It might seem to be a litle bit too late, but… it’s never late to learn something new.
And before trying to repeat myself, “first of all, I am no professional developer. I am an enthusiast developer”. I like to learn new technologies in order to keep up with my work and be able to really understand what’s inside the box, how difficult things are and what’s really needed in order to build a piece of software in real world.
So I decided to learn about this thing that i’ve been hearing a lot in during, let’s say, 5-6 years… ReactJS. The thing is that I was never tempted to learn a new framework that uses Javascript. I have some experience with Python, and therefore, for me it was easier to go with Flask when creating a web application or API. However, Without havign much experience in JavaScript, I decided to take the leap and enroll in the Full-Stack Open Course - Deep Dive Into Modern Web Development offered for free online by the University of Helsinki.
The course it’s not only about ReacJS. In fact, in my opinion, it would be very underrated if we tag it as “yet one more React course”. The course serves as an introduction to modern web application development, which happens to be in the context of JavaScript and ReacJS to build Single Page Applications or SPA with ReactJS that use REST APIs built with Node.js. As I said, it’s not only about ReactJ. The course has a full module to build a complete API from the ground-up with Node and Express.
In te case of React, it not only shows you how to build an app, but also best practices on how to build an app making you follow an incremental path build functionality for your piece of software. It also focus on how to use some, not all (my only complain about the course), of the most important React Hooks available with the new non-classes approach after v16.8. It also gives special attention to using Redux for storing and managing the application’s local state data, something critical in an SPA approach. It also shows topics such as configuration and environment management. It provides you best practices on how to sharpen your toolingin diving into some of the best tools and practices to ease the development process such as linters, NPM packages and VS Code editor extensions. Finnally, the course also covers the use of non-sql databases like MongoDB, and the Mongoose wrapper which was something absolutely new for me. But not only that, it covers important, and maybe in some cases forgotten aspects like various kinds of Testing and Test Driven Develpment or TDD.
The core of the course consists of 7 modules (actually the original 5 and 2 more sections added later):
- Fundamentals of Web apps
- Introduction to React
- Communicating with server
- Programming a server with NodeJS and Express
- Testing Express servers, user administration
- Testing React apps
- State management with Redux
- React router, custom hooks, styling app with CSS and webpack
The course is complemented with various sections that cover important aspects like: GraphQl, CI/CD, Containers.. and yes, the much needed module (in my opinion) that covers TypeScript which is the Microsfot solution to Javascript provide syntax for types, and control your code in the editor, not in runtime.
My path
I just finalized the 2022 version of the course, Parts 1 to 7. Now entering the rest of the modules.
In my experience, I really enjoyed the practical approach of incrementally building the technical parts needed in order to construct your app features, with exercises building on top of previous ones. So this is a total W !!! I have taken a few MOCs online and overall, this course garantees great quality to learn the concepts of modern web development with Javascript, ReactJS and NodeJS.
So definetely yes, I recommend taking this course !!! … to those without many programming experience and also, to those with a solid background, but have no experience with React/NodeJS but want to give it a try.
Special mention
I would love to give special mention to MiduDev, a developer from Spain that has the courage and magnificent teaching skills to create, and share for free GREAT content in spanish. You can have access to the Bootcamp FullStack Gratuito: Javascript, React.js, GraphQL… covering the topics of the Fullstack Open Course. This was for me a great companion to learn and get even more from the course.
Disclaimer: Don’t expect to have a link to browse my exercise solutions here, I pretend to respect the code of conduct.