Learn Python in 90 Days: A Realistic, Free Study Plan for Indian Beginners
A free, week-by-week plan to learn Python in 90 days at about 1 to 1.5 hours a day. Honest time math, a 12-week calendar, and a project from Week 7.

Two months before campus placements and zero Python. That is a tight window, and the honest answer is that it is still possible — but only if you stop collecting tutorials and follow one plan all the way to the end. This post is that plan: 90 days, free resources only, and a realistic number of hours per day.
I am Arnab Biswas, a full-stack instructor at DevHives in Kolkata. I have watched hundreds of beginners start Python. The ones who finish all have one thing in common: a calendar, not motivation.
The short answer
You can learn Python in 90 days to a job-ready beginner level by studying about 1 to 1.5 hours a day, which adds up to roughly 90 to 120 hours. That is enough for solid basics plus two small portfolio projects. It will not make you a senior engineer. It will make you someone who can write real, working Python and keep learning on the job.
Can you really learn Python in 90 days?
Yes, for beginner level. No, if you expect to be an expert. Let me show you the honest math instead of selling you a dream.
Ninety days at 1 to 1.5 hours a day is 90 to 120 hours of focused study. Research on skill-building suggests you need about 20 hours to go from clueless to functional at a new skill, and a few hundred hours to get good. So 100 hours lands you firmly in “functional and growing.”
Here is what that buys you in plain terms:
- Job-ready basics: variables, loops, functions, files, errors, and one library.
- Two small projects you can show in an interview.
- The ability to read other people’s Python without panic.
Here is what it does not buy you: deep computer science, system design, or years of debugging instinct. Those come later. Do not let anyone shame you for starting small.
If you have not yet decided whether to learn coding at all, read my guide on how to learn to code in 2026 first. This post assumes you have already decided. Here is the exact Python plan.
What do you need before Day 1?
You need three things, and all of them are free. No paid course, no fast laptop, no fancy setup.
This is where many Indian beginners get stuck before they even start. They think they need a costly bootcamp. You do not. Here is the whole stack:
- A place to run code. If your laptop is slow or you only have a phone, use a free online editor like Replit or Google Colab in the browser. No install needed.
- One free resource to learn from (I list four good ones below). Pick one. Do not open all four.
- A fixed daily slot. Same time every day. Even 60 minutes works if you protect it.
A quick note on low bandwidth: download lessons when you have wifi, then study offline. Most of the resources below have text you can save and read on a phone during your commute.
The short free resource stack
Pick one as your main path. Use the others only when you are stuck on a topic.
- Automate the Boring Stuff with Python — free to read online, very beginner-friendly, project-focused.
- freeCodeCamp Scientific Computing with Python — free, structured, with a certificate at the end.
- The official Python Tutorial — the source of truth when you want the real answer.
- Real Python: First Steps — clear short articles for when one concept will not click.
The 90-day Python calendar
Below is the full plan: 12 weeks, one focus per week, a daily goal, and one thing you deliver by the weekend. Save this table. It is the spine of everything.
| Week | Focus | Daily goal (~1–1.5 hrs) | Deliverable by weekend |
|---|---|---|---|
| 1 | Setup + print, variables, input | Type and run 5 tiny programs | A program that asks your name and greets you |
| 2 | If/else, loops, basic math | Solve 3 small logic problems | A number-guessing game |
| 3 | Lists and dictionaries | Practice 1 data-structure task | A to-do list that stores items in a list |
| 4 | Strings, slicing, loops over data | Rewrite 2 old programs using lists | A word counter for any text you paste |
| 5 | Functions and reuse | Turn old code into functions | A small calculator built from functions |
| 6 | Files and error handling | Read and write 1 file per day | A program that saves notes to a file |
| 7 | Project part 1: plan + build | Build one small feature daily | A working first version of your project |
| 8 | Project part 2: fix + finish | Fix one bug, add one feature daily | A finished project on GitHub |
| 9 | Pick a track (web / data / automation) | Follow one tutorial in your track | A “hello world” in your chosen track |
| 10 | One library in your track | Read docs + build tiny examples | A demo using that library |
| 11 | Project 2 in your track | Build daily, commit daily | A second project, half done |
| 12 | Finish + write a README + portfolio | Polish, document, deploy | Two projects live, portfolio updated |
Weeks 1–2: nail the basics
Spend these two weeks on the core building blocks and nothing else. Do not jump ahead to web frameworks. The foundation is what most people skip, and it is why they get stuck in Week 6.
Week 1 is print, variables, and input. Week 2 is decisions and loops. By the end you should be able to write a small program that thinks: ask a question, check the answer, repeat. Here is the kind of thing you will build by Week 2:
import random
secret = random.randint(1, 10)
guess = int(input("Guess a number 1-10: "))
if guess == secret:
print("You got it!")
else:
print("Nope, it was", secret)
If that code feels confusing right now, good. By Day 14 it will feel obvious. That shift is the whole point of Weeks 1 and 2.
Weeks 3–4: data structures you will actually use
Learn lists and dictionaries deeply, because real programs store and move data constantly. These two structures cover most of what beginners need.
A list holds items in order, like a queue at a tea stall. A dictionary maps a key to a value, like a phone book mapping a name to a number. In Week 4 you add strings and slicing, which let you cut and search text. Build a to-do list and a word counter, and these stop being abstract.
Weeks 5–6: functions, files, and errors
This is the stretch that turns toy scripts into real programs. Functions let you reuse code. Files let your program remember things after it closes. Error handling stops one bad input from crashing everything.
Most beginners write everything in one long block. In Week 5 you break that block into named functions, each doing one job. In Week 6 you save data to a file and wrap risky code in try and except. After this, you can build something a normal person would actually use.
Weeks 7–8: build your first real project
Stop learning new things for two weeks and build one project end to end. This is the single most important phase of the 90 days.
Pick something small and real. An expense tracker. A quiz app. A tool that renames your photos. The topic does not matter; finishing does. Build one small feature each day in Week 7, then spend Week 8 fixing bugs and putting it on GitHub.
A finished tiny project beats a half-watched advanced course every single time.
One more thing: write a short README that explains what your project does and how to run it. Recruiters read it. Your future self reads it too.
Weeks 9–12: specialise and build a portfolio
Now pick one track and go deeper, because “I know a little Python” is weaker than “I built two things with Python.” Depth gets you hired, not breadth.
Choose one direction that excites you:
- Web: learn Flask, build a small site with a form and a database.
- Data: learn pandas, clean a real dataset, make a chart.
- Automation: learn to script boring tasks, like sorting files or scraping a page.
Use Weeks 9 to 11 to build a second project in that track. Use Week 12 to polish both projects, write clean READMEs, and update your portfolio. Two finished projects plus clean Python basics is a real, honest beginner portfolio.
How many hours a day do you actually need?
One to 1.5 hours a day, six days a week, is the sweet spot for this plan. More is fine if you have the time. Less also works; you just stretch the calendar.
What matters more than total hours is consistency. Thirty focused minutes every day beats one frantic six-hour Sunday. Your brain learns code by repetition over time, not by cramming.
Try this now: open your phone calendar and block the same 60 minutes every day for the next 7 days. Title it “Python.” Protect it like a class you paid for.
How do you escape tutorial hell?
Close the video and rebuild the example from memory, without looking. That one habit is the difference between watching Python and knowing Python.
I lost my own first month this way. I watched tutorial after tutorial and felt productive. Then someone gave me a blank file and I froze. I could recognise code but not write it. The fix was uncomfortable: after each lesson, I closed everything and rebuilt it from scratch.
You will get it wrong the first time. Good. The struggle is the learning. For a deeper method on this, read my post on how to study a programming book without just skimming it.
How do you keep going during a busy week? (India edition)
Plan for the missed day before it happens, so one bad week does not end your streak. Real life has exams, festivals, and family events. Your study system must survive them.
Here is my rule for students: never miss two days in a row. Miss one day, fine. The next day, even 15 minutes counts. Open the editor, type three lines, close it. The streak matters more than the volume.
- Busy week? Drop to a 15-minute “review only” day. Re-read yesterday’s code.
- Festival or exams? Plan a lighter week in advance and shift deliverables, do not delete them.
- Lost motivation? Re-run your last working program. Seeing your own code run is fuel.
What do you do after Day 90?
Keep building bigger projects and start applying for junior roles or internships. Day 90 is a checkpoint, not a finish line.
By now you have basics and two projects. Next, build a third project that is harder than you are comfortable with. Learn Git properly. Start reading other people’s code on GitHub. And think hard about how AI tools fit into your learning, which I cover in is it worth learning to code now that AI exists.
Use AI like a vending machine, not a tutor: grab a quick answer, then make sure you understand it yourself. If you let it write everything, you learn nothing.
Common questions about the 90-day plan
Is 90 days enough to learn Python?
Ninety days is enough to learn beginner-level Python and build two small projects, at about 1 to 1.5 hours a day. It is not enough to become an expert, but it makes you job-ready for entry-level basics.
How many hours a day do I need to learn Python?
About 1 to 1.5 hours a day, six days a week, fits this plan. Consistency matters more than total hours, so 30 focused minutes daily beats one long weekend session.
Can I learn Python for free?
Yes. You can learn Python fully free using Automate the Boring Stuff, freeCodeCamp, the official Python tutorial, and Real Python. You do not need any paid course to reach beginner level.
Do I need maths to learn Python?
No. Basic Python needs only simple arithmetic you already know. Heavy maths only matters for specific tracks like data science or machine learning, not for general programming.
Which is the best free resource to learn Python?
For beginners, Automate the Boring Stuff is the best free starting point because it is project-focused and easy to read. Use the official Python tutorial when you want the exact, correct answer.
Can I learn Python on just a phone?
Yes, for the early weeks. Use a browser editor like Replit to run code on a phone. For larger projects later, a laptop or a free lab computer makes life much easier.
Start Week 1 today
Do not read this twice. Open your calendar, block tomorrow’s 60 minutes, and start Week 1 today. Pick one resource, type your first program, and run it. That is Day 1.
That is the whole plan. The people who finish it are not the most talented ones; they are the ones who kept a calendar instead of waiting for motivation. Ninety days from now the difference between you and the person who never started is just the blocks you actually showed up for.

