This is for a complete guide to learn Python for absolute beginners. Keep in mind that a month is plenty of time. If you can devote 6–7 hours every day to it. You'll get a lot more done than you think.
One Month Goal:
As a beginner, your first-month goal should be :
- Get familiar with basic concepts (variable, condition, list, loop, function)
- Practice 30+ coding problems
- Build 2 projects to apply the concepts
- Get familiar with at least 2 frameworks
- Get started with IDE, Github, hosting, services, etc
Week-1: Get Familiar with Python
Just be curious to see how things can be done in Python. Check as many things as possible.
- Day-1: 4 Basic Concepts (4 hours): print, variable, input, conditionals
- Day -2: 4 Basic Concepts (5hours): List, for loop, while loop, function, import Modules
- Day-3: Simple Coding Problems: (5 hours): Swap two variables, Convert Celsius to Fahrenheit, Sum of all digits in a number, Check a prime number, Generate a random number, Remove duplicate from a list, etc.
- Day -4: Medium Coding Problems (6 hours): Reverse a string (Check palindrome), Calculate GCD, Merge two sorted Array, Number guessing game, Calculate the age, etc.
- Day-5: Data Structures (6 hours): Stack, Queue, Dictionary, Tuples, Tree, Linked List.
- Day-6: OOP (6 hours): Object, Class, Method and constructor, OOP- Inheritance
- Day-7: Algorithm (6 hours): Search (Linear and Binary search), Sort (Bubble sort, Selection Sort), Recursive function (factorial, Fibonacci series), Time Complexity (Linear, Quadratic, and Constant)
For this step you don't have to install Python in your computer. You can use a online code editor like Programiz or Replit. Don’t make installing Python your first task if you are not tech savvy.
Week-2: Start Software Development (Build Project)
Get into software development. Try out the things together to make a real-world project.
- Day-1: Get Familiar with an IDE(5 hours): IDE is the playground where you will write code for largest projects. You need to be good at one IDE. I will recommend starting with VS code install Python extension or Jupyter notebook.
- Day -2: Github (6 hour): Explore Github, create a repository. Try out Commit, diff, and Push code. Also, learn branch, merge, and pull Requests.
- Day 3: First Project: Simple Calculator (4 hours): Get familiar with Tkinter. Create a simple calculator.
- Day 4 5, 6: Personal Project (5 hours each day): Choose one of the projects and start working on it. If you have no idea what project you can work on. Check out this list: Some good Python projects.
- Day-7: Hosting (5 hours): Learn Server and hosting to host your project. Create a Heroku setup and deploy the app you built.
Just by following the steps in a class or in a video, you won’t build your ability to think. So, you have to apply your knowledge to a project. Once you struggle to find an answer, you will learn it.
Week-3: Get Comfortable as a Programmer
Your week 3 goal is to get the overall process of a software development process. You will not need to master all of these. But you should know some basic parts because they will impact your everyday job.
- Day -1: Database Basics (6 hours): Basic SQL query (Create Table, Select, Where, Update), SQL Function (Avg, Max, Count), Relation database (Normalization), Inner Join, Outer Join, etc
- Day-2: Use Database with Python: (5 hours): Use a database framework (SQLite or Pandas), Connect to a database, create and insert data in multiple tables, Read data from tables.
- Day-3: API (5 hour): How to call an API. Learn JSON, micro-service, Rest API.
- Day-4: Numpy (4 hours): Get Familiar with Numpy and practice first 30 Numpy exercises
- Day-5, 6: Portfolio Website: (5 hours each day): Learn Django, Build a portfolio website with Django. Also checkout Flask framework.
- Day-7: Unit test, log, debug (4 hours): Learn unit test (PyTest), how to set up and check Log, and use Breakpoints.
If you are super crazy and super dedicated, you can finish this routine in a month. You have to make —
- Learning Python as your full-time activity. You will start at 8.00 am and you keep doing it until 5.00pm. In between, you will take a lunch break and small snacks break (1hour total).
- At 8.00 make a shortlist of things that you will learn today. After that take one hour to revise and practice the things you have learned yesterday.
- From 9.00–12.00: you will learn and practice less. After lunch, you will practice more and if you get stuck you will search online.
- Strictly maintain 4–5 hours of learning and 2–3 hours of practice every single day (max you can take 1-day/week break).
- Your friends will think that you are crazy. So, be that crazy.
If you have a full-time job or you are a student, it will take longer. As a full time student, it took me 8 months to finish this list. Now I work as a senior developer. For my wife who works in a major bank in the USA, it took her 6 months to finish it. So, it doesn’t matter how long it takes, finish the list.
WeeK-4: Get Serious to Get a Job(intern)
Your week 4 goal is to seriously think about getting hired. Even you don’t want to get hired right now, you will learn a lot just by exploring the path.
- Day-1: Resume: (5 hours): Build a one-page Resume. Put your skills summary at the top. Must put the lists of projects with Github links.
- Day-2: Portfolio Website (6 hours): Write two or more blogs. Add those in the previous Portfolio website that you have developed.
- Day -3: LinkedIn Profile(4 hours): Create a LinkedIn Profile. Put everything from your resume in your LinkedIn.
- Day -4: Interview Preparation(7 hours): Google common interview question. Practice 10 interview coding problems in a white paper. Extract previous interview questions from sites like Glassdoor, Careercup, etc.
- DAY -5: Networking(~ hours): Get out of your closet. Start going to Meetups, Career fair to Meet other developers and recruiters.
- DAY -6: Just Apply (~ hours): Google “Python Jobs”, check out LinkedIn Job and local job sites. Select 3 jobs to apply. Customize your resume for each job. Find 2 or 3 things in each job requirements that you don’t know. Spend the next 3–4 days to learn them.
- Day-7: Learn Through Rejections (~ hours): Every time you got rejected, figure out 2 things that you should have known to get the job. Now, spend the next 4–5 days to master each of them. In this way, every rejection will make you a better developer.
Enjoy the process:
Learning is a process. Learning will have challenges. The more you struggle, the better developer you will become.
Ready for a Job:
The reality is that you will never be completely prepared for a job. All you have to do is master a single or two skills. Also, familiarize yourself with various topics in order to break through the interview barrier. You will get a lot of knowledge once you begin working.