Advanced React Course

Last week I had the great opportunity to join a group of React-enthusiasts at a course ran by Michael Jackson and Ryan Florence. 

ePQr9sK (1)
ePQr9sK (1)

Michael Jackson at React London meetup.

I had previous knowledge of React basics but I thought it would be good to get a bit more in-depth understanding of how this framework works and what way it can be used. As we all probably know by know, learning a new framework is always tricky. No matter how many amazing online tutorials we read and cool videos we watch, we can always use a bit of personal advice. Otherwise we can end up like this kid when we think we got it and by the time our app seems safe to release, we realise we didn’t get it at all:

The compulsory gif - courtesy of thecodinglove.com

Who Ran It

Unfortunately Ryan didn’t make it all the way to the training due to misunderstanding with a customs’ officer and different definitions of “work” in terms of visa. That left Michael doing a job of two people at once and I must say he managed with flying colours.

Michael Jackson (who started the training by saying “no I’m not dead”) has a great background for giving this sort of a course. Having contributed to a number of great JS libraries and created React Router, he not only knows how to make things work. He could tell us “why” things should be done in certain ways and where the main strengths of React lie - and that’s something one normally doesn’t get from online tutorials or self-study hackathons.

What It Looked Like

I expected two days of listening to how React works, a lot of theory and maybe a little bit of coding. I was pleasantly surprised to find out that assumption was wrong. Michael’s course was amazingly prepared in detail, including 14 chapters of lectures (that we could code along with), exercises, solutions, and hints to lead us through the journey of getting solid understanding of React. The interactive lectures gave us a great opportunity to get a hands-on practise and exercises helped us gain the confidence that we can use these principles in our own day-to-day work.

What I learnt

As a developer who’s obsessed with performance, I really loved learning about rendering optimisation, especially when displaying a huge amount of data. Mobile developers have this covered by UITableView but we need to come up with our own solutions on the web. Rendering just what you see at any given moment using less than 100 lines of code seemed pretty magical!

Another bit that I found really interesting was covering data flow. I’ve been using Redux and Flux previously but never really understood the underlying principles. Thanks to this diagram, a great lecture and a step-by-step exercise, I finally understood why it’s such an amazing idea.

Courtesy of Facebook

It’s simple (even if it takes a little time to get intuition for the whole process) and effective, and that is one of those things all programmers love.

Last but not least, we tried animating things with the Motion library. I was sad not to be able to try it out on an older Android phone to get a feeling how useful it could be in production where you have to support all sorts of crazy devices and browsers, but playing with animation is always nice, and somehow this joy increases when I code just to see how things work and not to solve a “real world” problem.

The End

I suppose all that is left to be said is - it was awesome! I wish the difficulty level was a little higher so I could learn more but I do appreciate it’s difficult to balance this out in such a varied group of developers. It was fun to speak with the other trainees, see how very different experiences we can have while using the same piece of technology. (Not to mention the procrastination recommendations we exchanged such as 2048.)

Besides, attending this sort of training isn’t here for us just to learn new things but also to support the creators of open source code and their amazing products. I’d definitely recommend everyone to join in one of these.

Red Badger runs a React User Group in London, sign up here for updates on our next meetup.