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.