The goal of this repository is to hold a set of exercises for those who want to improve their coding practice. Each exercise will be fully self contained and contain a set of instructions to guide the reader through the proper set of steps required to perform the exercise properly.
- Clone this repository using
git clone
- In each exercise folder, there will be a document named
Readme.md
which you can follow to perform the exercises - Follow along with the steps. You can check your answer against the published solutions. Solutions will always be in the
solutions
folder.
Note In general, exercises are designed to build on each other and skills gained in earlier exercises will be needed in later ones so it is recommended to proceed in order whenever possible.
- Tooling
- Version Control
- Programming Language/Platform
- Linter
- Code Editors
- Test Harness
- Code Coverage Tools
- Databases
- Web Servers
- Message Queues
- Crons
- Type System
- Logging
- Web Crawlers
- CI/CD
- Documentation
- Best Practice
- Version Control Practice
- Language Best Practice
- Linter Best Practice
- Testing Best Practice
- Testing
- Testing Functional Logic
- Testing Imperative Logic
- Testing with Database Connections
- Testing Web Servers
- Testing Microservices
- Testing Crons
- Testing Message Queues
- Testing React
- Testing UI
- Testing Security
- Testing Load
- Refactoring
- Refactoring Functional Logic
- Refactoring Imperative and Functional Logic
- Refactoring Async Auto
- Refactoring Data Access Code
- Bug Fixing
- Bug Fixing Functional Logic
- Security
- SQL Injection
- Architecture
- Data Architecture
- Idempotency
- Circuit Breakers
- Bulkheads
- Timeouts and Rate Limits
- In Band vs Out of Band
- Horizontal and Vertical Scaling
- Application Case Studies
- Basic Session Management
- Permissions and RBAC
- Secrets Management
- Ledgers