diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..c7f6c03 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,13 @@ +# Contributing + +> "Can I submit more books?" + +**Yes!** If you want to suggest a new book, just open an issue and tell us which book we should add here, and in which section. + +**OBS**: After **2** people approve (:+1:) your suggestion, the book will be included in our list. + +> "Can I suggest a new book for the Essential Path" + +**Yes!** But keep in mind that we will maintain just **one book** for each topic. If the book that you are suggesting is from a topic that we already have, we will change the previous book with the one suggested by you. + +**OBS**: After at least **20** people approve (:+1:) your suggestion, the book and/or the new topic will be included in our list. diff --git a/README.md b/README.md index 85b95ad..5222423 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,114 @@ -# JavaScript Society +# JavaScript Path +[![JavaScript Path](https://img.shields.io/badge/JavaScript%20Society-JavaScript%20Path-green.svg?style=flat-square)](https://github.com/javascript-society/javascript-path) +![License MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square) -![javascript logo](http://i.imgur.com/7S2hN2F.jpg) +:books: List of books to master JavaScript Development -## JavaScript Path +## Contents +1. [Essential Path](#essential-path) +1. [Additional Resources](#additional-resources) +1. [How to Use This List](#how-to-use-this-list) +1. [Project Based](#project-based) +1. [Contributing](#contributing) -### :books: List of books to master JavaScript Development +## Essential Path +Topic | Books | Price | Release +:-- | :-- | :--: | :--: +Learn JavaScript | [Eloquent JavaScript, 3rd Edition](http://eloquentjavascript.net/) | :free: | September 2018 +Functional Programming | [Mostly Adequate Guide to Functional Programming](https://mostly-adequate.gitbook.io/mostly-adequate-guide/) | :free: | - +Asynchronous Programming & Performance 1st Edition| [You Don't Know JS: Async & Performance](https://github.com/getify/You-Dont-Know-JS/blob/1st-ed/async%20&%20performance/README.md#you-dont-know-js-async--performance) | :free: | February 2015 +ES6 | [Exploring ES6](http://exploringjs.com/es6/) | :free: | June 2015 +Tooling | [Setting up ES6](https://leanpub.com/setting-up-es6/read) | :free: | January 2016 -Topic | Books | Price -:--: | :--: | :--: -Basic JavaScript | [Eloquent JavaScript](http://eloquentjavascript.net/) | `free` -Tooling | [JavaScript Application Design](https://www.manning.com/books/javascript-application-design) | `paid` -ES6 | [Exploring ES6](http://exploringjs.com/es6/) | `free` -Testing | [JavaScript Testing Recipes](http://jstesting.jcoglan.com/) | `paid` -DOM | [DOM Enlightenment](http://domenlightenment.com/) | `free` -Functional Programming | [JavaScript Allongé, the "Six" Edition](https://leanpub.com/javascriptallongesix/read) | `free` -Object-Oriented Programming | [JavaScript Spessore](https://leanpub.com/javascript-spessore/read) | `free` -Async Programming | [Async JavaScript](https://pragprog.com/book/tbajs/async-javascript) | `paid` -Design Patterns & Architectures | [Learning JavaScript Design Patterns](http://www.addyosmani.com/resources/essentialjsdesignpatterns/book/) | `free` -Single Page Application |[Single page apps in depth](http://singlepageappbook.com/) | `free` -Practical Project | [Building A JavaScript Framework](https://s3.amazonaws.com/dailyjs/files/build-a-javascript-framework.pdf) | `free` -Practical Project | [Building Front-End Web Apps with Plain JavaScript](https://oxygen.informatik.tu-cottbus.de/webeng/JsFrontendApp/book/) | `free` -Practical Project | [Human JavaScript](http://read.humanjavascript.com/) | `free` +## Additional Resources +### Learn JavaScript +Books | Price | Release +:-- | :--: | :--: +[Speaking JavaScript](http://speakingjs.com/es5/) | :free: | February 2014 +[Professional JavaScript for Web Developers, 3rd Edition](http://www.wrox.com/WileyCDA/WroxTitle/Professional-JavaScript-for-Web-Developers-3rd-Edition.productCd-1118222199.html) | :moneybag: | December 2011 +[JavaScript: The Definitive Guide, 6th Edition](http://shop.oreilly.com/product/9780596805531.do) | :moneybag: | April 2011 -## How to use this list? +### Going Deep +Books | Price | Release +:-- | :--: | :--: +[JavaScript: The Good Parts](http://shop.oreilly.com/product/9780596517748.do) | :moneybag: | May 2008 +[Secrets of the JavaScript Ninja, Second Edition](https://www.manning.com/books/secrets-of-the-javascript-ninja-second-edition) | :moneybag: | August 2016 (estimated) +[Effective JavaScript](http://effectivejs.com/) | :moneybag: | December 2012 +[You Don't Know JS](https://github.com/getify/You-Dont-Know-JS) | :free: | - +[Programming JavaScript Applications](http://chimera.labs.oreilly.com/books/1234000000262/index.html) | :free: | June 2014 -Start with the first book, and after finish it, go down to the next one. Repeat this process until you finish all books. :smile: +### ES.next +Books | Price | Release +:-- | :--: | :--: +[Exploring ES2016 and ES2017](https://exploringjs.com/es2016-es2017.html) | :free: | - +[Understanding ECMAScript 6](https://leanpub.com/understandinges6/read/) | :free: | - -**PROTIP**: try to **create** and **deploy** at least one practical project after you finish each book. +### Browser Development +Books | Price | Release +:-- | :--: | :--: +[DOM Enlightenment](http://domenlightenment.com/) | :free: | February 2013 -## Can I submit more books? +### Testing +Books | Price | Release +:-- | :--: | :--: +[JavaScript Testing Recipes](http://jstesting.jcoglan.com/) | :moneybag: | March 2014 +[Test-Driven JavaScript Development](http://tddjs.com/) | :moneybag: | September 2010 -Probably not. Why? Because our intention is to keep just one book for each major topic about the JavaScript language, but we encourage you to read more books about such topics. +### Design Patterns +Books | Price | Release +:-- | :--: | :--: +[Learning JavaScript Design Patterns](http://www.addyosmani.com/resources/essentialjsdesignpatterns/book/) | :free: | July 2012 +[JavaScript Patterns](http://shop.oreilly.com/product/9780596806767.do) | :moneybag: | September 2010 -If you think that a book that you have read is better than the one that was listed here, you can open an issue and we will discuss it. +### Functional Programming +Books | Price | Release +:-- | :--: | :--: +[JavaScript Allongé, the "Six" Edition](https://leanpub.com/javascriptallongesix/read) | :free: | - +[Functional JavaScript](http://shop.oreilly.com/product/0636920028857.do) | :moneybag: | June 2013 + +### Object-Oriented Programming +Books | Price | Release +:-- | :--: | :--: +[The Principles of Object-Oriented JavaScript](http://shop.oreilly.com/product/9781593275402.do) | :moneybag: | February 2014 + +### Asynchronous Programming +Books | Price | Release +:-- | :--: | :--: +[Async JavaScript](https://pragprog.com/book/tbajs/async-javascript) | :moneybag: | November 2012 + +### Performance +Books | Price | Release +:-- | :--: | :--: +[High Performance JavaScript](http://shop.oreilly.com/product/9780596802806.do) | :moneybag: | March 2010 + +### Workflow +Books | Price | Release +:-- | :--: | :--: +[JavaScript Application Design](https://www.manning.com/books/javascript-application-design) | :moneybag: | January 2015 + +## How to Use This List +Start with the first book of the [Essential Path](#essential-path), and after finish it, read the next one. Repeat this process until you finish all books from the **Essential Path**. + +After you complete the Essential Path, you should keep studying! Just choose one book listed in our [Additional Resources](#additional-resources) section. You don't need to read those books in such section in order, you should pick the one that you are more interested! :smile: + +**PROTIP**: try to **create** and **deploy** at least one real project after you finish each book. + +## Project Based +In order to show for everyone that you successfully finished a book, you should create a new project. + +> "What does it mean?" + +After finish a book, you should think about a **real world** problem that you can solve using the acquired knowledge in such book. You don't need to create a big project, but you must create something to **validate** and **consolidate** your knowledge, and also to show to the world that you are capable to create something useful with the concepts that you learned. + +The projects of all students will be listed in our [JavaScript Projects](https://github.com/javascript-society/javascript-projects) repository. Submit a pull request with your project's information after you start/conclude it. + +You can create this project alone or with colleagues! + +### Project Suggestions +- [JavaScript Projects](https://github.com/javascript-society/javascript-projects): List of projects related with the JavaScript Path. +- [FreeCodeCamp](http://www.freecodecamp.com/): Course that teaches you fullstack JavaScript development through a bunch of projects. +- [Projects](https://github.com/karan/Projects): A list of practical projects that anyone can solve in any programming language. +- [app-specs](https://github.com/ericdouglas/app-specs): A curated list of applications' specifications and implementations to practice new technologies, improve your portfolio and sharpen your skills. + +## Contributing +See our contributing guidelines [here](CONTRIBUTING.md)!