For the first review on my blog I thought it was important to try and cover material that you would most likely be looking at as someone new to, and interested in, React. I hope that in this way I can be of some use when you’re making the decision about where your “hard earned” is best spent.
With this in mind I pulled up my local friendly Amazon search, typed in “react.js” and prime’d myself the first hit on the list, React.js Essentials by Artemij Fedosejev (Here’s a link for the UK readers 😉).
Overall I was pretty pleased with my purchase and if you are in the right stage of your React journey I believe this book can be extremely valuable to you. Let’s talk about why I think this book could deserve space on your technical shelf.
Who is this book for?
The book begins instructing the reader on how to create a very primitive build pipeline with gulp. The next 6 chapters gradually build a react application which integrates with twitter APIs to show a stream of public images posted to twitter. In the closing chapters testing is covered using Jest before finally the reader is walked through the Flux pattern and shown how to refactor the app to use it.
Based on this content, in my opinion, this book is going to be perfect for someone who has completed their first “Hello World” application in react but then not done much else. This someone would have an extremely ground level understanding of react and a goal of solidify that understanding whilst going a little deeper without going so far as to start feeling of their brain melting out of their ears!
The book did a great job of providing an all round solid foundation of knowledge. Based on the knowledge you gain I’m sure you could walk away feeling confident that you can competently build a react application. Note, however, I didn’t say “enterprise application”. You get a foundation of knowledge here, but you won’t be mastering the framework using this book alone. Having said that it is an excellent place to allow you to start building applications yourself and learn by actually cutting coding.
Who this book isn’t for
There are two types of reader this book probably isn’t for. The first is anyone who has an in depth knowledge of Flux and how it works. The reason for this is, let’s face it, flux is the most complex topic in this book. If you already know how it works then my guess is that you have all the requisite knowledge of react to understand the pattern. In that case, this book probably wont teach you a whole lot you don’t already know.
Although I must say, if you spend a lot of time in ES6 classes and JSX and have long ago left behind the shackles of the plain old react function calls then you might find it can be good to go back to basics for a refresher. Remembering how the underlying tech works can help you to write better components.
I certainly found that throughout the book I had a few “Oh yeah?! I forgot about that!” moments which redoubled my understanding of the apps I was building with all the syntactic sugar of ES6 and JSX. I will say though; if you have the disposable income and time to read a book purely to look for these few “eureka moments” then you can consider me envious.
Whilst the author does a good deal of hand holding throughout the book it is called “React.js Essentials” not “React.js for Beginners”. So I feel that if you read this book without at least a very cursory knowledge of react then you run the risk that some of the more valuable points may end up getting lost on you.
Things I didn’t like about this book
I had to try really hard to find things I didn’t like this book. Even after spending some time thinking about it the only things I could really think of were fairly superficial.
I didn’t like the chapter on testing. Although I do like the practice of testing! The thing I didn’t like was that the author went for the safe play of using Jest as the testing framework. I think that this was an attempt to guard him using a framework that would eventually drop out of favour thus making that chapter of the book useless.
From that perspective I completely understand, and it’s probably a smart more to bet on Facebook’s own testing framework! But I do think that he could have at least mentioned to the reader that other options were out there.
Advertising alternatives would have also been beneficial when the reader was walked through setting up the gulp pipeline. There are plenty of other technologies (grunt, webpack, heck plain old npm tasks) that could have been mentioned. I’m not suggesting that he should have instructed the reader on how to use each and every one of these but at least they could have been mention. The reader could have been at least given a clue that there was a whole wide world to discover with regards to these areas.
Finally I didn’t like that there was no reference at all to using ES6 with React, although this may have added some complexity, and maybe this is why it was avoided, I think that maybe a chapter towards the end covering some of the more useful elements as they pertain to React would have been a welcome edition.
Things I did like about this book
First and foremost I really liked the way that this author writes. It’s very well suited to technical writing. He is fairly direct and to the point without being boring. I wouldn’t exactly call his tone conversational but it certainly isn’t a difficult read.
As for the actual content, I very much liked the way that the author presented the code examples. He begins by presenting all the code that you need to follow along with in an example file as one big chunk. The author is obviously aware that you’re then going to mindlessly copy all that down in one hit and not really think about it. So, to make sure that you are taking in what’s important about each chunk of that code he breaks it up and goes over it again explaining the why each chunk is significant as he goes.
Another thing that I liked about the code was that at the end of the book you are left with a solid little code base that you can use to refer back to as you venture out into the React world on your own. This sort of thing is invaluable for consolidating your learning.
The final thing I’ll say that I liked was that the author had the forethought to set up a github repository for the book so that as the book ages and the technology evolves the readers of the book are able to raise issues on the github repository as sort of a living errata. I used this once whilst reading the book and I found that there were a number of people active on the repo which was helpful.
Is it good or what?!
The short answer to this question is yes, it is good.
There are lots of reasons to like this book, which I’ve listed above. The few things that I laboured over when trying to find things that were wrong with this book can be boiled down to, essentially, it didn’t go deep enough. In the author’s defense though, he never really promised any sort of deep dive. The book was only intended to teach the essentials and, in my opinion, it does this very.
So if you fit into the categories in the “Who is this book for” section then I’d strongly recommend picking this book up. I think this was a pleasant read and might help you to consolidate your understanding of React if you are a competent beginner or intermediate.
So all in all I’d say, well done Artemij!
Did you like the sound of this book? Why not pick up a copy of Amazon?