### Python (Focus on basics and essentials) - [ ] **Python Basics**: - [ ] Syntax and Semantics - [ ] Data Types (Strings, Numbers, Lists, Dictionaries, Tuples, Sets) - [ ] Control Flows (if, for, while) - [ ] Functions and Scope - [ ] Basic File I/O - [ ] **Intermediate Python**: - [ ] Object-Oriented Programming (Classes, Objects, Inheritance) - [ ] Error and Exception Handling - [ ] Modules and Packages - [ ] Virtual Environments (venv) - [ ] **Essential Python Libraries**: - [ ] `pip` for package installation - [ ] `requests` for HTTP requests - [ ] `Pandas` for data manipulation (useful in many Django backend scenarios) - [ ] **Best Practices**: - [ ] Code Style (PEP 8) - [ ] Writing Reusable Code - [ ] Introduction to Testing (unittest) ### Django (Understand the core framework) - [ ] **Django Basics**: - [ ] Setting up Django - [ ] Django Project vs. Django App - [ ] Models and Databases (ORM) - [ ] Views and URL Dispatchers - [ ] Templates and Static Files - [ ] Django Admin Interface - [ ] Forms and Form Processing - [ ] **Intermediate Django**: - [ ] Class-Based Views - [ ] User Authentication - [ ] Middleware - [ ] Signals - [ ] Advanced QuerySet Usage - [ ] **Django Best Practices**: - [ ] Project Structure - [ ] Security Practices (CSRF, XSS, Clickjacking) - [ ] Performance Optimizations (Database Indexing, Query Optimization) - [ ] Logging - [ ] **Testing Django**: - [ ] Unit Tests and Test Cases - [ ] Test Client ### Django REST Framework (DRF) (Learn to build APIs) - [ ] **DRF Basics**: - [ ] Serialization - [ ] ViewSets and Routers - [ ] Authentication and Permissions - [ ] Browsable API - [ ] **Intermediate DRF**: - [ ] Custom Validators - [ ] Pagination - [ ] Filtering, Searching, and Ordering - [ ] **Advanced DRF Topics (20% that might be less common but important)**: - [ ] Throttling - [ ] Versioning - [ ] Caching - [ ] **Integrations**: - [ ] Integrating Django with Front-End Frameworks (e.g., React, Vue.js) ### Real-World Application & Practice - [ ] **Version Control**: - [ ] Git Basics (commits, branches, merges, pull requests) - [ ] **Project**: - [ ] Build a simple CRUD application with Django - [ ] Extend it by adding a REST API with DRF - [ ] Implement User Authentication - [ ] **Deployment**: - [ ] Basic understanding of servers and hosting (e.g., Heroku, AWS) - [ ] Static and Media File Management - [ ] Deployment of Django projects ### Continuous Learning - [ ] **Stay Updated**: - [ ] Follow Django and DRF releases - [ ] Participate in communities (Reddit, Stack Overflow, Django Users mailing list) - [ ] **Expand Knowledge**: - [ ] Asynchronous Django (Django Channels) - [ ] Django REST Framework 3rd party packages (for things like OAuth, JWT, etc.)