Beginning React

Published on:
Dec. 11, 2017

So I’m working on this Bingo App, right? If you’ve read any previous posts on this blog, you already know that. If you haven’t, that link goes straight to a working prototype. Try it out! Let me know what you think.

Anyway, the prototype is still missing some pretty important features. It doesn’t even alert you when you get bingo. To make an alert like this obviously requires some Javascript, and so far I’ve only used vanilla JavaScript and jQuery in any of my front ends. While these tools would definitely suffice to make an alert message, I thought this was a good opportunity to learn a front end framework.

I decided to go with ReactJS because an extension, React Native, allows the creation of mobile apps using similar features as what you use in the webapps. Eventually I hope to make a native mobile version of the Bingo App that interacts with the same database API as the web app.

Learning Resources

When I learned Django I started with the tutorial official documentation. With react, I picked up a course on Udemy in one of their $10 sales. I’ve done a couple edX courses now and I thought I’d give one of their competitors a shot.

I did the Complete React JS course by Igneus Technologies. In retrospect there are a few warning signs on the course page that should have alerted me to some things, but in the moment I wanted to learn ReactJS and this course was on sale for $10. They got my impulse buy money.

Also in retrospect I’m not sure the Udemy platform really fits my learning style, but how do you know until you try?

Udemy – The Good and The Bad

Udemy has a wide variety of courses on all kinds of topics. They frequently run sales so many of their courses can be bought extremely cheaply or gotten for free via various promotions. Udemy’s Android app allows you to download course videos and materials to take with you on the go so you don’t have to use up your mobile data. All that’s pretty sweet.

What I didn’t realize about Udemy when I bought this course was that the courses are heavily comprised of videos. Unfortunately this doesn’t really jive with how I learn best. Particularly when it comes to programming tutorials and courses it’s very convenient to be able to linger on examples that are new and skim examples that are already familiar.

With a video course I found myself watching a lot of it on 1.25 or 1.5x speed, and then having to watch the meaty bits over and over in order to get enough time with new patterns. Typing along with videos may work well for some, but I prefer videos that summarize concepts and written examples when things get specific and/or complicated.

Complete React JS Course

The Complete React JS Course itself hit on a wide variety of topics. In particular I liked the optional materials on ECMAScript 2015 (AKA ECMAScript 6 or ES6). These were a great summary of language features that came in handy many times when dealing with callback functions, promises, etc. in React components. The course also introduced a few different data stores, APIs, and authentication systems. It exposed me to a lot of app-building technologies that I wouldn’t have found otherwise.

The breadth did seem to come at the expense of depth. While the Complete React JS Course did introduce a lot of technologies, it didn’t explore any of them very deeply. The structure of the course involved building 10 very small, very shallow one-page apps that each introduced a new API or tool. I feel like the course spent a lot of time on things other than React for being called a ReactJS course.

Perhaps if the course had introduced only one authenticaiton sytem and one API, there would have been time to go more in-depth about component organization and keeping track of dynamic state. The course didn’t really introduce anything new that was React specific after the first few projects.

Overall I have to give this course a 2/5. I bought this course to learn React. Instead, I learned a little about React, a little about Firebase, a little about Auth0, and a little about Router. I would much rather know a lot about React and nothing about most of those other things. 2/5 is a bit harsh for a $10 course maybe, but the full price is $200. I definitely recommend against paying that much for this course.

What Now?

Now I guess I still need to learn how to make a complex app in React. If anyone has any tips or recommendations please let me know. Until then I’ll be going back to the drawing board and working through the official tutorial. To the docs!