├── .gitignore ├── README.md └── images ├── accelerate-cover.jpg ├── agile-technical-practices-distilled-contents.png └── clean-code-cover.jpg /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.iml 3 | .DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Learning Guide for Software Crafters 2 | 3 | Are you passionate about building high-quality software, writing maintainable code, understanding business problems and delivering continuously? 4 | 5 | Below is a list of resources (books, YouTube videos, Slack groups, Twitter handles...) to help get started. 6 | 7 | ## Getting started 8 | 9 | ### Clean Code 10 | 11 | - :book: **Clean Code** by Robert C. Martin 12 | - The **Clean Coder Video Series** 13 | 14 | ### Test-Driven Development 15 | 16 | - :book: **Test-Driven Development: By Example** by Kent Beck 17 | - :book: **Growing Object-Oriented Software, Guided by Tests** by Steve Freeman, Nat Pryce 18 | 19 | ### Refactoring 20 | 21 | - :book: **Refactoring** by Martin Fowler 22 | - :book: **Working Effectively with Legacy Code** by Michael C. Feathers 23 | 24 | ## Learning by practice 25 | 26 | > "Programming is a skill best acquired by practice and example", Alan Turing 27 | 28 | ### :book: Technical Agile Practices Distilled 29 | 30 | [Technical Agile Practices Distilled](https://leanpub.com/agiletechnicalpracticesdistilled) is a succinct, practical manual for everything from Pair Programming & TDD to Domain-Driven Design. In the book, each topic is proceeded by practical exercises (katas). 31 | 32 | Table of contents from Technical Agile Practices Distilled: 33 | 34 | ![Agile Technical Practices Distilled - Contents](/images/agile-technical-practices-distilled-contents.png) 35 | 36 | ### More Katas 37 | 38 | - [kata-log.rocks](https://kata-log.rocks/) 39 | - Emily Bache's [GitHub page](https://github.com/emilybache), or her book: :book: **The Coding Dojo Handbook** 40 | 41 | ## Extreme Programming 42 | 43 | - :book: **Accelerate** (or **State of DevOps Report**) by Gene Kim, Jez Humble 44 | - :book: **Extreme Programming Explained** by Kent Beck 45 | - :book: **The Art of Agile Development** by James Shore 46 | 47 | ### Pair/Mob Programming 48 | 49 | - ['On Pair Programming' - martinfowler.com](https://martinfowler.com/articles/on-pair-programming.html) 50 | - :book: [Mob Programming: A Whole Team Approach](https://leanpub.com/mobprogramming) by Woody Zuill 51 | 52 | ## Building for production 53 | 54 | - :book: **Release It!** by Micheal T. Nygard defines patterns for building production-ready applications. 55 | 56 | ## Study Path 57 | 58 | This [Study Path](https://github.com/joebew42/study-path) by @joebew42 identifies chapters to read through classical works such The Pragmatic Programmer, Working Effectively with Legacy Code, Refactoring... 59 | 60 | ## Slack 61 | 62 | Join the [Software Crafters community](http://slack.softwarecraftsmanship.org/) on Slack. 63 | 64 | ## Conference talks 65 | 66 | Talks by Sandi Metz, the author of 'Practical Object-Oriented Design in Ruby: An Agile Primer': 67 | - [All the Little Things](https://youtu.be/8bZh5LMaSmE) 68 | - [Nothing is Something](https://youtu.be/OMPfEXIlTVE) 69 | 70 | ## Courses 71 | 72 | J.B. Rainsberger - [The World's Best Intro to TDD](https://online-training.jbrains.ca/p/wbitdd-01) 73 | 74 | ## Twitter 75 | 76 | - [Martin Fowler](https://twitter.com/martinfowler) - author of Refactoring 77 | - [Kent Beck](https://twitter.com/KentBeck) - author & creator of Extreme Programming 78 | - [Jez Humble](https://twitter.com/jezhumble) - author of Continuous Delivery, The DevOps Handbook 79 | - [Uncle Bob Martin](https://twitter.com/unclebobmartin) - author of Clean Coder series -------------------------------------------------------------------------------- /images/accelerate-cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/software-crafters-karachi/learning-guide/e4169573b5f7bd679a794c818be3434c338ce7b7/images/accelerate-cover.jpg -------------------------------------------------------------------------------- /images/agile-technical-practices-distilled-contents.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/software-crafters-karachi/learning-guide/e4169573b5f7bd679a794c818be3434c338ce7b7/images/agile-technical-practices-distilled-contents.png -------------------------------------------------------------------------------- /images/clean-code-cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/software-crafters-karachi/learning-guide/e4169573b5f7bd679a794c818be3434c338ce7b7/images/clean-code-cover.jpg --------------------------------------------------------------------------------