The objective of this repo is to keep a list of resources: links, courses, documents that juniors dev need to learn to improve their development background.
The topics included in this repository are:
-
Basics:
- Data:
- REST
- Server rendering vs single page apps
- Database
- Relational, non relational, graph databases (Focus on when to use them)
- SQL most used operations
- ORM
- Shell scripting
- Bash vs shell vs zsh
- ZSH tuning (Oh My ZSH, powerlevel10K)
- Bash programming (while, if, etc)
- Makefile
- IDE's
- Static code analysis
- Linting
-
Testing
- Types of tests
- Unit tests
- Integration tests
- E2E tests
- Contract tests
- Functional tests (like E2E but only for the backend and frontend)
- Manual tests (Smoke Test)
- Test strategies
- Test pyramid (https://martinfowler.com/articles/practical-test-pyramid.html)
- Testing trophy
- Testing from holistic perspective
- Types of tests
-
Test-Driven development
-
DevSecOps
- CI/CD
- Security notions
- Artifact repositories
- Pipelines
- Secret management (for local, dev, prod envs)
- Tools
- Disks encription
- Cloud (private, public, hybrid)
- SaaS
- PaaS
- Containers: docker
- Deploy to K8S
- Container registries
-
Quality
- Quality as a process
- Testing from an holistic perspective
- Ownership of the application
-
Programmer mantras
- SOLID principles
- Clean code
- Clean Architecture
- Microservices basics
- Design patterns
- Refactoring
- Business Analysis 101
- Soft skills
- Agile and lean
- Time management
- Leadership
- Pair programming
- Consultancy tools
- Communication with stakeholders
- Running retrospectives and standups
- Facilitation tools
- Product in a box, elevator pitch, trade-off sliders, fun retrospectives, ice breakers, ...
- Conversaciones difĂciles y feedback
- Architecture
- Basic DDD