



… was th e 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 res ources 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?

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 res ources 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.



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. 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.





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. 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!





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. 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(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.





At the beginning, you just don’t know what you don’t know.











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.







Web Developer Bootcamp





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







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







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



the best way how to learn to code always means BUILDING PROJECTS I encourage you to combine it with the already mentioned resources – remember







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







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.



