⭐⭐⭐⭐ Python virtual environment (pipenv, virtualenv, pyenv) - [A}
- Effective Python Book
⭐⭐⭐ VCS (Version Control System): Git and Github (commits, branches, merges, conflicts, stashing, pull requests)
⭐⭐⭐⭐ IDE/Text Editor: Pycharm Pro or VS Code (shortcuts, formatting, integrations, plugins)
⭐⭐ Networks Basics: IPs, Ports, HTTP/HTTPS, FTP, Webservers, NATs, SSH, ...etc
⭐⭐ Linux
⭐⭐⭐ Using The Terminal/CMD/PowerShell
⭐⭐ RDB (PostgreSQL, MySQL/MariaDB, SQLite)
- NoSQL (MongoDB, Redis)
⭐⭐⭐ ORM (Object-Relational Mapper)
⭐⭐⭐ Conventional Commits
- Trunk-based Development (https://www.atlassian.com/continuous-delivery/continuous-integration/trunk-based-development)
- Change Logs
⭐⭐⭐ README
⭐⭐ Documentation
⭐⭐⭐ Clean Code
-
Design Principles (SOLID, KISS, YAGNI, ...etc)
-
Design Patterns
-
Testing (Unit, Integration, Functional)
-
Pytest
-
TDD (Test-Driven Development)
-
BDD (Behavior-Driven Development)
-
DDD (Domain-Driven Design)
⭐⭐ Issue Tracking (GitHub issues, JIRA, Redmine) Learn how to mention issue number in commit message
- Continues Integration (GitHub Actions, Jenkins, Travis-CI)
⭐⭐⭐ pre-commit hooks (black, flake)
⭐⭐⭐ .env files and environmental variables
- Logs, and Logging (For Example Sentry)
⭐⭐⭐⭐ HTML, CSS, SASS, Javascript, Bootstrap and JQuery
⭐⭐ REST API
-
Swagger
-
ngrok
-
GraphQL
⭐⭐ Browser dev tools (elements tab, console, network tab, performance)
-
Security (XSS, SQL Injection, CSRF, CORS, ...etc)
-
Symmetric Encryption and Asymmetric Encryption
-
SSH (Connecting, Generating Keys, Adding Hosts, ...etc)
⭐⭐ Authentication (session, basic, token and jwt token)
-
Docker, docker-compose
-
Postman
⭐ Authentication vs Authorization
⭐ Good Resources:
-
Two-Scoops with Django
-
Code With Mosh - Ultimate Django Series
⭐⭐ Documentation
⭐ Django App Architecture and Organization
- Important Packages
- django-split-settings (https://sobolevn.me/2017/04/managing-djangos-settings)
- django-allauth (social auth)
- django-rest-auth (for drf)
- django-braces (mixins)
- django-compressor (for static files)
- django-countries (country fields)
- django-crispy-forms (render forms)
- django-db-mailer
- django-el-pagination
- django-extensions (shell_plus, jobs, ...etc)
- drf-extra-fields (Base64Fields)
- django-filters
- django-fsm (state machine)
- django-jet (admin styles and template)
- django-modeltranslation
- django-newsletter
- django-phonenumber-field
- django-push-notifications
- django-solo
- django-treebeard
- PyJWT
- django-redis
- django-wkhtmltopdf
- django-import-export
- sentry-sdk
- django-ckeditor
- geopy (locating)
- django-rest-knox (auth)
- drf-spectacular (swagger)
- easy-thumbnails
- django-oscar
- django-oscar-api
- django-oscar-invoices
- django-debug-toolbar
- pytest-django
- pytest-cov
⭐⭐ custom management commands
-
custom migrations
-
permissions
-
Django cookie-cutter
⭐ Django Rest Framework
-
Wagtail
-
Django cms
-
Elastic Stack
-
Caching with redis
-
Asynchronous programming (celery, rabbit mq, django rq, Kafka)
-
Linux cron jobs
-
AWS Basics (S3, EC2, Networks)
-
Gunicorn
-
Nginx
-
Microservices
-
Hosting (PAAS, SAAS, IAAS)
-
System Design (a good book is System Design Interview - An Insider's Guide)
⭐ NPM
- Webpack
⭐ SPA (Vue and Nuxt.js/React and Next.js/Angular)
-
PWA
-
TypeScript