├── LICENSE ├── README.md └── study-path ├── agile ├── README.md ├── agile-coach-study-path.md └── agile-study-path.md ├── languages ├── README.md ├── java │ └── README.md ├── javascript │ ├── README.md │ ├── angular │ │ └── README.md │ └── vuejs │ │ └── README.md ├── kotlin │ └── README.md ├── php │ └── README.md ├── ruby │ └── README.md ├── scala │ └── README.md └── swift │ └── README.md ├── microservices └── README.md └── tools ├── README.md ├── cli └── README.md ├── docker └── README.md └── git └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 XPeppers 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Starway to Orione: the Orione Team Learning Path 2 | 3 | This is the learning path every new developer has to follow when joining the XPeppers team. 4 | 5 | This path reflects our team's culture and values, which have their roots in the [agile values and principles](http://agilemanifesto.org/), as well as in those of XP, and in the [software craftsmanship manifesto](http://manifesto.softwarecraftsmanship.org/). 6 | 7 | Please feel free to fork and contribute, add materials, fix the existing ones and propose new stuff. 8 | 9 | ## Main learning path 10 | 11 | ### 1) Methodology 12 | * Flat Organizations: 13 | * [The Flat Way](https://link.medium.com/E4kjMXajO3) ```#onboarding``` 14 | * [Teal Is The New Black: Self-management and the future of work](https://management30.com/blog/teal-organization-self-management-future-of-work/) 15 | * [Collaborative decision making in self-organizing teams](https://www.agilebusinessday.com/2019/09/26/collaborative-decision-making-in-self-organizing-teams-abd19-lorenzo-massacci/) 16 | * Read chapters 1, 4, 5, 7 of [XP Explained](https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0201616416) ```#onboarding``` 17 | * Read chapters 2, 6 of [XP Explained](https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0201616416) 18 | * Iterative and Incremental Development: 19 | * [Waterfall](https://condor.depaul.edu/dmumaugh/readings/handouts/IS375/IIDI.pdf) ```#onboarding``` 20 | * [Agile](https://condor.depaul.edu/dmumaugh/readings/handouts/IS375/IIDII.pdf) ```#onboarding``` 21 | * [Transition](https://condor.depaul.edu/dmumaugh/readings/handouts/IS375/IIDIII.pdf) 22 | * For __italian speakers__, Watch ["Perché è così difficile fare Extreme Programming"](https://vimeo.com/113090009) by Matteo Vaccari ```#onboarding``` 23 | * [Pair Programming](https://martinfowler.com/articles/on-pair-programming.html) ```#onboarding``` 24 | * Agile Mindset: 25 | * [What Exactly is the Agile Mindset?](https://www.infoq.com/articles/what-agile-mindset/) ```#onboarding``` 26 | * Read [The Pomodoro Technique](http://pomodorotechnique.com/) paper 27 | * Read first chapter of ["Applying UML and Patterns"](http://www.amazon.com/Applying-UML-Patterns-Introduction-Object-Oriented/dp/0131489062) 28 | * Try to estimate the time needed to study that chapter (using the pomodoro technique) 29 | * Answer (for example on the team's wiki pages) 30 | * What is analysis? 31 | * What is design? 32 | * What's the difference between them? 33 | * What is design for? 34 | * in other words, how would you reply to the following statement: _"I just need to understand what to do (analysis) and then do it (coding). Everything else does not matter!"_ 35 | 36 | ### 2) Testing and TDD 37 | 38 | * Read chapter 9 ```"The Three Laws of TDD"``` of [Clean Code](http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) ```#onboarding``` 39 | * Read [Test Driven Development: By Example](https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530) 40 | * Watch the Clean Code Talks series: these four videos (and the related blogpost series) are really valuable to learn how to design for testability. 41 | 42 | 1. Watch ["The Clean Code Talks - Unit Testing" video](http://www.youtube.com/watch?v=wEhu57pih5w) (~ 30 minutes) [[slides](https://docs.google.com/presentation/d/1mZsq0WljEfgIR9Df_IcW0VQfNl-Pk_cEBR3i9id-eR4/present#slide=id.i0)]. Then read [his blogpost](http://misko.hevery.com/2008/11/04/clean-code-talks-unit-testing/). ```#onboarding``` 43 | 44 | 2. Watch ["The Clean Code Talks - Inheritance, Polymorphism, & Testing" video](https://www.youtube.com/watch?v=4F72VULWFvc) (~ 40 minutes). Then read [his blogpost](http://misko.hevery.com/2008/12/08/clean-code-talks-inheritance-polymorphism-testing/) (there you can find the slides too). ```#onboarding``` 45 | 46 | 3. Watch ["The Clean Code Talks - Don't Look For Things!" video](https://www.youtube.com/watch?v=RlfLCWKxHJ0) (~ 35 minutes) which talks about the Dependency Injection pattern. Then read [his blogpost](http://misko.hevery.com/2008/11/11/clean-code-talks-dependency-injection/) (there you can find the slides too). 47 | 48 | 4. Watch ["The Clean Code Talks - "Global State and Singletons" video](https://www.youtube.com/watch?v=-FRm3VPhseI) (~ 55 minutes). Then read [his blogpost](http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/) (there you can find the slides too). 49 | 50 | 5. For each video you watched, write a short post (e.g. on your public [gist](https://gist.github.com/)) on 51 | * what you learned 52 | * what puzzled you most? 53 | 54 | 6. Read Miško Hevery's guide on ["Writing Testable Code"](http://misko.hevery.com/code-reviewers-guide/) 55 | * Watch [Lets Play on TDD](http://www.jamesshore.com/Blog/Lets-Play) by James Shore 56 | * For __italian speakers__, Piergiuliano Bossi's [screencasts on TDD](https://www.youtube.com/channel/UCKu3XCVh7pe06khn4N1uCiQ) are a good starting point: there are five basic lessons and a final video on emergent design. 57 | * Do the [Sales Kata](https://github.com/xpeppers/sales-taxes-problem) in TDD ```#onboarding``` 58 | * Extra: Follow the [The World's Best Intro to TDD](http://online-training.jbrains.ca/p/wbitdd-01) by J. B. Rainsberger 59 | 60 | ### 3) Clean code 61 | 62 | * Read the article [Keep It DRY, Shy, and Tell the Other Guy](http://media.pragprog.com/articles/may_04_oo1.pdf) ```#onboarding``` 63 | * Read the article [You Aren't Gonna Need It](http://wiki.c2.com/?YouArentGonnaNeedIt) 64 | * Tell Don't Ask principle 65 | * read the article [Tell, Don't Ask](http://archive.is/Bk10R/) 66 | * read the article [The Art of Enbugging](http://media.pragprog.com/articles/jan_03_enbug.pdf) 67 | * Do the [Kata String Calculator](https://github.com/xpeppers/string-calculator-kata) 68 | * Read first ten chapters of [Clean Code](http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) 69 | * [SOLID principles](http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod) ```#onboarding``` 70 | * [SRP: Single Responsibility Principle](https://docs.google.com/open?id=0ByOwmqah_nuGNHEtcU5OekdDMkk) 71 | * [OCP: Open-Closed Principle](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en) 72 | * [LSP: Liskov Substitution Principle](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en) 73 | * [ISP: Interface Segregation Principle](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en) 74 | * [DIP: Dependency Inversion Principle](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en) 75 | * Start the [Racing Car Katas](https://github.com/emilybache/Racing-Car-Katas) ```#onboarding``` 76 | * find SOLID violations 77 | * Read [Names objects after things, not actions!](http://matteo.vaccari.name/blog/archives/743) by Matteo Vaccari 78 | * Watch Venkat Subramaniam's talk about ["Core Design Principles for Software Developers"](https://www.youtube.com/watch?v=llGgO74uXMI) ```#onboarding``` 79 | * Read [The Pragmatic Programmer](https://pragprog.com/book/tpp/the-pragmatic-programmer) 80 | * Watch [Is SOLID A Good Idea](http://vimeo.com/20388419) 81 | * Watch [Responsive Design](http://www.infoq.com/presentations/responsive-design) 82 | * Extra: Follow the [__"Clean coders"__](http://cleancoders.com/) screencasts by Robert C. Martin 83 | 84 | ### 4) Refactoring 85 | 86 | * Watch [Martin Fowler @ OOP2014 "Workflows of Refactoring"](https://www.youtube.com/watch?v=vqEg37e4Mkw) 87 | * Read first three chapters of [Refactoring: Improving the design of existing code](http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672) ```#onboarding``` 88 | * Watch [Testing and Refactoring Legacy Code](https://www.youtube.com/watch?v=_NnElPO5BU0) 89 | * [Example Code](https://github.com/sandromancuso/trip-service-kata) 90 | * Try the [GildedRoseKata](https://github.com/joebew42/GildedRose) ```#onboarding``` 91 | * Code Coverage 92 | * Code Refactoring 93 | * Add the new feature 94 | * Try the [TennisRefactoringKata](https://github.com/emilybache/Tennis-Refactoring-Kata) (find code smells) 95 | 96 | ### 5) TDD and "Friends" 97 | 98 | * Read [The Four Elements of Simple Design](http://www.jbrains.ca/permalink/the-four-elements-of-simple-design) ```#onboarding``` 99 | * [How to Write Clean, Testable Code](https://www.youtube.com/watch?v=XcT4yYu_TTs) 100 | * [Good Design is Easily-Learned](http://blog.scottbellware.com/2009/01/good-design-is-easily-learned.html) 101 | * Try to learn and repeat these Katas autonomously 102 | * [TheBowlingGameKata](http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata) 103 | * [TheRomanNumeralsKata](https://web.archive.org/web/20180602202843/http://www.codekatas.org/casts/roman-numerals-kata-with-audio-commentary) ([video](https://www.youtube.com/watch?v=vX-Yym7166Y)) 104 | * Read the first eight chapters of [Growing Object Oriented Software, Guided by Tests](http://www.growing-object-oriented-software.com/) 105 | * [Mocks Aren't Stubs](http://martinfowler.com/articles/mocksArentStubs.html) 106 | * Encapsulation e Information Hiding: 107 | * http://www.natpryce.com/articles/000498.html 108 | * http://c2.com/cgi/wiki?EncapsulationIsNotInformationHiding 109 | * Read [Overcoming the one weakness of OOP](http://blogs.ugidotnet.org/luKa/archive/2015/01/20/overcoming-the-one-weakness-of-oop.aspx) 110 | * Read [Object Calisthenics](http://williamdurand.fr/2013/06/03/object-calisthenics/) 111 | * Read about the [Practical Test Pyramid](https://martinfowler.com/articles/practical-test-pyramid.html) 112 | * Watch [Ian Cooper - TDD, where did it all go wrong](http://vimeo.com/68375232) 113 | * Watch [J.B. Rainsberger - Integrated Tests Are A Scam](http://vimeo.com/80533536) 114 | * Watch [Sandro Mancuso - Testing and Refactoring Legacy Code](https://www.youtube.com/watch?v=_NnElPO5BU0) 115 | * Watch [Sandro Mancuso - Crafted Design](http://vimeo.com/101106002) 116 | * Watch [Mock Roles Not Object States](http://www.infoq.com/news/2008/08/Mock-Roles-Pryce-and-Freeman) - [Paper](http://jmock.org/oopsla2004.pdf) 117 | 118 | ### 6) Hexagonal architecture 119 | 120 | * Read https://web.archive.org/web/20170916120520/http://alistair.cockburn.us/Hexagonal+architecture ```#onboarding``` 121 | * Read http://matteo.vaccari.name/blog/the-hexagonal-architecture 122 | * Read http://matteo.vaccari.name/blog/archives/154 123 | * Read http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid 124 | * Read http://c2.com/cgi/wiki?HexagonalArchitecture 125 | 126 | ### 7) Systems architecture 127 | 128 | * Read chapters about Stability 3, 4, 5 and Capacity 8, 9, 10 of [Release It!](https://pragprog.com/book/mnee/release-it) ```#onboarding``` 129 | 130 | ## Beyond Software Development 131 | 132 | ### 1) Becoming a "full-stack" Agile Developer 133 | * Watch [7 minutes, 26 seconds, and the Fundamental Theorem of Agile Software Development](https://www.youtube.com/watch?v=WSes_PexXcA) by J.B. Rainsberger 134 | 135 | ### 2) Software development economics 136 | * Read chapter 3 ```"Economics of Software Development"``` of [XP Explained](https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0201616416) 137 | * Read chapter 7, section with title ```"Tools 22": Contracts``` of [Lean Software Development: An Agile Toolkit](https://www.amazon.com/Lean-Software-Development-Agile-Toolkit/dp/0321150783) 138 | 139 | ## Side learning paths 140 | * [Languages](study-path/languages) 141 | * [Tools](study-path/tools) 142 | * [On Microservices](study-path/microservices) 143 | * [An Agile Study Path](study-path/agile) 144 | 145 | ### Additional Bibliography 146 | * [__"Patterns of Enterprise Application Architecture"__](http://www.amazon.it/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420) by Martin Fowler 147 | * [__"Working Effectively with Legacy Code"__](http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052) by Micheal Feathers 148 | * [__"Understanding the Four Rules of Simple Design"__](https://leanpub.com/4rulesofsimpledesign) by C.Haines 149 | 150 | ### Other honorable learning paths 151 | * [JoeBew's Study Path](https://github.com/joebew42/study-path)! 152 | -------------------------------------------------------------------------------- /study-path/agile/README.md: -------------------------------------------------------------------------------- 1 | # Agile Path 2 | * [An agile basic learning path](agile-study-path.md) 3 | * [An agile coach learning path](agile-coach-study-path.md) 4 | -------------------------------------------------------------------------------- /study-path/agile/agile-coach-study-path.md: -------------------------------------------------------------------------------- 1 | This study path has been organized and divided into the following **_competence areas_** of an agile coach: 2 | 3 | * Agile Coach Explained 4 | * Lean and Agile Practitioner 5 | * Teaching 6 | * Facilitation 7 | * Transformation 8 | * Pure Coaching 9 | * Business 10 | 11 | Moreover, to ease the creation of personal and customized study paths, we divided the **_competence areas_** in modules, from zero to hero. 12 | That way, students will be able to create their own study path mixing self assessment and proposed modules. 13 | 14 | Regardless of the competence area: [Workbook per Agile Coach](https://drive.google.com/file/d/0ByysWdfTp_ZGZjdFS0lya09LY0U/view?usp=sharing). 15 | 16 | 17 | # Agile Coach Explained 18 | * [Host Leadership introduction](http://www.infoq.com/articles/host-leadership-agile) 19 | * [Coaching Agile Teams](https://www.amazon.it/Coaching-Agile-Teams-Scrummasters-Transition/dp/0321637704/ref=sr_1_1?ie=UTF8&qid=1479310527&sr=8-1&keywords=coaching+agile+teams) 20 | * [Agile Coaching by Rachel Davies](https://www.amazon.it/Agile-Coaching-Rachel-Davies/dp/1934356433/ref=sr_1_2?ie=UTF8&qid=1479310586&sr=8-2&keywords=agile+coaching) 21 | * [Host Leadership](http://www.amazon.com/Host-Mark-McKergow/dp/0954974980) 22 | 23 | 24 | ---------- 25 | 26 | ### Module #1 27 | 28 | * [Coaching Agile Teams - (Part I) Starts with you](https://www.amazon.it/Coaching-Agile-Teams-Scrummasters-Transition/dp/0321637704/ref=sr_1_1?ie=UTF8&qid=1479310527&sr=8-1&keywords=coaching+agile+teams) 29 | 30 | ### Module #2 31 | 32 | * [Agile Coaching by Rachel Davies - (Chapter I) Starting the Journey](https://www.amazon.it/Agile-Coaching-Rachel-Davies/dp/1934356433/ref=sr_1_2?ie=UTF8&qid=1479310586&sr=8-2&keywords=agile+coaching) 33 | * [Host Leadership introduction](http://www.infoq.com/articles/host-leadership-agile) 34 | 35 | ### Module #3 36 | 37 | * [Host Leadership - (Chapter 1) Time for a New Look at Leadership](http://www.amazon.com/Host-Mark-McKergow/dp/0954974980) 38 | * [Host Leadership - (Chapter 2) Hosting](http://www.amazon.com/Host-Mark-McKergow/dp/0954974980) 39 | * [Host Leadership - (Chapter 3) What do Hosts do?](http://www.amazon.com/Host-Mark-McKergow/dp/0954974980) 40 | 41 | ### Module #4 42 | 43 | * [Coaching Agile Teams - (Part II - Chapter 5) Coach as a Coach-Mentor](https://www.amazon.it/Coaching-Agile-Teams-Scrummasters-Transition/dp/0321637704/ref=sr_1_1?ie=UTF8&qid=1479310527&sr=8-1&keywords=coaching+agile+teams) 44 | * [Coaching Agile Teams - (Part II - Chapter 6) Coach as a Facilitator](https://www.amazon.it/Coaching-Agile-Teams-Scrummasters-Transition/dp/0321637704/ref=sr_1_1?ie=UTF8&qid=1479310527&sr=8-1&keywords=coaching+agile+teams) 45 | * [Coaching Agile Teams - (Part II - Chapter 7) Coach as a Teacher](https://www.amazon.it/Coaching-Agile-Teams-Scrummasters-Transition/dp/0321637704/ref=sr_1_1?ie=UTF8&qid=1479310527&sr=8-1&keywords=coaching+agile+teams) 46 | 47 | ### Module #5 48 | 49 | * [Coaching Agile Teams - (Part II - Chapter 8) Coach as a Problem Solver](https://www.amazon.it/Coaching-Agile-Teams-Scrummasters-Transition/dp/0321637704/ref=sr_1_1?ie=UTF8&qid=1479310527&sr=8-1&keywords=coaching+agile+teams) 50 | * [Coaching Agile Teams - (Part II - Chapter 9) Coach as a Conflict Navigator](https://www.amazon.it/Coaching-Agile-Teams-Scrummasters-Transition/dp/0321637704/ref=sr_1_1?ie=UTF8&qid=1479310527&sr=8-1&keywords=coaching+agile+teams) 51 | * [Coaching Agile Teams - (Part II - Chapter 10) Coach as a Collaboration Conductor](https://www.amazon.it/Coaching-Agile-Teams-Scrummasters-Transition/dp/0321637704/ref=sr_1_1?ie=UTF8&qid=1479310527&sr=8-1&keywords=coaching+agile+teams) 52 | 53 | ### Module #6 54 | 55 | * [Coaching Agile Teams - (Part III) Getting More for Yourself](https://www.amazon.it/Coaching-Agile-Teams-Scrummasters-Transition/dp/0321637704/ref=sr_1_1?ie=UTF8&qid=1479310527&sr=8-1&keywords=coaching+agile+teams) 56 | 57 | ---------- 58 | 59 | 60 | # Lean and Agile Practitioner 61 | ## Methods 62 | * [Extreme programming explained](https://www.amazon.it/Extreme-Programming-Explained-Embrace-Paperback/dp/B00M0DDNCW/ref=sr_1_1?ie=UTF8&qid=1479307174&sr=8-1&keywords=extreme+programming+explained+1999) 63 | * [The High Performance Tree](https://www.youtube.com/watch?v=t3kKechcwYM) 64 | * [Scrum guide](http://www.scrumguides.org/docs/scrumguide/v2016/2016-Scrum-Guide-US.pdf#zoom=100) 65 | * [Agile Product Management with Scrum](https://www.amazon.com/Agile-Product-Management-Scrum-Addison-Wesley/dp/0321605780) 66 | * [The art of agile development](https://www.amazon.it/Art-Agile-Development-James-Shore/dp/0596527675/ref=sr_1_1?ie=UTF8&qid=1479307219&sr=8-1&keywords=the+art+of+agile+development) 67 | * [Real-World Kanban: Do Less, Accomplish More with Lean Thinking](https://www.amazon.it/Real-World-Kanban-Less-Accomplish-Thinking/dp/1680500775/ref=sr_1_1?ie=UTF8&qid=1479307254&sr=8-1&keywords=real+world+kanban) 68 | * [Scrum and XP from the Trenches: How We Do Scrum](https://www.amazon.it/Scrum-XP-Trenches-How-We/dp/1430322640/ref=sr_1_2?ie=UTF8&qid=1479310277&sr=8-2&keywords=scrum+and+xp+from+the) 69 | * [Kanban in Action](https://www.amazon.it/Kanban-Action-Marcus-Hammarberg/dp/1617291056/ref=sr_1_1?ie=UTF8&qid=1479310249&sr=8-1&keywords=kanban+in+action) 70 | * [Extreme programming installed](https://www.amazon.it/Extreme-Programming-Installed-Ron-Jeffries/dp/0201708426/ref=sr_1_1?ie=UTF8&qid=1479307199&sr=8-1&keywords=extreme+programming+installed) 71 | 72 | ## Planning and user stories 73 | * [Using Both Incremental and Iterative Development](http://www.se.rit.edu/~swen-256/resources/UsingBothIncrementalandIterativeDevelopment-AlistairCockburn.pdf) 74 | * [Agile Estimating and Planning](https://www.amazon.it/Agile-Estimating-Planning-Mike-Cohn-ebook/dp/B004X1D3TC/ref=sr_1_1?ie=UTF8&qid=1479307236&sr=8-1&keywords=agile+estimating+and+planning) 75 | * [User Stories Applied: For Agile Software Development](https://www.amazon.it/User-Stories-Applied-Software-Development/dp/0321205685/ref=sr_1_1?ie=UTF8&qid=1479307423&sr=8-1&keywords=User+Stories+Applied) 76 | * [The Backlog](http://ronjeffries.com/articles/015-10/the-backlog/article.html) 77 | * [Fifty Quick Ideas to Improve your User Stories](https://www.amazon.it/Fifty-Quick-Improve-Stories-English-ebook/dp/B00OGT2U7M/ref=sr_1_1?ie=UTF8&qid=1479307462&sr=8-1&keywords=Fifty+Quick+Ideas+to+Improve+your+User+Stories) 78 | 79 | ## Discovery 80 | * [Agile Samurai](https://www.amazon.it/Agile-Samurai-Masters-Deliver-Software/dp/1934356581/ref=sr_1_1?ie=UTF8&qid=1479307512&sr=8-1&keywords=agile+samurai) 81 | * [Impact Mapping](https://www.amazon.it/Impact-Mapping-Software-Products-Projects/dp/0955683645/ref=sr_1_1?ie=UTF8&qid=1479307561&sr=8-1&keywords=impact+mapping) 82 | * [User Story Mapping](https://www.amazon.it/User-Story-Mapping-Discover-Product/dp/1491904909/ref=sr_1_1?ie=UTF8&qid=1479307494&sr=8-1&keywords=user+story+mapping) 83 | * [Liftoff](https://www.amazon.it/Liftoff-Start-Sustain-Successful-Agile/dp/1680501631/ref=sr_1_1?ie=UTF8&qid=1479307531&sr=8-1&keywords=liftoff) 84 | 85 | ## Mindset 86 | * [The agile mindset by Gil Broza](https://www.amazon.it/Agile-Mind-Set-Making-Processes-English-ebook/dp/B014CA3YKG/ref=sr_1_1?ie=UTF8&qid=1479308108&sr=8-1&keywords=the+agile+mindset+gil) 87 | * [The Power of an Agile Mindset - Linda Rising](https://www.youtube.com/watch?v=W47rcJowx7k) 88 | * [The Agile Mindset with Linda Rising](http://hanselminutes.com/389/the-agile-mindset-with-linda-rising) 89 | * [The Lean Mindset](https://www.amazon.it/Lean-Mindset-Ask-Right-Questions/dp/0321896904/ref=sr_1_1?ie=UTF8&qid=1479308131&sr=8-1&keywords=the+lean+mindset) 90 | * [Fearless change](https://www.amazon.it/Fearless-Change-Patterns-Introducing-Ideas/dp/0134395255/ref=sr_1_1?ie=UTF8&qid=1479308172&sr=8-1&keywords=fearless+change) 91 | 92 | ## Lean 93 | * [The new new product development game](https://hbr.org/1986/01/the-new-new-product-development-game) 94 | * [Toyota Kata](https://www.amazon.it/Managing-continuous-improvement-superior-results/dp/0071635238/ref=sr_1_1?ie=UTF8&qid=1479308308&sr=8-1&keywords=toyota+kata) 95 | * [Lean Software Development by Mary Poppendieck](http://www.amazon.com/Lean-Software-Development-Agile-Toolkit/dp/0321150783/ref=sr_1_1?s=books&ie=UTF8&qid=1339077989&sr=1-1) 96 | * [Implementing lean software development](https://www.amazon.it/Implementing-Lean-Software-Development-Addison-Wesley-ebook/dp/B00HNB3VQE/ref=sr_1_1?ie=UTF8&qid=1479308283&sr=8-1&keywords=implementing+lean+software+development) 97 | 98 | 99 | ---------- 100 | 101 | ### Module #1 102 | 103 | * [Extreme programming explained - (Chapter 4) Four Values](https://www.amazon.it/Extreme-Programming-Explained-Embrace-Paperback/dp/B00M0DDNCW/ref=sr_1_1?ie=UTF8&qid=1479307174&sr=8-1&keywords=extreme+programming+explained+1999) 104 | * [The High Performance Tree](https://www.youtube.com/watch?v=t3kKechcwYM) 105 | * [Using Both Incremental and Iterative Development](http://www.se.rit.edu/~swen-256/resources/UsingBothIncrementalandIterativeDevelopment-AlistairCockburn.pdf) 106 | * [The new new product development game](https://hbr.org/1986/01/the-new-new-product-development-game) 107 | * [Reprogramming Ourselves to Use Agile Well](https://www.youtube.com/watch?v=O-3F3rT4UdI) 108 | 109 | ### Module #2 110 | 111 | * [Scrum guide](http://www.scrumguides.org/docs/scrumguide/v2016/2016-Scrum-Guide-US.pdf#zoom=100) 112 | * [The agile mindset by Gil Broza - (Chapter 1) The big picture](https://www.amazon.it/Agile-Mind-Set-Making-Processes-English-ebook/dp/B014CA3YKG/ref=sr_1_1?ie=UTF8&qid=1479308108&sr=8-1&keywords=the+agile+mindset+gil) 113 | * [Kanban in Action - (Part I) Learning Kanban](https://www.amazon.it/Kanban-Action-Marcus-Hammarberg/dp/1617291056/ref=sr_1_1?ie=UTF8&qid=1479310249&sr=8-1&keywords=kanban+in+action) 114 | * [Kanban in Action - (Part II Understanding kanban - Chapter 2) Kanban principles](https://www.amazon.it/Kanban-Action-Marcus-Hammarberg/dp/1617291056/ref=sr_1_1?ie=UTF8&qid=1479310249&sr=8-1&keywords=kanban+in+action) 115 | 116 | ### Module #3 117 | 118 | * [Scrum and XP from the Trenches: How We Do Scrum](https://www.amazon.it/Scrum-XP-Trenches-How-We/dp/1430322640/ref=sr_1_2?ie=UTF8&qid=1479310277&sr=8-2&keywords=scrum+and+xp+from+the) 119 | 120 | ### Module #4 121 | 122 | * [Agile Product Ownership in a Nutshell](https://www.youtube.com/watch?v=502ILHjX9EE&t=1s) 123 | * [Agile Estimating and Planning - Part I](https://www.amazon.it/Agile-Estimating-Planning-Mike-Cohn-ebook/dp/B004X1D3TC/ref=sr_1_1?ie=UTF8&qid=1479307236&sr=8-1&keywords=agile+estimating+and+planning) 124 | 125 | ### Module #5 126 | 127 | * [User Stories Applied: For Agile Software Development - (Part I) Getting Started](https://www.amazon.it/User-Stories-Applied-Software-Development/dp/0321205685/ref=sr_1_1?ie=UTF8&qid=1479307423&sr=8-1&keywords=User+Stories+Applied) 128 | 129 | ### Module #6 130 | 131 | * [Agile Samurai - (Part II) Agile Project Inception](https://www.amazon.it/Agile-Samurai-Masters-Deliver-Software/dp/1934356581/ref=sr_1_1?ie=UTF8&qid=1479307512&sr=8-1&keywords=agile+samurai) 132 | 133 | ---------- 134 | 135 | 136 | # Teaching 137 | * [Why Learning 3.0](https://drive.google.com/open?id=0ByysWdfTp_ZGVU0yZmJWMlZ6RGc) 138 | * [Bikablo 2.0](https://www.amazon.it/Martin-Hausman-Holger-Scholz-Bikablo/dp/3940315052/ref=sr_1_fkmr0_3?ie=UTF8&qid=1479306279&sr=8-3-fkmr0&keywords=bikablo+3.0) 139 | * [Training from the back of the room](https://www.amazon.it/Training-BACK-Room-Aside-Learn/dp/0787996629/ref=sr_1_1?ie=UTF8&qid=1479308334&sr=8-1&keywords=training+from+the+back+of+the+room) 140 | * [For the Win: How Game Thinking Can Revolutionize Your Business](https://www.amazon.com/Win-Game-Thinking-Revolutionize-Business/dp/1613630239) 141 | 142 | 143 | ---------- 144 | 145 | ### Module #1 146 | 147 | * [Why Learning 3.0](https://drive.google.com/open?id=0ByysWdfTp_ZGVU0yZmJWMlZ6RGc) 148 | * [Esercitarsi a disegnare con Bikablo 2.0 prendendo spunto anche dai flipchart fatti in passato](https://www.amazon.it/Martin-Hausman-Holger-Scholz-Bikablo/dp/3940315052/ref=sr_1_fkmr0_3?ie=UTF8&qid=1479306279&sr=8-3-fkmr0&keywords=bikablo+3.0) 149 | 150 | ### Module #2 151 | 152 | * [Training from the back of the room - prima parte che spiega le 4C](https://www.amazon.it/Training-BACK-Room-Aside-Learn/dp/0787996629/ref=sr_1_1?ie=UTF8&qid=1479308334&sr=8-1&keywords=training+from+the+back+of+the+room) 153 | 154 | 155 | ---------- 156 | 157 | # Facilitation 158 | * [Collaboration Explained](https://www.amazon.it/Collaboration-Explained-Facilitation-Software-Development-ebook/dp/B001U5VJWC/ref=sr_1_1?ie=UTF8&qid=1479308375&sr=8-1&keywords=collaboration+explained) 159 | * [Facilitator's guide](https://www.amazon.it/gp/product/1118404955/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1) 160 | 161 | ## Retrospective 162 | * [Agile Retrospective by Diana Larsen](https://www.amazon.it/Agile-Retrospectives-Making-Teams-Great/dp/0977616649/ref=sr_1_1?ie=UTF8&qid=1479307584&sr=8-1&keywords=agile+retrospective) 163 | * [Project Retrospective](https://www.amazon.it/Project-Retrospectives-Handbook-Reviews-Dorset-ebook/dp/B00DY3KQJU/ref=sr_1_1?ie=UTF8&qid=1479307602&sr=8-1&keywords=project+retrospective) 164 | * [The Retrospective handbook by Patrick Kua](https://www.amazon.it/Retrospective-Handbook-guide-agile-teams/dp/1480247871/ref=sr_1_1?ie=UTF8&qid=1479307618&sr=8-1&keywords=retrospective+handbook) 165 | * [Guida alla retrospettiva](http://www.mokabyte.it/2014/04/retrospective-1/) (italian) 166 | 167 | 168 | ---------- 169 | 170 | ### Module #1 171 | 172 | * [Agile Retrospective by Diana Larsen - (Chapter 1) Helping Your Team Inspect and Adapt](https://www.amazon.it/Agile-Retrospectives-Making-Teams-Great/dp/0977616649/ref=sr_1_1?ie=UTF8&qid=1479307584&sr=8-1&keywords=agile+retrospective) 173 | * [Agile Retrospective by Diana Larsen - (Chapter 2) A Retrospective Custom-Fit to Your Team](https://www.amazon.it/Agile-Retrospectives-Making-Teams-Great/dp/0977616649/ref=sr_1_1?ie=UTF8&qid=1479307584&sr=8-1&keywords=agile+retrospective) 174 | * [Agile Retrospective by Diana Larsen - (Chapter 3) A Retrospective Custom-Fit to Your Team](https://www.amazon.it/Agile-Retrospectives-Making-Teams-Great/dp/0977616649/ref=sr_1_1?ie=UTF8&qid=1479307584&sr=8-1&keywords=agile+retrospective) 175 | * [Facilitator's guide - (Part I) Grounding Principles](https://www.amazon.it/gp/product/1118404955/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1) 176 | 177 | ### Module #2 178 | 179 | * [Guida alla retrospettiva](http://www.mokabyte.it/2014/04/retrospective-1/) 180 | * [Collaboration Explained - (Section I) Setting the Collaborative Context](https://www.amazon.it/Collaboration-Explained-Facilitation-Software-Development-ebook/dp/B001U5VJWC/ref=sr_1_1?ie=UTF8&qid=1479308375&sr=8-1&keywords=collaboration+explained) 181 | 182 | ### Module #3 183 | 184 | * [Facilitator's guide - (Part II Facilitator Fundamentals - Chapter 4) Facilitative Listening Skills](https://www.amazon.it/gp/product/1118404955/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1) 185 | 186 | ### Module #4 187 | 188 | * [The Retrospective handbook by Patrick Kua - (Chapter 1) Retrospective Fundamentals](https://www.amazon.it/Retrospective-Handbook-guide-agile-teams/dp/1480247871/ref=sr_1_1?ie=UTF8&qid=1479307618&sr=8-1&keywords=retrospective+handbook) 189 | * [The Retrospective handbook by Patrick Kua - (Chapter 2) Facilitating Retrospectives](https://www.amazon.it/Retrospective-Handbook-guide-agile-teams/dp/1480247871/ref=sr_1_1?ie=UTF8&qid=1479307618&sr=8-1&keywords=retrospective+handbook) 190 | 191 | ### Module #5 192 | 193 | * [Facilitator's guide - (Part II Facilitator Fundamentals - Chapter 5) Facilitative Listening Skills](https://www.amazon.it/gp/product/1118404955/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1) 194 | * [Facilitator's guide - (Part II Facilitator Fundamentals - Chapter 6) Facilitative Listening Skills](https://www.amazon.it/gp/product/1118404955/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1) 195 | * [Facilitator's guide - (Part II Facilitator Fundamentals - Chapter 7) Facilitative Listening Skills](https://www.amazon.it/gp/product/1118404955/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1) 196 | 197 | ---------- 198 | 199 | 200 | # Transformation 201 | * [Collaboration Explained - (Section II) Applying Collaboration](https://www.amazon.it/Collaboration-Explained-Facilitation-Software-Development-ebook/dp/B001U5VJWC/ref=sr_1_1?ie=UTF8&qid=1479308375&sr=8-1&keywords=collaboration+explained) 202 | * [Agile Transition](https://www.infoq.com/minibooks/Agile-Transition) 203 | * [An Agile Adoption and Transformation Survival Guide](https://www.infoq.com/minibooks/agile-adoption-transformation) 204 | * [The Reengineering alternative](https://www.amazon.it/gp/product/0071359818/ref=oh_aui_detailpage_o00_s01?ie=UTF8&psc=1) 205 | * [Lean Change Management by Jason Little](https://www.amazon.it/Lean-Change-Management-Innovative-organizational-ebook/dp/B00O580KUI/ref=sr_1_1?ie=UTF8&qid=1479308579&sr=8-1&keywords=lean+change+management) 206 | * [Switch: How to change things when change is hard](https://www.amazon.it/gp/product/1847940323/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1) 207 | 208 | ---------- 209 | 210 | ### Module #1 211 | 212 | * [Agile Transition](https://www.infoq.com/minibooks/Agile-Transition) 213 | 214 | ### Module #2 215 | 216 | * [An Agile Adoption and Transformation Survival Guide](https://www.infoq.com/minibooks/agile-adoption-transformation) 217 | 218 | ### Module #3 219 | 220 | * [The Reengineering alternative - (Chapter ?) ...](https://www.amazon.it/gp/product/0071359818/ref=oh_aui_detailpage_o00_s01?ie=UTF8&psc=1) 221 | 222 | ### Module #4 223 | 224 | * [Collaboration Explained - (Section II Applying Collaboration - Chapter 6) Preparing Yourself as the Process Owner](https://www.amazon.it/Collaboration-Explained-Facilitation-Software-Development-ebook/dp/B001U5VJWC/ref=sr_1_1?ie=UTF8&qid=1479308375&sr=8-1&keywords=collaboration+explained) 225 | * [Collaboration Explained - (Section II Applying Collaboration - Chapter 7) Preparing Participants for Collaboration](https://www.amazon.it/Collaboration-Explained-Facilitation-Software-Development-ebook/dp/B001U5VJWC/ref=sr_1_1?ie=UTF8&qid=1479308375&sr=8-1&keywords=collaboration+explained) 226 | * [Collaboration Explained - (Section II Applying Collaboration - Chapter 8) Setting the Collaborative Agenda](https://www.amazon.it/Collaboration-Explained-Facilitation-Software-Development-ebook/dp/B001U5VJWC/ref=sr_1_1?ie=UTF8&qid=1479308375&sr=8-1&keywords=collaboration+explained) 227 | 228 | ### Module #5 229 | 230 | * [Lean Change Management by Jason Little - (Chapter 1, 2, 3) Introduction](https://www.amazon.it/Lean-Change-Management-Innovative-organizational-ebook/dp/B00O580KUI/ref=sr_1_1?ie=UTF8&qid=1479308579&sr=8-1&keywords=lean+change+management) 231 | 232 | ---------- 233 | 234 | # Pure Coaching 235 | * [ICF Coaching Core Competencies](http://coachfederation.org/credential/landing.cfm?ItemNumber=2206) 236 | * [Effetto porcospino](https://www.amazon.it/Effetto-porcospino-segreto-costruire-eccellenti/dp/8896826918/ref=sr_1_1?ie=UTF8&qid=1479293549&sr=8-1&keywords=effetti+porcospino) (italian) 237 | * [Systemic team and organizational coaching by Alain Cardon](https://www.amazon.com/Systemic-Team-Organizational-Coaching-COLLECTION-ebook/dp/B00LUKTR12) 238 | * [Systemic Coaching and Constellations](https://www.amazon.it/gp/product/0749465379/ref=oh_aui_detailpage_o06_s01?ie=UTF8&psc=1) 239 | 240 | 241 | ---------- 242 | 243 | ### Module #1 244 | 245 | * [ICF Coaching Core Competencies](http://coachfederation.org/credential/landing.cfm?ItemNumber=2206) 246 | * Ascolto Empatico by Maturana (purtroppo non ho trovato riferimenti online di questo ma fa parte dei fondamenti, si trovano solo cose in spagnolo) 247 | * Approfondire le competenze come (feedback, partnership, fiducia, domande efficaci, distinzioni) (anche qui non trovo riferimenti) 248 | * Studiare almeno un metodo di coaching 249 | 250 | ### Module #2 251 | 252 | * [Effetto porcospino - (Parte 1) Un’introduzione sulla vita dei gruppi e dei team](https://www.amazon.it/Effetto-porcospino-segreto-costruire-eccellenti/dp/8896826918/ref=sr_1_1?ie=UTF8&qid=1479293549&sr=8-1&keywords=effetti+porcospino) 253 | 254 | ### Module #3 255 | 256 | * [Systemic team and organizational coaching by Alain Cardon - (Chapter 1) Systemic Team Coaching Context](https://www.amazon.com/Systemic-Team-Organizational-Coaching-COLLECTION-ebook/dp/B00LUKTR12) 257 | * [Systemic team and organizational coaching by Alain Cardon - (Chapter 2) Systemic Team Coaching](https://www.amazon.com/Systemic-Team-Organizational-Coaching-COLLECTION-ebook/dp/B00LUKTR12) 258 | 259 | 260 | ---------- 261 | 262 | # Business 263 | * [What is agile](http://www.forbes.com/sites/stevedenning/2016/08/13/what-is-agile/#520ed1134b92) 264 | * [Explaining Agile](http://www.forbes.com/sites/stevedenning/2016/09/08/explaining-agile/#218eda072ef7) 265 | * [How to Make the Whole Organization Agile](http://www.forbes.com/sites/stevedenning/2015/07/22/how-to-make-the-whole-organization-agile/#1ec274135ba5) 266 | * [Management 3.0](https://www.amazon.it/Management-3-0-Developers-Developing-Addison-Wesley-ebook/dp/B004ISL6JY/ref=sr_1_2?ie=UTF8&qid=1479308477&sr=8-2&keywords=management+3.0) 267 | * [Managing for Happiness](https://www.amazon.it/Managing-Happiness-Games-Practices-Motivate/dp/1119268680/ref=sr_1_1?ie=UTF8&qid=1479308492&sr=8-1&keywords=managing+for+happiness) 268 | * [Radical management](https://www.amazon.it/Leaders-Guide-Radical-Management-Reinventing/dp/0470548681/ref=sr_1_1?ie=UTF8&qid=1479308504&sr=8-1&keywords=radical+management) 269 | * [The Science of Successful Organizational Change](https://www.amazon.it/gp/product/0134000331/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1) 270 | 271 | 272 | ---------- 273 | 274 | ### Module #1 275 | 276 | * [What is agile](http://www.forbes.com/sites/stevedenning/2016/08/13/what-is-agile/#520ed1134b92) 277 | * [Explaining Agile](http://www.forbes.com/sites/stevedenning/2016/09/08/explaining-agile/#218eda072ef7) 278 | -------------------------------------------------------------------------------- /study-path/agile/agile-study-path.md: -------------------------------------------------------------------------------- 1 | 1) **The Agile Manifesto**: [http://agilemanifesto.org](http://agilemanifesto.org). 2 | Go read it. And [read the history](http://agilemanifesto.org/history.html) of why, and how, it came to be. Oh, and [don't skip the principles](http://agilemanifesto.org/principles.html). Then listen to [Agile Uprising's interviews of 13 of the 17 Manifesto signatories](http://podcast.agileuprising.com/manifesto-author-review/). 3 | 4 | 2) **Agile Product Ownership in a nutshell** [video](https://www.youtube.com/watch?v=502ILHjX9EE) by Henrik Kniberg (there's also a blogpost with a full transcription: http://blog.crisp.se/2012/10/25/henrikkniberg/agile-product-ownership-in-a-nutshell) 5 | 6 | 3) **The Scrum Guide**: [http://scrumguides.org](http://scrumguides.org) 7 | Jeff Sutherland and Ken Schwaber created Scrum in 1993/1995 (depending on whom you want to believe) and they don't hate each other anymore so The Scrum Guide has been consolidated after they split their efforts between Scrum Alliance and Scrum.org 8 | 9 | 4) **Kanban**: Read [Kanban: Successful Evolutionary Change for Your Business](http://www.djaa.com/kanban-successful-evolutionary-change-your-technology-business-0) by David Anderson. He was the first to write about using Kanban in software. While you're at it, read [Personal Kanban](http://personalkanban.com/pk/) by Jim Benson, the arguable creator of Kanban. 10 | 11 | 5) **Extreme Programming**: Read [Extreme Programming Explained by Kent Beck](http://www.amazon.com/exec/obidos/ASIN/0201616416/extremeprogrammi), then read this [XP primer](http://www.extremeprogramming.org/), then watch Kent Beck's '[20 Years Later](https://www.youtube.com/watch?v=cGuTmOUdFbo&lipi)' talk on XP. While you're at it, read about the [C3 project](https://martinfowler.com/bliki/C3.html). 12 | 13 | 6) "**Agile Testing**" - Read Brian Marick's [original post here](http://www.exampler.com/old-blog/2003/08/22/#agile-testing-project-2), and Lisa Crispin's [awesome refresher here](http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/). I put 'Agile Testing' in quotes because testing is a team sport. Don't use this as a way to make your testers agiler, that's just dumb. Oh, and Grammarly said to use 'agiler' instead of 'more agile'. 14 | 15 | 7) **Read** [**everything by Jerry Weinberg**](http://www.geraldmweinberg.com/Site/Bundles.html). Well, that might take a lifetime, so [start with these](https://leanpub.com/b/qualitysoftware). Just about everyone who's considered to be an '_agile thinker_' (whatever that means) has been influenced by Jerry in one way or another. 16 | 17 | 8) **Read** [Coaching Technical Practices](https://www.infoq.com/articles/coaching-technical-practices) by Pedro Santos, a really nice list of subjects to help you coaching around XP practices, specifically TDD, Pair Programming, Refactoring and Simple Design. 18 | 19 | **Honourable Mention**: Look up the [Manifesto authors](http://agilemanifesto.org/authors.html) in your spare time. 20 | 21 | (inspiration from [Jason Little's post](https://www.linkedin.com/pulse/6-things-everyone-needs-know-agile-jason-little/)) 22 | -------------------------------------------------------------------------------- /study-path/languages/README.md: -------------------------------------------------------------------------------- 1 | # Languages paths 2 | * [Java](java) 3 | * [Kotlin](kotlin) 4 | * [Javascript](javascript) 5 | * [Angular](javascript/angular) 6 | * [PHP](php) 7 | * [Ruby](ruby) 8 | * [Scala](scala) 9 | * [Swift](swift) 10 | -------------------------------------------------------------------------------- /study-path/languages/java/README.md: -------------------------------------------------------------------------------- 1 | # Java path 2 | 3 | ## Basic of Java 4 | 5 | * Lean the basics of Java with its "programming koans": https://github.com/matyb/java-koans 6 | * Practice some basic Java exercises on https://exercism.io/tracks/java 7 | 8 | ## Into Modern Java 9 | * Read [Effective Java](http://www.amazon.com/gp/product/0321356683) 10 | 11 | To lean about modern Java and testing: 12 | 13 | * read https://martinfowler.com/articles/practical-test-pyramid.html 14 | * practice with the code example in https://github.com/hamvocke/spring-testing 15 | * a nice practical example of modern java: https://github.com/giorgiosironi/game-of-life-modern-java 16 | 17 | * Modern Java - A Guide to Java 8: https://github.com/winterbe/java8-tutorial 18 | -------------------------------------------------------------------------------- /study-path/languages/javascript/README.md: -------------------------------------------------------------------------------- 1 | # Javascript path 2 | 3 | 1. read through [Learn Javascript](https://developer.mozilla.org/en/learn/javascript) on the Mozilla Developer Network 4 | 2. read the first chapters of [Eloquent Javascript](http://eloquentjavascript.net/index.html) online 5 | 3. read the first chapters of [Speaking Javascript](http://speakingjs.com/es5/index.html) online 6 | 4. find the most [interesting resources](http://superherojs.com/) on SuperheroJS 7 | 5. watch some [videos](https://github.com/bolshchikov/js-must-watch) about Javascript 8 | 6. read [You Don't Know JS](https://github.com/getify/You-Dont-Know-JS) 9 | 7. read through [Javascript design pattern](http://addyosmani.com/resources/essentialjsdesignpatterns/book/) 10 | 8. understand [closures](http://stackoverflow.com/questions/111102/how-do-javascript-closures-work) 11 | 9. learn you some [Angular](angular) 12 | -------------------------------------------------------------------------------- /study-path/languages/javascript/angular/README.md: -------------------------------------------------------------------------------- 1 | # Angular path 2 | 3 | 1. follow the Angular course on [codeschool](https://www.codeschool.com/courses/shaping-up-with-angular-js) 4 | 2. read the [ng-book](https://www.ng-book.com/) 5 | 3. read through the [wiki](https://github.com/angular/angular.js/wiki) of the AngularJS source 6 | 4. read through the resources on [resrc.io](http://resrc.io/list/18/javascript-frameworks/#angularjs) 7 | 5. watch the entire [playlist about Angular](https://www.youtube.com/watch?v=Lx7ycjC8qjE&list=PLP6DbQBkn9ymGQh2qpk9ImLHdSH5T7yw7) by John Lindquist 8 | 6. read the opinionated [Angular style guide](http://johnpapa.github.io/angularjs-styleguide/) 9 | 7. go through [bite-sized lessons](https://egghead.io/) on egghead.io 10 | 8. if you still don't have enough, go through [AngularJS learning list](https://github.com/jmcunningham/AngularJS-Learning) 11 | 12 | 13 | ### Useful resources 14 | 15 | 1. use [plnkr.co](http://plnkr.co/) to evaluate your ideas without the hassle of setting up a dev environment 16 | 2. subscribe to the [ng-newsletter](http://www.ng-newsletter.com/) 17 | -------------------------------------------------------------------------------- /study-path/languages/javascript/vuejs/README.md: -------------------------------------------------------------------------------- 1 | # Vue.js path 2 | 1. Read [Vue.js Guide](https://vuejs.org/v2/guide/)- Essentials 3 | 2. Complete [Vue Mastery Intro to Vue.js](https://www.vuemastery.com/courses/intro-to-vue-js/vue-instance/) 4 | 3. Read [Vue.js Style Guide](https://vuejs.org/v2/style-guide/) 5 | -------------------------------------------------------------------------------- /study-path/languages/kotlin/README.md: -------------------------------------------------------------------------------- 1 | # Kotlin Study Path 2 | 3 | 1. Starts with the [Coursera's course Kotlin for Java Developers](https://www.coursera.org/learn/kotlin-for-java-developers/) (free course) 4 | 2. If you like Venkat's style, you'll like [Kotlin for Java Programmers by Venkat Subramaniam 5 | ](https://www.youtube.com/watch?v=7EVXypZDOos) (video) - it's a pragmatic and funny introduction on the key features of the language. 6 | 3. Have fun following the nice [Kotlin Koans](https://kotlinlang.org/docs/tutorials/koans.html) to dig into the bits of the language 7 | * See also https://play.kotlinlang.org/koans/overview 8 | 4. Explore the rich and complete official documentation at https://kotlinlang.org/docs/reference/ 9 | 10 | Then, if you like Kotlin and want to go on learning and practicing, be inspired by some lectures like 11 | 12 | * [Idiomatic Kotlin. Best Practices](https://phauer.com/2017/idiomatic-kotlin-best-practices/) 13 | * [Best Practices for Unit Testing in Kotlin 14 | ](https://phauer.com/2018/best-practices-unit-testing-kotlin/) 15 | * Take a look at some of Uberto's [Kotlin Pearls](https://proandroiddev.com/kotlin-pearls-multiple-inheritance-3f4d427141a5) 16 | * [Effective Kotlin](https://medium.com/@appmattus/effective-kotlin-31215a6cf847) 17 | * Find something interesting to read here at https://kotlin.link/ 18 | * Be curious and discover something you did't know (still) in this awesome kotlin curated list: https://github.com/KotlinBy/awesome-kotlin 19 | * See how the design patterns could be implemented in Kotlin https://github.com/dbacinski/Design-Patterns-In-Kotlin 20 | * [Kotlin Sequences: An Illustrated Guide 21 | ](https://typealias.com/guides/kotlin-sequences-illustrated-guide/) 22 | 23 | Moreover, if you really want to go deeper: 24 | 25 | * Join the [Kotlin Slack workspace](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up) 26 | * Read and follow the [Kotlin's official forum](https://discuss.kotlinlang.org/) 27 | 28 | ### Good books to learn Kotlin 29 | * [Programming Kotlin - Create Elegant, Expressive, and Performant JVM and Android Applications](https://pragprog.com/book/vskotlin/programming-kotlin) by Venkat Subramaniam 30 | -------------------------------------------------------------------------------- /study-path/languages/php/README.md: -------------------------------------------------------------------------------- 1 | # PHP path 2 | 1. Read [PHP: The Right Way](http://www.phptherightway.com) 3 | -------------------------------------------------------------------------------- /study-path/languages/ruby/README.md: -------------------------------------------------------------------------------- 1 | # Ruby path 2 | 1. Complete [Code Academy Learn Ruby course](https://www.codecademy.com/learn/ruby) 3 | 2. Complete all the [Ruby koans](http://rubykoans.com/) 4 | 3. Read: 5 | - [The Ruby Style Guide](https://rubystyle.guide/) 6 | - [Thoughtbot Style Guide](https://github.com/thoughtbot/guides/tree/master/style/ruby) 7 | - [Thoughtbot Test Guide](https://github.com/thoughtbot/guides/tree/master/style/testing) 8 | 4. Read [The Ruby Way (3rd edition)](http://therubyway.io/) - chapters 1-8 9 | 5. Read [Eloquent Ruby](http://www.amazon.com/Eloquent-Ruby-Addison-Wesley-rofessional-Series/dp/0321584104) - chapters 1-9 10 | 6. Read [Effective Testing with RSpec 3](https://pragprog.com/book/rspec3/effective-testing-with-rspec-3) - chapeters 4-6 11 | 7. Read [Practical Object-Oriented Design in Ruby (POODR)](http://www.poodr.com/) 12 | 8. Read [Effective Ruby](https://www.effectiveruby.com/) - chapters 1-5 13 | # Rails Path 14 | 1. Complete [Ruby on Rails Tutorial](https://www.railstutorial.org/book) 15 | 2. Read: 16 | - [The Rails Style Guide](https://rails.rubystyle.guide/) 17 | - [Thoughtbot Style Guide](https://github.com/thoughtbot/guides/tree/master/style/rails) 18 | - [Thoughtbot Best Practices](https://github.com/thoughtbot/guides/tree/master/best-practices) 19 | 3. Watch [GoRuCo 2012 Hexagonal Rails](https://www.youtube.com/watch?v=CGN4RFkhH2M) 20 | 4. Read [Agile Web Development With Rails 5.1](https://pragprog.com/book/rails51/agile-web-development-with-rails-51) - chapters 18-24 21 | -------------------------------------------------------------------------------- /study-path/languages/scala/README.md: -------------------------------------------------------------------------------- 1 | # Scala Path 2 | 1. Complete [Scala Tutorials Basic Tour](http://scalatutorials.com/tour) 3 | 2. Complete [Scala Exercises Std Lib](https://www.scala-exercises.org/std_lib) 4 | 3. Read [Scala Style Guide](https://docs.scala-lang.org/style/) 5 | 4. Read [Programming in Scala (3rd ed)](https://booksites.artima.com/programming_in_scala_3ed) - chapters 4-21 6 | 5. Read [Functional Programming in Scala](https://www.manning.com/books/functional-programming-in-scala) - chapters 1-6 7 | 6. Complete [Coursera Functional Programming in Scala Specialization](https://www.coursera.org/specializations/scala) 8 | 9 | # Spark Path 10 | 1. Complete [allaboutscala Spark tutorial](http://allaboutscala.com/big-data/spark) 11 | -------------------------------------------------------------------------------- /study-path/languages/swift/README.md: -------------------------------------------------------------------------------- 1 | # Swift path 2 | 1. Read [The Swift Programming Language](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/) 3 | 2. Watch [Getting Started with Swift](https://developer.apple.com/videos/play/wwdc2016/404/) 4 | 3. Watch [Swift API Design Guidelines](https://developer.apple.com/videos/play/wwdc2016/403/) 5 | -------------------------------------------------------------------------------- /study-path/microservices/README.md: -------------------------------------------------------------------------------- 1 | Credits to [@pdincau](https://gist.github.com/pdincau) https://gist.github.com/pdincau/8e6d42dfc44cf158e70293604bae0c17 2 | 3 | This is study path related to microservices. 4 | 5 | Introductory Videos 6 | =================== 7 | 8 | * [Microservices • Fowler](https://www.youtube.com/watch?v=wgdBVIX9ifA) 9 | * [Principles Of Microservices by Sam Newman](https://www.youtube.com/watch?v=PFQnNFe27kU) 10 | * [Practical Considerations For Microservice Architecture](https://vimeo.com/105751281) 11 | * [Microservices Antipatterns](https://www.youtube.com/watch?v=I56HzTKvZKc) 12 | * [When Microservices Meet Event Sourcing](https://www.youtube.com/watch?v=cISNDnwlSgw) 13 | 14 | Introductory Blog posts 15 | ======================= 16 | 17 | * [Introduction to Microservices • Seven-part series of articles](https://www.nginx.com/blog/introduction-to-microservices/) 18 | * [Microservices a definition of this new architectural term](http://martinfowler.com/articles/microservices.html) 19 | * [Microservice Trade-Offs](http://martinfowler.com/articles/microservice-trade-offs.html) 20 | 21 | Recommended Books 22 | ================= 23 | 24 | * [Building Microservices](https://www.amazon.com/Building-Microservices-Sam-Newman/dp/1491950358) 25 | * [Release It!: Design and Deploy Production-Ready Software](https://www.amazon.com/Release-Production-Ready-Software-Pragmatic-Programmers/dp/0978739213) 26 | * [Microservices: Flexible Software Architectures](https://www.amazon.com/Microservices-Flexible-Architectures-Eberhard-Wolff/dp/1523361255/ref=sr_1_6?s=books&ie=UTF8&qid=1476097867&sr=1-6&keywords=microservice) 27 | * [Microservice Architecture: Aligning Principles, Practices, and Culture](https://www.amazon.com/Microservice-Architecture-Aligning-Principles-Practices/dp/1491956259) 28 | 29 | Real Life Experience Blog Posts 30 | =============================== 31 | * [How we ended up with microservices](http://philcalcado.com/2015/09/08/how_we_ended_up_with_microservices.html) 32 | * [Building Products at SoundCloud: Part I (You may want to also read Part II and III)](https://developers.soundcloud.com/blog/building-products-at-soundcloud-part-1-dealing-with-the-monolith) 33 | * [How we build microservices at Karma](https://blog.karmawifi.com/how-we-build-microservices-at-karma-71497a89bfb4#.mwfmdo4s3) 34 | 35 | Real Life Experience Videos 36 | =========================== 37 | 38 | * [From Monolith to Microservices at Zalando](https://www.youtube.com/watch?v=gEeHZwjwehs) 39 | * [Pragmatic Microservices](https://www.youtube.com/watch?v=9vS7TbgirgY) 40 | * [Microservices @ Spotify](https://www.youtube.com/watch?v=7LGPeBgNFuU) 41 | * [What I Wish I Had Known Before Scaling Uber to 1000 Services](https://www.youtube.com/watch?v=57UK46qfBLY) 42 | * [Microservices at Netflix Scale: Principles, Tradeoffs & Lessons Learned](https://www.youtube.com/watch?v=57UK46qfBLY) 43 | * [Mastering Chaos - A Netflix Guide to Microservices](https://www.youtube.com/watch?v=CZ3wIuvmHeM&feature=youtu.be) 44 | * [The Microservices Journey from a Startup Perspective](https://www.youtube.com/watch?v=1BKp616GPQE) 45 | * [Effective Microservices in a Data-Centric World](https://www.youtube.com/watch?v=whi0T1a4cWU) 46 | 47 | All that glitters is not gold 48 | =============================== 49 | 50 | * [Microservices for mortals](https://www.youtube.com/watch?v=5ZSA99aq6UA) 51 | * [Failing at Microservices](https://rclayton.silvrback.com/failing-at-microservices) 52 | * [Microservices - Not a free lunch](http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html) 53 | 54 | Topics and Patterns highly suggested 55 | ========================================= 56 | 57 | * [Microservice testing](http://martinfowler.com/articles/microservice-testing) 58 | 59 | * Domain Driven Design (theory) 60 | 61 | * [Domain Driven Design Quickly](https://www.infoq.com/minibooks/domain-driven-design-quickly) 62 | * Implementing Domain Driven Design - Chapter 1 to 5 63 | * If you want to dig deeper read the rest of the book and try "Domain Driven Design" by Evans 64 | * [Bounded Context](http://martinfowler.com/bliki/BoundedContext.html) 65 | 66 | * Hexagonal Architecture 67 | 68 | * If you don't know what SOLID means, you should study them and in particular [Dependency Inversion Principle](http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod) 69 | * [Original paper by Alistair Cockburn](http://alistair.cockburn.us/Hexagonal+architecture) 70 | * Implementing Domain Driven Design by Vaughn Vernon: pp 119 - 130 71 | * [Crafted Design - Sandro Mancuso](https://www.youtube.com/watch?v=dYvSaajboEs) 72 | 73 | * CQRS and Event Sourcing 74 | 75 | * [CQRS by Martin Fowler](http://martinfowler.com/bliki/CQRS.html) 76 | * [Event Sourcing by Martin Fowler](http://martinfowler.com/eaaDev/EventSourcing.html) 77 | * [CQRS and Event Sourcing](https://www.youtube.com/watch?v=JHGkaShoyNs) 78 | * Implementing Domain Driven Design by Vaughn Vernon: pp 138 - 163 79 | 80 | * [Strangler application](http://www.martinfowler.com/bliki/StranglerApplication.html) 81 | 82 | * [Backend for frontend - BFF](http://samnewman.io/patterns/architectural/bff/) 83 | 84 | * [The Twelve-Factor App](https://12factor.net/) 85 | 86 | -------------------------------------------------------------------------------- /study-path/tools/README.md: -------------------------------------------------------------------------------- 1 | # Tools path 2 | * [Command Line](cli) 3 | * [Git](git) 4 | * [Docker](docker) 5 | -------------------------------------------------------------------------------- /study-path/tools/cli/README.md: -------------------------------------------------------------------------------- 1 | # Command Line Path 2 | 3 | 1. Complete [Udacity Linux Command Line Basics](https://eu.udacity.com/course/linux-command-line-basics--ud595) 4 | 2. Read [Learn Enough Command Line to Be Dangerous](https://www.learnenough.com/command-line-tutorial) 5 | 3. Complete [Interactive Vim Tutorial](http://www.openvim.com/) 6 | 4. Read [The Bash Guide](https://guide.bash.academy/) 7 | 5. Read [Conquering the Command Line](http://conqueringthecommandline.com/book) 8 | 9 | Useful resources [Awesome CLI](https://github.com/sintaxi/awesome-cli) 10 | -------------------------------------------------------------------------------- /study-path/tools/docker/README.md: -------------------------------------------------------------------------------- 1 | # Docker path 2 | 1. Read [Docker get started](https://docs.docker.com/get-started/) 3 | 2. Complete [Play with Docker: Docker for Developers stage 1](https://training.play-with-docker.com/dev-stage1/) 4 | 3. Read [Get started with Docker Compose 5 | ](https://docs.docker.com/compose/gettingstarted/) 6 | -------------------------------------------------------------------------------- /study-path/tools/git/README.md: -------------------------------------------------------------------------------- 1 | # Git path 2 | 3 | ## Interactive Courses/Tutorials 4 | 5 | 1. Deep into git: [Try Git](https://try.github.io) 6 | 2. Codeschool base: [Git Real](https://www.codeschool.com/courses/git-real) (7 Livelli + Sfide) 7 | 3. Codeschool advanced: [Git Real 2](https://www.codeschool.com/courses/git-real-2) (6 Livelli + Sfide) 8 | 4. Learn git branching: [LearnGitBranching](http://pcottle.github.io/learnGitBranching/) 9 | 10 | ## Books online 11 | 12 | 1. Pro Git book: [Pro Git](http://git-scm.com/book) 13 | * Chapter 1: [Getting Started](http://git-scm.com/book/en/Getting-Started) 14 | * Chapter 2: [Git basics](http://git-scm.com/book/en/Git-Basics) 15 | * Chapter 3: [Git branching](http://git-scm.com/book/en/Git-Branching) 16 | * Chapter 6: [Git tools](http://git-scm.com/book/en/Git-Tools) 17 | * Git Tools - Stashing: [Git stashing](http://git-scm.com/book/en/Git-Tools-Stashing) 18 | * Git Tools - Submodules: [Git submodules](http://git-scm.com/book/en/Git-Tools-Submodules) 19 | 2. Git Tutorials: [Git Tutorials](https://www.atlassian.com/git) 20 | * Git Workflows I: [Centralized workflow](https://www.atlassian.com/git/workflows#!workflow-centralized) 21 | * Git Workflows II: [Feature Branching workflow](https://www.atlassian.com/git/workflows#!workflow-feature-branch) 22 | --------------------------------------------------------------------------------