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 69571e1..5222423 100644 --- a/README.md +++ b/README.md @@ -1,92 +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) - -## JavaScript Path - -### :books: List of books to master JavaScript Development +:books: List of books to master JavaScript Development ## Contents - 1. [Essential Path](#essential-path) 1. [Additional Resources](#additional-resources) -1. [How to use this list](#how-to-use-this-list) +1. [How to Use This List](#how-to-use-this-list) +1. [Project Based](#project-based) 1. [Contributing](#contributing) ## Essential Path - -Topic | Books | Price -:-- | :-- | :--: -Basic JavaScript | [Eloquent JavaScript](http://eloquentjavascript.net/) | :free: -Tooling | [JavaScript Application Design](https://www.manning.com/books/javascript-application-design) | :moneybag: -ES6 | [Exploring ES6](http://exploringjs.com/es6/) | :free: -Testing | [JavaScript Testing Recipes](http://jstesting.jcoglan.com/) | :moneybag: -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) | :moneybag: -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: +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 ## Additional Resources - -### General Concepts - -Books | Price -:-- | :--: -[Secrets of the JavaScript Ninja](https://www.manning.com/books/secrets-of-the-javascript-ninja) ([second edition](https://www.manning.com/books/secrets-of-the-javascript-ninja-second-edition)) | :moneybag: -[Effective JavaScript](http://effectivejs.com/) | :moneybag: -[You Don't Know JS](https://github.com/getify/You-Dont-Know-JS) | :free: -[JavaScript: The Good Parts](http://shop.oreilly.com/product/9780596517748.do) | :moneybag: -[Professional JavaScript for Web Developers, 3rd Edition](http://www.wrox.com/WileyCDA/WroxTitle/Professional-JavaScript-for-Web-Developers-3rd-Edition.productCd-1118222199.html) | :moneybag: -[Speaking JavaScript](http://speakingjs.com/es5/) | :free: -[JavaScript: The Definitive Guide, 6th Edition](http://shop.oreilly.com/product/9780596805531.do) | :moneybag: - -### ES6 - -Books | Price -:-- | :--: -[Understanding ECMAScript 6](https://leanpub.com/understandinges6/read/) | :free: +### 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 + +### 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 + +### 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: | - + +### Browser Development +Books | Price | Release +:-- | :--: | :--: +[DOM Enlightenment](http://domenlightenment.com/) | :free: | February 2013 ### Testing +Books | Price | Release +:-- | :--: | :--: +[JavaScript Testing Recipes](http://jstesting.jcoglan.com/) | :moneybag: | March 2014 +[Test-Driven JavaScript Development](http://tddjs.com/) | :moneybag: | September 2010 -Books | Price -:-- | :--: -[Test-Driven JavaScript Development](http://tddjs.com/) | :moneybag: -[Behaviour Driven Development with JavaScript](http://www.amazon.com/Behaviour-Driven-Development-JavaScript-introduction-ebook/dp/B00CYMN3J2) | :moneybag: +### 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 ### Functional Programming - -Books | Price -:-- | :--: -[Mostly Adequated Guide to Functional Programming](https://drboolean.gitbooks.io/mostly-adequate-guide/) | :free: -[Functional JavaScript](http://shop.oreilly.com/product/0636920028857.do) | :moneybag: +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 -Books | Price -:-- | :--: -[The Principles of Object-Oriented JavaScript](http://shop.oreilly.com/product/9781593275402.do) | :moneybag: +### 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 -Books | Price -:-- | :--: -[High Performance JavaScript](http://shop.oreilly.com/product/9780596802806.do) | :moneybag: +### Workflow +Books | Price | Release +:-- | :--: | :--: +[JavaScript Application Design](https://www.manning.com/books/javascript-application-design) | :moneybag: | January 2015 -## How to use this list +## 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**. -Start with the first book, and after finish it, go down to the next one. Repeat this process until you finish all books. :smile: +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 practical project after you finish each book. +**PROTIP**: try to **create** and **deploy** at least one real project after you finish each book. -## Contributing +## Project Based +In order to show for everyone that you successfully finished a book, you should create a new project. + +> "What does it mean?" -> "Can I submit more books?" +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. -**Yes!** If you want to suggest a new book, just open an issue and tell us which book we should add here. +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. -**OBS**: After **10** people approve (:+1:) your suggestion, the book will be included in our list. +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)!