It varies vastly depending on your level of familiarity with JavaScript and Computer Science, your purpose (for learning? for building web-based games? app?)
Here are the 3 resources that I started with when I started learning JavaScript:
- JavaScript on Mozilla Developer Network : great references, search friendly, good tutorials and explanations.
- JavaScript : The Definitive Guide by David Flanagan: considered the Bible for JavaScript developer since 1996. Latest version also covers HTML5, ES5.
- JavaScript : The Good Parts by Douglas Crockford: you’ll be amaze by the insights and depth of this short book. Don’t believe me? Try this infamous example by open Chrome Developer Console and type:
0.1 + 0.2 == 0.3
. Now come back and read this book.
If you are new to JavaScript, I would totally recommend visit the first 3 resources and ensure you are aware of these concepts:
- Functional vs. Object-Oriented in JavaScript:
- Closure: what are closures, lexical scope, callback?
- Prototype & inheritance: what is it, why it matters, common mistakes, traps and gotchas with prototypal inheritance.
- Modular pattern in JavaScript (think RequireJS)
- Browser compatibility (heck yes, you can’t escape it even in 2017): ES5, ES6, ES7 ?
If you are familiar with JavaScript, here are some general purpose frameworks that I recommend:
- NodeJS: enough said about NodeJS: it’s suitable for full-stack development, wildly popular, well-supported, lots of resources and countless of available packages & development tools.
- AngularJS: MVC framework from Google to let you build SPA (Single Page Applicable) in no time. Good support from Google & the community, fast to learn, easy to test.
And then there are some libraries (not technically frameworks), but would be fun to play around with them:
- KnockoutJS: lightweight library, model-oriented, sort of MVVM to me, observables & computed properties are really nice though it lacks a strong middle-tier.
- ReactJS: good separation of concern, easy to build modular, reusable components for front-end (like window-based programming on steroids), mobile-friendly, fast (built by and used at Facebook).
- jQuery: mature, lightweight, fast for basic DOM modifications with very simple syntax and not too steep learning curve.
I would be able to recommend better if you can share what you want to achieve after learning these frameworks
John an experienced IT specialist with over a decade of experience in the industry. He holds a Bachelor’s degree in Computer Science and has worked in various positions, including software developer, system administrator, and network engineer. John’s expertise includes cloud computing, cybersecurity, and data analytics. He has completed numerous certifications in these areas and is highly knowledgeable in the latest technologies and trends.