Original content credit: adapted from jackfrued/Python-100-Days. This repository is an English translation of that original project.
Python - 100 Days from Beginner to Master
Author: Luo Hao
Note: If GitHub access is slow, you can follow my Zhihu account (Python-Jack). The column Learn Python from Scratch, which corresponds to the first 20 days of this project, is especially suitable for beginners. Other columns such as Data Thinking and Statistical Thinking, Data Analysis with Python, and An AI Journey at a Moment's Notice are also being updated continuously. You are welcome to follow, like, and comment. The free QQ study group is already overcrowded, and the messages are too noisy for me to reply one by one. If you want to study together with daily check-ins or need paid consultation, you can join the paid study group. New users can scan the QR code below, complete the payment, add my personal WeChat (
jackfrued), and I will invite you to the paid learning and check-in group. When adding me on WeChat, please include your name and your needs in the note. I will provide whatever help I can.![]()
Some of the videos corresponding to this project have also been published on Bilibili. If you are interested, please like, support, and follow the channel.
Python Application Areas and Career Development
Simply put, Python is an "elegant", "explicit", and "simple" programming language.
- The learning curve is gentle, and even non-specialists can get started.
- It is open source and has a powerful ecosystem.
- It is an interpreted language with excellent cross-platform portability.
- It is a dynamically typed language that supports both object-oriented and functional programming.
- Its code style is highly standardized and very readable.
Python is useful in all of the following areas.
- Backend development - Python / Java / Go / PHP
- DevOps - Python / Shell / Ruby
- Data collection - Python / C++ / Java
- Quantitative trading - Python / C++ / R
- Data science - Python / R / Julia / Matlab
- Machine learning - Python / R / C++ / Julia
- Automated testing - Python / Shell
As a Python developer, depending on your interests and career planning, there are many employment directions you can choose from.
- Python backend engineer (servers, cloud platforms, data APIs)
- Python operations engineer (automated operations, SRE, DevOps)
- Python data analyst (data analysis, business intelligence, digital operations)
- Python data scientist (machine learning, deep learning, algorithm specialist)
- Python crawler engineer (this track is not recommended!!!)
- Python test engineer (automated testing, test development)
Note: At present, the data science track is extremely popular, because both the internet industry and traditional industries have already accumulated massive amounts of data. Every industry needs data scientists to discover more business value from existing data and provide data support for business decisions. This is what people call data-driven decision-making.
Several suggestions for beginners:
- Make English your working language.
- Practice makes perfect.
- All experience comes from the mistakes you've made.
- Don't be a freeloader.
- Embrace AI to boost your productivity.
Day01~20 - Python Language Basics
Day01 - Getting Started with Python
- Introduction to Python
- A brief history of Python
- Pros and cons of Python
- Python application areas
- Installing the Python environment
- Windows environment
- macOS environment
Day02 - The First Python Program
- Tools for writing code
- Hello, world
- Commenting your code
Day03 - Variables in Python
- Some basic common sense
- Variables and types
- Variable naming
- Using variables
Day04 - Operators in Python
- Arithmetic operators
- Assignment operators
- Comparison operators and logical operators
- Applications of operators and expressions
- Fahrenheit and Celsius conversion
- Calculating the circumference and area of a circle
- Determining whether a year is a leap year
Day05 - Branching
- Building branching structures with
ifandelse - Building branching structures with
matchandcase - Applications of branching structures
- Evaluating a piecewise function
- Converting percentage grades into grade levels
- Calculating the perimeter and area of a triangle
Day06 - Loops
for-inloopswhileloopsbreakandcontinue- Nested loop structures
- Applications of loops
- Determining prime numbers
- Greatest common divisor
- Guess-the-number game
Day07 - Branching and Loops in Practice
- Example 1: Prime numbers within 100
- Example 2: Fibonacci sequence
- Example 3: Finding narcissistic numbers
- Example 4: The hundred-chickens problem
- Example 5: The CRAPS gambling game
Day08 - Common Data Structure: List - 1
- Creating lists
- List operations
- Traversing elements
Day09 - Common Data Structure: List - 2
- List methods
- Adding and deleting elements
- Element positions and frequencies
- Sorting and reversing elements
- List comprehensions
- Nested lists
- Applications of lists
Day10 - Common Data Structure: Tuple
- Tuple definition and operations
- Packing and unpacking
- Swapping variable values
- Comparing tuples and lists
Day11 - Common Data Structure: String
- Defining strings
- Escape characters
- Raw strings
- Special character representations
- String operations
- Concatenation and repetition
- Comparison operations
- Membership operations
- Getting string length
- Indexing and slicing
- Traversing characters
- String methods
- Case conversion
- Search operations
- Property checks
- Formatting
- Trimming
- Replacing
- Splitting and joining
- Encoding and decoding
- Other methods
Day12 - Common Data Structure: Set
- Creating sets
- Variables of elements
- Set operations
- Membership operations
- Binary operations
- Comparison operations
- Set methods
- Immutable sets
Day13 - Common Data Structure: Dictionary
- Creating and using dictionaries
- Dictionary operations
- Dictionary methods
- Applications of dictionaries
Day14 - Functions and Modules
- Defining functions
- Function parameters
- Positional arguments and keyword arguments
- Default values for arguments
- Variable-length arguments
- Managing functions with modules
- Modules and functions in the standard library
Day15 - Function Practice
- Example 1: Random verification code
- Example 2: Determining prime numbers
- Example 3: Greatest common divisor and least common multiple
- Example 4: Data statistics
- Example 5: Random double-color ball number selection
Day16 - Advanced Function Usage
- Higher-order functions
- Lambda functions
- Partial functions
Day17 - Advanced Function Applications
- Decorators
- Recursive calls
Day18 - Introduction to Object-Oriented Programming
- Classes and objects
- Defining classes
- Creating and using objects
- Initialization methods
- The pillars of object orientation
- Object-oriented cases
- Example 1: A digital clock
- Example 2: A point on a plane
Day19 - Advanced Object-Oriented Programming
- Visibility and property decorators
- Dynamic attributes
- Static methods and class methods
- Inheritance and polymorphism
Day20 - Object-Oriented Programming in Practice
- Poker game
- Payroll settlement system
Day21~30 - Python Language Applications
Day21 - File I/O and Exception Handling
- Opening and closing files
- Reading and writing text files
- Exception-handling mechanisms
- Context-manager syntax
- Reading and writing binary files
Day22 - Object Serialization and Deserialization
- JSON overview
- Reading and writing JSON data
- The
pippackage-management tool - Getting data through web APIs
Day23 - Reading and Writing CSV Files with Python
- Introduction to CSV files
- Writing data to CSV files
- Reading data from CSV files
Day24 - Reading and Writing Excel Files with Python - 1
- Introduction to Excel
- Reading Excel files
- Writing Excel files
- Adjusting styles
- Formula calculation
Day25 - Reading and Writing Excel Files with Python - 2
- Introduction to Excel
- Reading Excel files
- Writing Excel files
- Adjusting styles
- Generating statistical charts
Day26 - Working with Word and PowerPoint Files in Python
- Working with Word documents
- Generating PowerPoint presentations
Day27 - Working with PDF Files in Python
- Extracting text from PDF files
- Rotating and overlaying pages
- Encrypting PDF files
- Batch watermarking
- Creating PDF files
Day28 - Image Processing with Python
- Introductory concepts
- Processing images with Pillow
- Drawing with Pillow
Day29 - Sending Email and SMS with Python
- Sending email
- Sending text messages
Day30 - Applications of Regular Expressions
- Knowledge related to regular expressions
- Python support for regular expressions
- Example 1: Input validation
- Example 2: Content extraction
- Example 3: Content replacement
- Example 4: Long-sentence splitting
Day31~35 - Other Related Content
Advanced Python
- Important knowledge points
- Data structures and algorithms
- Ways of using functions
- Object-oriented knowledge
- Iterators and generators
- Concurrent programming
Introduction to Web Frontend
- Using HTML tags to carry page content
- Rendering pages with CSS
- Handling interactive behavior with JavaScript
- Introduction to Vue.js
- Using Element
- Using Bootstrap
Playing with the Linux Operating System
- History of operating-system development and an overview of Linux
- Basic Linux commands
- Utilities in Linux
- The Linux file system
- Applications of the Vim editor
- Environment variables and shell programming
- Software installation and service configuration
- Network access and management
- Other related content
Day36~45 - Database Basics and Advanced Topics
Day36 - Overview of Relational Databases and MySQL
- Overview of relational databases
- Introduction to MySQL
- Installing MySQL
- Basic MySQL commands
Day37 - SQL in Detail: DDL
- Creating databases and tables
- Dropping tables and modifying tables
Day38 - SQL in Detail: DML
insertoperationsdeleteoperationsupdateoperations
Day39 - SQL in Detail: DQL
- Projection and aliases
- Filtering data
- Null handling
- Deduplication
- Sorting
- Aggregate functions
- Nested queries
- Grouping
- Table joins
- Cartesian product
- Inner join
- Natural join
- Outer join
- Window functions
- Defining windows
- Ranking functions
- Value-retrieval functions
Day40 - SQL in Detail: DCL
- Creating users
- Granting privileges
- Revoking privileges
Day41 - New Features of MySQL
- JSON type
- Window functions
- Common table expressions
Day42 - Views, Functions, and Procedures
- Views
- Usage scenarios
- Creating views
- Usage restrictions
- Functions
- Built-in functions
- User-defined functions (UDF)
- Procedures
- Creating procedures
- Calling procedures
Day43 - Indexes
- Execution plans
- Principles of indexing
- Creating indexes
- Regular indexes
- Unique indexes
- Prefix indexes
- Composite indexes
- Points to note
Day44 - Python Connecting to a MySQL Database
- Installing third-party libraries
- Creating a connection
- Getting a cursor
- Executing SQL statements
- Fetching data through a cursor
- Transaction commit and rollback
- Releasing connections
- Writing ETL scripts
Day45 - Hive in Practice
- Overview of Hive
- Environment setup
- Common commands
- Basic syntax
- Table-creation operations
- Writing data
- Common functions
- Grouping and aggregation
- Sampling operations
- Sorting operations
- Lateral expansion
- Performance optimization
Day46~60 - Django in Practice
Day46 - Getting Started with Django Quickly
- How web applications work
- HTTP requests and responses
- Overview of the Django framework
- A quick start in 5 minutes
Day47 - Models in Depth
- Relational-database configuration
- Using the ORM to complete CRUD operations on models
- Using the admin backend
- Django model best practices
- Model-definition reference
Day48 - Static Resources and Ajax Requests
- Loading static resources
- Ajax overview
- Using Ajax to implement voting
Day49 - Cookie and Session
- Implementing user tracking
- The relationship between cookies and sessions
- Django framework support for sessions
- Reading and writing cookies in view functions
Day50 - Reports and Logs
- Modifying response headers through
HttpResponse - Using
StreamingHttpResponseto handle large files - Using
xlwtto generate Excel reports - Using
reportlabto generate PDF reports - Using ECharts to generate frontend charts
Day51 - Logs and the Debug Toolbar
- Configuring logs
- Configuring Django Debug Toolbar
- Optimizing ORM code
Day52 - Applications of Middleware
- What middleware is
- Built-in middleware in Django
- Custom middleware and its application scenarios
Day53 - Introduction to Frontend-Backend Separation Development
- Returning JSON-format data
- Rendering pages with Vue.js
Day54 - RESTful Architecture and DRF Basics
- Overview of REST
- Getting started with the DRF library
- Frontend-backend separation development
- Applications of JWT
Day55 - RESTful Architecture and DRF Advanced
- Using CBV
- Data pagination
- Data filtering
Day56 - Using Caching
- The first law of website optimization
- Using Redis to provide caching services in Django projects
- Reading and writing cache in view functions
- Using decorators to implement page caching
- Providing caching services for data APIs
Day57 - Connecting Third-Party Platforms
- File-upload form controls and image preview
- How the server handles uploaded files
Day58 - Asynchronous Tasks and Scheduled Tasks
- The second law of website optimization
- Configuring a message queue service
- Using Celery in a project to make tasks asynchronous
- Using Celery in a project to implement scheduled tasks
Day59 - Unit Testing
Day60 - Project Going Online
- Unit testing in Python
- Django framework support for unit testing
- Using version-control systems
- Configuring and using uWSGI
- Separating dynamic and static resources and configuring Nginx
- Configuring HTTPS
- Configuring domain-name resolution
Day61~65 - Web Data Collection
Day61 - Overview of Web Data Collection
- The concept of web crawlers and their application areas
- Discussion of the legality of web crawlers
- Tools related to developing web crawlers
- The structure of a crawler program
Day62 - Data Fetching and Parsing
- Using the
requeststhird-party library to fetch data - Three ways to parse pages
- Regular-expression parsing
- XPath parsing
- CSS-selector parsing
Day63 - Concurrent Programming in Python
Day64 - Using Selenium to Fetch Dynamic Web Content
- Installing Selenium
- Loading pages
- Finding elements and simulating user behavior
- Implicit waits and explicit waits
- Executing JavaScript code
- Breaking anti-crawler protections with Selenium
- Setting up a headless browser
Day65 - Introduction to the Scrapy Crawler Framework
- Core Scrapy components
- The Scrapy workflow
- Installing Scrapy and creating a project
- Writing spider programs
- Writing middleware and pipeline programs
- Scrapy configuration files
Day66~80 - Python Data Analysis
Day66 - Overview of Data Analysis
- Responsibilities of a data analyst
- The skill stack of a data analyst
- Data-analysis libraries
Day67 - Environment Preparation
- Installing and using Anaconda
- Commands related to
conda
- Commands related to
- Installing and using JupyterLab
- Installation and startup
- Useful tips
Day68 - Applications of NumPy - 1
- Creating array objects
- Properties of array objects
- Indexing operations on array objects
- Regular indexing
- Fancy indexing
- Boolean indexing
- Slice indexing
- Case study: using arrays to process images
Day69 - Applications of NumPy - 2
- Methods related to array objects
- Obtaining descriptive statistics
- Other related methods
Day70 - Applications of NumPy - 3
- Array operations
- Operations between arrays and scalars
- Operations between arrays
- Universal unary functions
- Universal binary functions
- Broadcasting
- Common NumPy functions
Day71 - Applications of NumPy - 4
- Vectors
- Determinants
- Matrices
- Polynomials
Day72 - pandas Explained in a Simple Way - 1
- Creating
Seriesobjects - Operations on
Seriesobjects - Properties and methods of
Seriesobjects
Day73 - pandas Explained in a Simple Way - 2
- Creating
DataFrameobjects - Properties and methods of
DataFrameobjects - Reading and writing data in
DataFrame
Day74 - pandas Explained in a Simple Way - 3
- Data reshaping
- Data concatenation
- Data merging
- Data cleaning
- Missing values
- Duplicate values
- Outliers
- Preprocessing
Day75 - pandas Explained in a Simple Way - 4
- Data pivoting
- Obtaining descriptive statistics
- Sorting and top values
- Grouping and aggregation
- Pivot tables and crosstabs
- Data presentation
Day76 - pandas Explained in a Simple Way - 5
- Calculating year-over-year and period-over-period changes
- Window calculations
- Determining correlations
Day77 - pandas Explained in a Simple Way - 6
- Using indexes
- Range indexes
- Categorical indexes
- Multi-level indexes
- Interval indexes
- Date-time indexes
Day78 - Data Visualization - 1
- Installing and importing matplotlib
- Creating the canvas
- Creating the axes
- Drawing charts
- Line charts
- Scatter charts
- Bar charts
- Pie charts
- Histograms
- Box plots
- Displaying and saving charts
Day79 - Data Visualization - 2
- Advanced charts
- Bubble charts
- Area charts
- Radar charts
- Rose charts
- 3D charts
Day80 - Data Visualization - 3
- Seaborn
- Pyecharts
Day81~90 - Machine Learning
Day81 - A Brief Discussion of Machine Learning
- History of artificial intelligence
- What machine learning is
- Machine-learning application areas
- Classifications of machine learning
- The steps of machine learning
- A first machine-learning exercise
Day82 - k-Nearest Neighbors Algorithm
- Distance measurement
- Introduction to the dataset
- Implementing kNN classification
- Model evaluation
- Parameter tuning
- Implementing kNN regression
Day83 - Decision Trees and Random Forests
- Building decision trees
- Feature selection
- Data splitting
- Tree pruning
- Implementing a decision-tree model
- Overview of random forests
Day84 - Naive Bayes Algorithm
- Bayes' theorem
- Naive Bayes
- Algorithm principles
- Training stage
- Prediction stage
- Code implementation
- Advantages and disadvantages of the algorithm
Day85 - Regression Models
- Categories of regression models
- Calculating regression coefficients
- Introduction to a new dataset
- Code implementation of linear regression
- Evaluation of regression models
- Introducing regularization terms
- Another implementation of linear regression
- Polynomial regression
- Logistic regression
Day86 - K-Means Clustering Algorithm
- Algorithm principles
- Mathematical description
- Code implementation
Day87 - Ensemble Learning Algorithms
- Categories of algorithms
- AdaBoost
- GBDT
- XGBoost
- LightGBM
Day88 - Neural Network Models
- Basic composition
- Working principles
- Code implementation
- Advantages and disadvantages of the model
Day89 - Introduction to Natural Language Processing
- Bag-of-words model
- Word vectors
- NPLM and RNN
- Seq2Seq
- Transformer
Day90 - Machine Learning in Practice
- Data exploration
- Feature engineering
- Model training
- Model evaluation
- Model deployment
Day91~99 - Team Project Development
Day 91: Problems and Solutions in Team Project Development
-
Software process models
-
Classical process model (waterfall model)
- Feasibility analysis (study whether to do it or not), output: "Feasibility Analysis Report"
- Requirements analysis (study what to build), output: "Requirements Specification" and product-interface prototypes
- High-level design and detailed design, output: conceptual model diagrams (ER diagrams), physical model diagrams, class diagrams, sequence diagrams, and so on
- Coding / testing
- Release / maintenance
The biggest disadvantage of the waterfall model is that it cannot embrace changing requirements. You only see the product after the entire process is finished, which lowers team morale.
-
Agile development (Scrum) - product owner, Scrum Master, developers - Sprint
- Product backlog (user stories, product prototypes)
- Planning meetings (estimation and budgeting)
- Daily development (stand-up meetings, Pomodoro technique, pair programming, test-first development, code refactoring, and so on)
- Bug fixing (issue description, reproduction steps, tester, assignee)
- Version releases
- Review meetings (showcase, with user participation)
- Retrospective meetings (summarize the current iteration cycle)
Supplement: Manifesto for Agile Software Development
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Roles: product owner (decides what to build and has the authority to finalize requirements), team lead (solves various problems, focuses on improving the way the team works, and shields the development team from outside interference), development team (project executors, specifically developers and testers).
Preparatory work: business case and funding, contracts, vision, initial product requirements, initial release plan, equity allocation, team formation.
Agile teams usually have 8-10 people.
Workload estimation: quantify development tasks, including prototypes, logo design, UI design, frontend development, and so on. Break each item down to the smallest task unit possible; the standard is that the smallest task should not take more than two days. Then estimate the total project duration. Put each task on the task board, which is divided into three parts:
to do,in progress, anddone.
-
-
Building the project team
-
Team composition and roles
-
Programming standards and code review (
flake8,pylint) -
Some "conventions" in Python (please refer to Python Programming Conventions - How to Write Pythonic Code)
-
Factors that affect code readability:
- Too few comments or no comments
- Code breaks the best practices of the language
- Anti-pattern programming (spaghetti code, copy-paste programming, arrogant programming, ...)
-
-
Introduction to team-development tools
- Version control: Git, Mercury
- Defect management: Gitlab, Redmine
- Agile closed-loop tools: ZenTao, JIRA
- Continuous integration: Jenkins, Travis-CI
Please refer to Problems and Solutions in Team Project Development.
Project Topic Selection and Understanding the Business
-
Defining the topic scope
- CMS (client side): news aggregation websites, Q&A / sharing communities, movie-review / book-review websites, and so on
- MIS (client side + admin side): KMS, KPI assessment systems, HRS, CRM systems, supply-chain systems, warehouse-management systems, and so on
- App backends (admin side + data APIs): second-hand trading, newspapers and magazines, niche e-commerce, news and information, travel, social apps, reading apps, and so on
- Other types: your own industry background and work experience, and business domains that are easier to understand and control
-
Understanding requirements, dividing modules, and assigning tasks
- Requirement understanding: brainstorming and competitor analysis
- Module division: draw mind maps (XMind). Each module is a branch node, and each concrete function is a leaf node (expressed with verbs). Ensure that each leaf node cannot be split into new nodes. Determine the importance, priority, and workload of each leaf node.
- Task assignment: the project lead assigns tasks to each team member based on the above indicators.
-
Creating the project schedule (updated daily)
Module Function Member Status Done Hours Planned Start Actual Start Planned End Actual End Notes Comments Add comment Wang Dachui In progress 50% 4 2018/8/7 2018/8/7 Delete comment Wang Dachui Waiting 0% 2 2018/8/7 2018/8/7 View comment Bai Yuanfang In progress 20% 4 2018/8/7 2018/8/7 Code review needed Comment voting Bai Yuanfang Waiting 0% 4 2018/8/8 2018/8/8 -
OOAD and database design
-
UML class diagrams
-
Creating tables from models (forward engineering)
For example, in a Django project you can create database tables with the commands below.
python manage.py makemigrations app python manage.py migrate
-
Using PowerDesigner to draw physical model diagrams
-
Creating models from database tables (reverse engineering)
For example, in a Django project you can generate models with the command below.
python manage.py inspectdb > app/models.py
-
Day 92: Detailed Explanation of Docker Container Technology
- Introduction to Docker
- Installing Docker
- Creating containers with Docker (Nginx, MySQL, Redis, Gitlab, Jenkins)
- Building Docker images (writing Dockerfiles and related directives)
- Container orchestration (Docker Compose)
- Cluster management (Kubernetes)
Day 93: MySQL Performance Optimization
- Basic principles
- The InnoDB engine
- Using indexes and the points to note
- Data partitioning
- SQL optimization
- Configuration optimization
- Architecture optimization
Day 94: Network API Interface Design
- Design principles
- Key issues
- Other issues
- Writing documentation
Day 95: Developing Commercial Projects with Django
Common Issues in Project Development
- Database configuration (multiple databases, master-slave replication, database routing)
- Cache configuration (partitioned caching, key settings, timeout settings, master-slave replication, failover with Sentinel)
- Logging configuration
- Analysis and debugging (Django Debug Toolbar)
- Useful Python modules (date calculation, image processing, data encryption, third-party APIs)
REST API Design
- RESTful architecture
- Writing API interface documentation
- Applying django-REST-framework
Analysis of Key and Difficult Points in the Project
- Using caching to reduce database pressure - Redis
- Using message queues to decouple services and smooth traffic peaks - Celery + RabbitMQ
Day 96: Software Testing and Automated Testing
Unit Testing
- Types of testing
- Writing unit tests (
unittest,pytest,nose2,tox,ddt, and so on) - Test coverage (
coverage)
Deploying Django Projects
- Preparations before deployment
- Key settings (
SECRET_KEY/DEBUG/ALLOWED_HOSTS/ cache / database) HTTPS/CSRF_COOKIE_SECURE/SESSION_COOKIE_SECURE- Log-related configuration
- Key settings (
- Review of common Linux commands
- Installation and configuration of common Linux services
- Using uWSGI / Gunicorn and Nginx
- Comparison between Gunicorn and uWSGI
- For simple applications that do not need a lot of customization, Gunicorn is a good choice. The learning curve of uWSGI is much steeper than Gunicorn, and Gunicorn's default parameters can already fit most applications.
- uWSGI supports heterogeneous deployment.
- Because Nginx itself supports uWSGI, in production Nginx and uWSGI are usually deployed together, and uWSGI is a full-featured and highly customizable WSGI middleware.
- In performance, Gunicorn and uWSGI are actually quite close.
- Comparison between Gunicorn and uWSGI
- Deploying test and production environments with virtualization technology (Docker)
Performance Testing
- Using AB
- Using SQLslap
- Using sysbench
Automated Testing
- Using Shell and Python for automated testing
- Using Selenium for automated testing
- Selenium IDE
- Selenium WebDriver
- Selenium Remote Control
- Introduction to Robot Framework
Day 97: Analysis of Key Technical Points for E-commerce Websites
- Business models and key requirements
- Physical-model design
- Third-party login
- Cache preheating and query caching
- Shopping-cart implementation
- Payment integration
- Flash-sale and overselling issues
- Static-resource management
- Full-text search solutions
Day 98: Project Deployment and Performance Tuning
- MySQL database tuning
- Web-server performance optimization
- Nginx load-balancing configuration
- Using Keepalived to achieve high availability
- Code performance tuning
- Multithreading
- Asynchronization
- Static-resource access optimization
- Cloud storage
- CDN
Day 99: Common Interview Questions
- Computer-science fundamentals
- Python fundamentals
- Questions related to web frameworks
- Questions related to crawlers
- Data analysis
- Project-related questions
Day 100 - Supplementary Content
- Interview handbooks
- Python interview handbook
- SQL interview handbook (for data analysts)
- Business-analysis interview handbook
- Machine-learning interview handbook
- Mathematical foundations of machine learning
- Deep learning
- Computer vision
- Large language models






