Python Developer - Internship Study Plan
Here is a starter study plan for the Exclusive internship, specifically for those who want to use Python as the language of choice. This will be customised for each intern, as appropriate:
Milestone 1
Objective
Learn to finish thinking, Start going deep, Use Version Control, Understand core technology - HTTP Server, Database
Plan
Define the problem clearly ( Specific, Achievable, Relevant ) ( here after referred to as "project" )
Read up Git usage on Git ( https://www.freecodecamp.org/news/introduction-to-git-and-github/ )
Learn to use the Python official documentation ( https://docs.python.org/3/ )
Write code for sorting algorithms, and also learn to write test cases
Write a simple "HelloWorld", and "Ping" API using the HttpServer that ships with Python ( No Flask or Django ). Write test cases unit tests, and End2End tests ( using "requests" )
Do NOT write any other code. Focus on getting the problem statement, and the documentation reading.
Implement a file based database for storing all "incoming" requests in the above server, and tests ( No third party libraries ) -- use JSON file format -- learn to create and use indexes
Milestone 2
Objective
Flask, and SQLite3
Plan
Implement the DB access layer, and tests for the above project using SQLite3 ( No third party libraries )
Learn Flask / FastAPI ( not Django )
Implement Login, and Logout, Page for the project, and test cases. Web pages use jinja2 as the templating library.
Draw out the other pages, on paper / whiteboard, based on the requirements document
Implement the DB APIs for all the other persistence pieces identified for the project, and their tests
Run the tests on commit
Implement the Web pages use jinja2 as the templating library.
Implement Error handling, and Logging
Milestone 3
Objective
DevOps, Docker, AI
Plan
Learn to use Docker Images, Docker Compose
Learn to use "local tunnels", Simulate "production" on local machine using the same
Deploy on a private server (AWS/DigitalOcean), Learn to read logs, and enhance the code based on the practical issues seen
update requirements and add some AI workflows
Enhance code for AI workflows, and testing
Anything else we discover along the way
We will, while building the application, use ChatGPT, or other such tools available to you.