Comprehensive Internship Coursework (Python-Django)

Introduction
At Periwin, we aim to train our interns from the ground up, ensuring they acquire proficiency in Python, virtual environments, Django, Django Rest Framework (DRF), and Git. This detailed coursework will serve as a structured roadmap for interns to follow, incorporating hands-on exercises, real-world projects, and resources to accelerate their learning.
Phase 1: Mastering Python Basics
Objective: Become proficient in Python fundamentals.
Topics to Cover:
- Introduction to Python
- Installing Python (Windows, Mac, Linux)
- Writing and executing Python scripts
- Understanding Python syntax
- Using Jupyter Notebook and VS Code
- Data Types and Variables
- Strings, Numbers, Lists, Tuples, Sets, Dictionaries
- Type casting and type checking
- Control Structures
- Conditional statements (if-else)
- Loops (for, while)
- List comprehensions
- Functions and Modules
- Defining and calling functions
- Arguments and return values
- Built-in functions
- Creating and using modules
- Object-Oriented Programming (OOP)
- Classes and objects
- Inheritance and polymorphism
- Encapsulation
- File Handling
- Reading and writing files
- Working with CSV and JSON
- Error Handling and Debugging
- Try-except blocks
- Logging and debugging tools
Recommended Resources:
- YouTube: Python Full Course - Programming with Mosh
- Article: Python Official Documentation
- Exercises: Python Practice Problems on LeetCode
Phase 2: Understanding Virtual Environments
Objective: Learn how to manage Python dependencies using virtual environments.
Topics to Cover:
- What are Virtual Environments?
- Importance of virtual environments
- Avoiding dependency conflicts
- Setting up Virtual Environments
- Installing
venvandvirtualenv - Creating a virtual environment
- Activating and deactivating virtual environments
- Installing and managing dependencies using
pip
- Installing
- Using
requirements.txt- Exporting installed packages
- Installing dependencies from a file
Recommended Resources:
- YouTube: Python Virtual Environments - Corey Schafer
- Article: Python Virtual Environments Guide
- Exercises: Create multiple virtual environments and install different package versions.
Phase 3: Mastering Django and Django Rest Framework (DRF)
Objective: Develop web applications using Django and build APIs using Django Rest Framework.
Topics to Cover:
- Django Basics
- Introduction to Django
- Setting up a Django project
- Django project structure
- Models and Databases
- Understanding Django ORM
- Defining models
- Running migrations
- Using SQLite/PostgreSQL
- Views and Templates
- Creating views
- Rendering templates
- URL routing
- Forms and User Authentication
- Creating Django forms
- Implementing user authentication
- Using Django’s built-in user model
- Django Rest Framework (DRF)
- Introduction to REST APIs
- Serializers and ViewSets
- API authentication and permissions
- Testing APIs with Postman
- Deployment Basics
- Setting up a Django project on a cloud server
- Using Gunicorn and Nginx
- Deploying using Docker (basic understanding)
Recommended Resources:
- YouTube: Django Full Course - Traversy Media
- YouTube: Django REST Framework - Code With Stein
- Article: Django Official Documentation
- Project: Build a basic blog application and extend it with APIs.
Phase 4: Learning Git and Version Control
Objective: Become proficient in Git for source code management.
Topics to Cover:
- Introduction to Git
- What is version control?
- Installing Git and setting up a GitHub account
- Basic Git Commands
- Initializing a repository (
git init) - Cloning repositories (
git clone) - Adding and committing changes (
git add,git commit)
- Initializing a repository (
- Branching and Merging
- Creating and switching branches (
git branch,git checkout) - Merging branches (
git merge)
- Creating and switching branches (
- Working with Remote Repositories
- Pushing and pulling changes (
git push,git pull) - Resolving merge conflicts
- Pushing and pulling changes (
- Collaborative Git Workflows
- Forking and Pull Requests
- Code reviews and best practices
Recommended Resources:
- YouTube: Git for Beginners - freeCodeCamp
- Article: Pro Git Book
- Exercises: Create a personal project, push it to GitHub, and collaborate with others.
Capstone Project: Full-Stack Django Application
Objective: Apply all skills learned in a real-world project.
Project Idea: Develop a Task Management System with the following features:
- User authentication (Django Authentication System)
- Task creation, editing, and deletion
- API for task management (Django Rest Framework)
- Frontend integration (optional React/HTML & CSS)
- Deployment on Heroku or DigitalOcean
Project Resources:
- GitHub Repository: Awesome Django Projects
- Deployment Guide: Deploy Django with Gunicorn and Nginx
Conclusion
By following this structured coursework, the intern will gain hands-on experience and confidence in Python, Django, REST APIs, Git, and deployment techniques. The intern is encouraged to build multiple projects, contribute to open-source, and participate in coding challenges to reinforce learning.
Happy coding at Periwin!

