… was the phrase I googled many times when I was starting to learn how to code. Once I typed these words and hit enter, I got hundreds of results, each recommending different learning path to pursue. This was really intimidating for me because I had no idea as an absolute beginner which resources to choose.
…there were (and still are) so many choices and opinions on how to effectively learn JavaScript.
Should I believe all of those who are writing articles about this topic on various sites and blogs?
Should I believe all of those who are writing articles about this topic on various sites and blogs?
Who are they anyway? ... experts,
beginners or do they even know how to code? Should I believe unknown individuals who express
their views in the forums?
Should I believe all those opinions claiming 'this is the right way to learn JavaScript' which can be found on a variety of sites offering paid online courses? Do these sites really want to help me to learn or they just want to sell their product?
What should I do?
I guess that obvious reply to all my concerns is: 'Just google it, dude.'
It's true that you can google all of these issues. But it will make your search for the right learning path only little bit easier. Again, you'll find tons of opinion and reviews. All of them written by the people with different backgrounds. So, it will be challenging to choose which opinion are the best for you.
In the end, you'll be back in the situation described at the beginning of this post - you don't know which resources to choose.
A couple of months ago, I was in this situation too. There were so many options and I had no idea where to begin...
It's true that you can google all of these issues. But it will make your search for the right learning path only little bit easier. Again, you'll find tons of opinion and reviews. All of them written by the people with different backgrounds. So, it will be challenging to choose which opinion are the best for you.
In the end, you'll be back in the situation described at the beginning of this post - you don't know which resources to choose.
A couple of months ago, I was in this situation too. There were so many options and I had no idea where to begin...
If you are starting to learn programming, I bet you are dealing with similar questions as I did back then.
I am writing this post to help you find the right answers based on my own experience. Because my aim is not to overwhelm you with resources, as the whole internet does (!), I will only mention resources that I studied from and only those I consider as the best ones for beginners. Moreover, I will organize them in a order I deem they should be studied. If I had studied these resources in that order from the beginning, I am sure that my learning process would have been faster and more effective.
Probably you are now asking yourself a
question: 'Why should I believe this
guy?'
My answer is: 'Well, you don’t have to.' I just want to share with you one
possible way of learning JavaScript which stems from my personal experience. I
want to share with you resources that helped me (and are still helping) significantly
on my way to become a web developer. I hope they will help you as well.
Just take it or leave it!
A I mentioned, choosing the right resources to learn from in
the field of web development might be challenging, especially for an absolute
beginner. I presume that you don’t want to invest significant sum
of money (e.g. bootcamps), so I am going to talk only about books and online
courses which are affordable.
The problem with books and online courses about web
programming for beginners in general is that they are not written or made by
beginners themselves (I know that this last sentence sounds weird, but just keep reading!). This simply means that authors of these books and courses have
different perspective than someone who is only a beginner. In other words, they
will almost always presume that you already have some knowledge about
programming.
The problem is that every one of us knows different stuff than the others. I have experienced this myself a couple of times and it was kind of frustrating because I was not sure if the programming was so difficult or I was just dumb. In fact I was only lacking some basic knowledge that the author presumed I had.
The problem is that every one of us knows different stuff than the others. I have experienced this myself a couple of times and it was kind of frustrating because I was not sure if the programming was so difficult or I was just dumb. In fact I was only lacking some basic knowledge that the author presumed I had.
Because I don’t want you to have similar experience,
I am sharing with you a list of JavaScript resources. They are organized in the order, I
consider understandable if you are starting as an absolute beginner in web development.
- The Web Development Bootcamp (online course)
- this course is for anyone who wants to learn about web development, regardless of previous experience
- this course covers not only front-end technologies (HTML, CSS and JavaScript) in detail, its second part also covers back-end stuff(Node.js, Express.js, MongoDB, deploying) as well
- what I love about this course is that the instructor explains all the important concepts in a very accessible way and offers exercises with solutions as well
- Jon Duckett – HTML & CSS (book)
- if you feel that you need more HTML and CSS knowledge, I recommend this book as a companion to the mentioned course (however I don’t consider it necessary)
- the layout of the book is visually appealing and the language is easy to understand
- this book is really targeted at beginners without a technical background, and it does an exceptional job in serving this audience
- this book is one of the best resources for understanding the basics of JavaScript language and serves well as a companion to the course
- it is great for the visual learners, as just about every remotely difficult concept is illustrated in detail with helpful notes
- if you consider books with lot of text boring, you will love this book even more
- all of the code examples found in the book are available online for you to follow along, and every line of code is explained in clear detail
- Free Code Camp (online course)
- this course offers tons of exercises - it starts with HTML, CSS and JavaScript exercises separately and then it will take you through the range of projects where you combine all these languages together and create some cool and useful web apps
- you will also deep dive into algorithms along the way
- it offers front-end exercises and back-end as well
- I encourage you to combine it with the already mentioned resources – remember the best way how to learn to code always means BUILDING PROJECTS
- Anthony Alicea - JavaScript: Understanding the Weird Parts (online course)
- this course will take you further into the JavaScript realm
- it explains what happens under the hood of the JS in a very beginner-friendly way
- this course will cover advanced concepts such as objects and object literals, function expressions, prototypical inheritance, functional programming, scope chains, function constructors (plus new ES6 features), immediately invoked function expressions (IIFEs), call, apply, bind, and more
- what you'll learn in this course will also improve your abilities in Javascript-based technologies such as Angular.js or React.js
- Kyle Simpson – You Don’t know JavaScript (book series)
- these books serve as a great companion to the Weird Parts course since they also offer explanation of more advanced JS concepts
- however, they cover advanced JS concepts in more depth and are thus more comprehensive than the Weird Parts course
- plus they’re free!
- 6 books in the series:
- Up & Going: By learning the basic building blocks of programming, as well as JavaScript’s core mechanisms, you’ll be prepared to dive into the other, more in-depth books in the series.
- Scope & Closures: Covers closure primarily, which is one of the most important foundational topics of JavaScript.
- this & Object Prototypes: Covers the mystery of how the this keyword works, and then tackles the misconception that JS has classes. Instead, JavaScript has prototype delegation, and we should embrace that rather than trying to fake class orientation.
- Types & Grammar: Goes deep into coercion mechanism. I encourage you to dig into it and learn it, because coercion can help improve your code if you learn how to use it properly.
- Async & Performance: Explains why callbacks for async programming are insufficient, then goes deep into promises and generators as much better async patterns. Also covers optimizing and benchmarking JS performance.
- ES6 & Beyond: Covering all the changes to JS coming in ES6, as well as forward looking to beyond-ES6 evolution on the horizon.
The key to learn anything in programming and beyond is always to combine different
resources.
Don’t believe those who claim that a single book or a single course can
teach you everything you need to know about web development! This would be a huge mistake because you will be tempted to follow only one single
perspective which might not be the right one for you (or not the right one for
anyone).
If you like this post, or if you have any suggestions or critique, feel free to write a comment below. I would greatly appreciate it.