I will show you how to learn and master Python in one month.

Remember, one month has plenty of time. If you can spend 6–7hours every day. You will finish much more than you think.

One Month Goal:

As a beginner, your first-month goal should be-

  1. Get familiar with basic concepts (variable, condition, list, loop, function)
  2. Practice 30+ coding problems
  3. Build 2 projects to apply the concepts
  4. Get familiar with at least 2 frameworks
  5. Get started with IDE, Github, hosting, services, etc

This will make you a Junior Python Developer.

Overall plan:

Now I will break down the weekly plan for you.

Week-1: Get Familiar with Python

Just be curious to see how things can be done in Python. Check as many things as possible.

  1. 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.
  2. Day-5: Data Structures (6 hours): Stack, Queue, Dictionary, Tuples, Tree, Linked List.
  3. Day-6: OOP (6 hours): Object, Class, Method and constructor, OOP- Inheritance
  4. 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)

Don’t Install Python:

This one is contradictory. But trust me. I know a few friends who burned their desire by failing to install a language kit or an IDE. So, my recommendation is to jump into an android app like Programming Hero or online code playground Repl and start exploring the language. Don't make the installing Python is 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.

  1. 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.
  2. Day -2: Github (6 hour): Explore Github, create a repository. Try out Commit, diff, and Push code. Also, learn branch, merge, and pull Requests.
  3. Day 3: First Project: Simple Calculator (4 hours): Get familiar with Tkinter. Create a simple calculator.
  4. 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.
  5. Day-7: Hosting (5 hours): Learn Server and hosting to host your project. Create a Heroku setup and deploy the app you built.

Why Project:

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.

  1. 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
  2. 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.
  3. Day-3: API (5 hour): How to call an API. Learn JSON, micro-service, Rest API.
  4. Day-4: Numpy (4 hours): Get Familiar with Numpy and practice first 30 Numpy exercises
  5. Day-5, 6: Portfolio Website: (5 hours each day): Learn Django, Build a portfolio website with Django. Also checkout Flask framework.
  6. Day-7: Unit test, log, debug (4 hours): Learn unit test (PyTest), how to set up and check Log, and use Breakpoints.

True-time (Secret):

If you are super crazy and super dedicated, you can finish this routine in a month. You have to make —

  1. 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).
  2. 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.
  3. 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.
  4. Strictly maintains, 4–5 hours of learning and 2–3 hours of practice every single day (max you can take 1-day/week break).
  5. 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. My wife who works in a major bank in the USA. It took 6 months for her 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.

  1. 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.
  2. Day-2: Portfolio Website (6 hours): Write two or more blogs. Add those in the previous Portfolio website that you have developed.
  3. Day -3: LinkedIn Profile(4 hours): Create a LinkedIn Profile. Put everything from your resume in your LinkedIn.
  4. 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.
  5. DAY -5: Networking(~ hours): Get out of your closet. Start going to Meetups, Career fair to Meet other developers and recruiters.
  6. 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.
  7. 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.

Ready for a Job:

The truth is- you will never be 100% ready for a job. All you have to do is to learn one or two things very well. And get familiar with other things to jump over the interview wall. Once you start a job, you will learn a lot from there.

Enjoy the process:

Learning is a process. Learning will have challenges. The more you struggle, the better developer you will become.

If you can finish everything in 28 days, you are gold. On the other hand, if you can finish 60–70% of the contents, you will develop the right characteristics to become a Programmer.

Where to learn from:

If you are still wondering from where you should start, feel free to check out

  1. Programming Hero. (fun android app to learn Python)
  2. Learn Python for Data Science (Free: web-based resources to learn)
  3. Youtube video series (Learn by watching videos)

So, start the journey. Future is yours.