Head First JS and YDKJS

After I got my first certificate from FreeCodeCamp, I considered reading some books about programming in JavaScript while I was learning Data Visualization, aimed to enhance my understanding of the main concepts and tools in JS.

I run some searches on the internet, especially on FCC forum, and found a lot of good reviews and recommendations for the ‘You Don’t Know JavaScript’ series, which was written by Kyle Simpson, spread over six books, and covers all topics from fundamental ones to the most advanced.

I began this series and completed the first book quickly as it’s just introduces general basic concepts in programming, like variables, loops, arrays, conditional statements, etc.
The second one was titled ‘Scoop and Closures,’ which discuss the rules that JS compile follows to determine where and how a variable in your code can be looked-up, and how a function is able to remember and access its scope even when it’s executing outside it (and this is a Closure).
However, as I read in this book I felt that my level in JS didn’t allow me to learn these concepts as well as I should have, so I decided to pause and look for something that suits my knowledge.

Several years ago I heard about ‘Head First’ books from O’Reilly, which explain popular programming languages in a brain-friendly style for beginners. I remembered when one of my friends recommended this series to me as the best place I can start learning with it; thus I bought a paper copy of ‘Head First, JavaScript programming’ and launched a new journey with it.

Even though it seems like a huge book (670 pages), especially for a non-native English reader, it is written in simple and plain language, as small paragraphs, so you’ll not get bored with it, and it’s supported by a ton of examples, exercises (like JS crossword!), pictures, jokes and games.

The most important thing about this book is that it explains every single point you need to know in order to understand the complicated concepts like Scopes, Closures, Prototypes and so on.
After I read these chapters, I returned to the other sources which I had read before but didn’t understand them due to their intensity. I was surprised and thought ‘Oh! Now I understand what they are talking about!’.
So the strong points of ‘Head First JS’ is its ability to grasp your gaps in JavaScript and uses enjoyable chapters and exercises to achieve this goal.

I returned to the YDKJS series after this book, completed the second one and started with the third. Now I can see that it’s more in-depth and more informative than Head First, but it’s difficult to begin learning JS from it without any previous experience or general understanding.

So if you want to start learning JS, I recommend ‘Head First JavaScript Programming’ as your first book, however, if you have the basic ideas and concepts and you want to navigate further in its details, go ahead with the free and fantastic series YDKJS.