- This bootcamp is a guide for self-directed learning and critical thinking.
- It's not a step-by-step instruction course.
- Topics highlight key concepts and best practices.
- Take notes and explore topics further on your own.
- Focus on building skills for quality software development.
- Collaboration and teamwork are encouraged.
- Everyone brings unique experience, share and learn from each other.
- Ask questions and challenge ideas to deepen understanding.
- Apply the tools and principles to real project work.
- Core development tools and environments
- Python fundamentals and best practices
- Version control with Git and collaborative workflows
- Application and API development (project structure, frameworks, REST, validation, authentication)
- Working with databases and ORMs
- Testing strategies and code quality (unit, integration, E2E, linting, static analysis)
- Deployment, containerization, and CI/CD pipelines
- Releasing to production, cloud deployment, and monitoring
- Python Fundamentals:
- Quickly review core concepts
- data structures?
- object-oriented programming (OOP)?
- modules
- error handling
- Quickly review core concepts
- Development Environment:
- Virtual Environments: Best practices using
venv
for project isolation. - IDE Setup: Configuring a professional IDE such as VS Code or PyCharm with essential extensions (e.g., linters, debuggers).
- Dependency Management: Utilizing
pip
,requirements.txt
,pyproject.toml
effectively.
- Virtual Environments: Best practices using
- Version Control with Git:
- Core Concepts: Branching, merging, pull requests, and handling merge conflicts.
- Collaborative Workflows: Introduction to Gitflow or similar branching strategies.
- Building Your First Application:
- Project Structure: Organizing code into modules and packages for scalability and maintainability.
- Web Frameworks:
- Introduction to a primary framework like FastAPI (recommended for its modern features and performance)
- Core concepts: routing, request handling, and response generation.
- API Development Best Practices:
- RESTful Principles: Understanding HTTP methods (GET, POST, PUT, DELETE) and status codes.
- [?]Data Validation: Using libraries like Pydantic for robust data validation and serialization.
- [?]Authentication & Authorization: Implementing token-based security (e.g., JWT).
- The Testing Pyramid:
- Unit Testing: Writing isolated tests for functions and classes with pytest.
- Integration Testing: Testing the interaction between different components of the application.
- End-to-End (E2E) Testing: Simulating user workflows.
- Code Quality & Style:
- Linting: Enforcing a consistent code style with tools like Black and Flake8.
- Static Analysis: Catching potential bugs before runtime with tools like mypy.
- Containerization with Docker:
- Creating Dockerfiles: Packaging the application and its dependencies into a container.
- Docker Compose: Managing multi-container applications for local development.
- Continuous Integration & Continuous Deployment (CI/CD):
- Introduction to CI/CD: Automating the testing and deployment pipeline.
- GitHub Actions: Building a simple pipeline to automatically run tests and build the Docker image on every push.
- Release to Production:
- Deployment: Introduction to building containerized applications.
- Environment Variables: Managing configuration for different environments (Development, UAT, Production).
- Logging and Monitoring: Implementing basic logging to track application behaviour and diagnose issues in production.