Beginner Roadmap
How to Learn Python in 2026
An 8-step roadmap for total beginners. What to learn, in what order, how long it takes, and the first project to build.
Last updated: October 2026 • Reading time: ~12 minutes
Python is a beginner-friendly language used for AI, data science, web development, and automation. Most beginners reach basic proficiency in 6–10 weeks with 1–2 hours of daily practice. No prior programming experience required.
The 8-step order: install Python → variables → control flow → functions → lists/dicts → files & errors → modules → first project.
Who this roadmap is for
Never written code before. Start here.
Coming from a non-tech background. This gets you productive fast.
Skip to steps 2–7 as a syntax refresher. Step 8 is where the value is.
📍 Your 8-Step Python Roadmap
Install Python & set up an editor
Download Python 3.13+ from python.org. On Windows, check "Add Python to PATH" during install. On macOS, use Homebrew: brew install python. On Linux, it's usually pre-installed.
For an editor, use VS Code with the Python extension. It's free, works on all platforms, and has excellent autocomplete. Avoid starting with PyCharm or Jupyter — they add complexity you don't need yet.
# Verify your install
python --version
# Python 3.13.x
# Your first line of Python
python -c "print('Hello, World!')"
Pro tip: Learn one command-line tool at a time. You only need python and pip for now.
→ Related on MAK UI: print() reference
Variables & basic types
Python has four basic types you'll use constantly: strings (text), integers (whole numbers), floats (decimals), and booleans (True/False). Variables are just labels pointing to values.
name = "Alice" # string
age = 30 # integer
price = 19.99 # float
is_member = True # boolean
# Type conversion
age_str = str(age)
price_int = int(price) # 19
Pro tip: Python is dynamically typed — you don't declare types. But use type hints for clarity: age: int = 30.
→ Related: len() reference
Control flow — if/else, for, while
Control flow is where your programs start making decisions and repeating work.
# if / elif / else
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
else:
grade = "C"
# for loops — iterate over a sequence
for i in range(5):
print(i)
# while loops — repeat until a condition changes
count = 0
while count < 3:
print(count)
count += 1
Watch out: range(5) generates 0, 1, 2, 3, 4 — the stop value is exclusive.
→ Related: range() reference
Functions — def, arguments, returns
Functions let you package logic into reusable blocks. Every Python program of any size is built from functions.
def greet(name, greeting="Hello"):
"""Return a greeting for the given name."""
return f"{greeting}, {name}!"
print(greet("Alice")) # Hello, Alice!
print(greet("Bob", "Hi")) # Hi, Bob!
Pro tip: Name functions as verbs (calculate_total, not total). This one habit will keep your code readable forever.
Lists, tuples, sets, dicts
Four built-in collections cover 95% of real code:
# list — ordered, mutable
fruits = ["apple", "banana"]
fruits.append("cherry")
# tuple — ordered, immutable
coords = (10, 20)
# set — unordered, unique
tags = {"python", "coding", "python"} # {'python', 'coding'}
# dict — key-value pairs
user = {"name": "Alice", "age": 30}
user["email"] = "alice@example.com"
Pro tip: Use a dict when you need named fields. Use a list when order and duplicates matter.
Files & error handling
Real programs read input from files and handle things going wrong. Two concepts unlock this: with open() and try/except.
# Read a file
with open("data.txt", "r") as f:
content = f.read()
# Write a file
with open("output.txt", "w") as f:
f.write("Hello\n")
# Handle errors
try:
age = int(input("Age: "))
except ValueError:
print("That's not a number!")
Pro tip: Always use with when opening files. It auto-closes them, even if your code errors.
Modules & the standard library
Python ships with a "standard library" — hundreds of modules ready to use. Import what you need, don't reinvent.
import os
import json
import random
from datetime import datetime
print(random.randint(1, 10))
print(datetime.now().year)
# Install external packages
# pip install requests
Learn to use pip — Python's package manager. Every library on PyPI installs with pip install package_name.
Pro tip: Before installing a package, check if the standard library already does it. json, pathlib, and itertools cover a huge amount of real work.
Build your first project
This is where learning sticks. Pick one of these three projects. Don't skip this step — building beats watching tutorials every time.
Add, list, complete, and delete tasks. Save them to a JSON file. Uses: lists, dicts, functions, files, error handling.
Ask questions from a JSON file, track the score, show a final result. Uses: loops, conditionals, dicts, files, input.
Fetch weather from a free API, display results. Uses: requests, JSON, error handling, f-strings.
Pro tip: Push your project to GitHub even if it's small. Recruiters care more about a small finished project than a large incomplete one.
⚠️ Common mistakes beginners make
- Tutorial hell. Watching 20 hours of videos without writing code. Fix: for every 30 minutes of video, spend 60 minutes coding.
- Memorizing syntax. You'll forget it anyway. Fix: learn the concepts, look up syntax as needed.
- Skipping functions too long. Writing everything at the top level gets messy fast. Fix: move logic into functions by week 2.
- Not using an IDE. Typing into a text file loses autocomplete, debugging, and linting. Fix: use VS Code from day one.
- Ignoring errors. Reading tracebacks is a core skill. Fix: when something breaks, read the last line of the error first.
- Jumping into frameworks too early. Don't start Django or pandas until you're comfortable with vanilla Python.
- Not reading other people's code. Fix: browse GitHub. Pick one small repo per week.
- Quitting after week 2. Week 2 is the hardest. Push through — it gets easier.
⏱️ Realistic timeline
| Phase | Steps | Time (1–2 hrs/day) |
|---|---|---|
| Setup & basics | Steps 1–2 | 3–5 days |
| Control & functions | Steps 3–4 | 1–2 weeks |
| Collections | Step 5 | 1 week |
| Files & modules | Steps 6–7 | 1 week |
| First project | Step 8 | 2–3 weeks |
Total: ~6–10 weeks to basic proficiency. Reaching job-ready Python takes 6–12 months depending on the specialization (web, data, AI).
🎯 What to learn after Python basics
After step 8, pick a specialization based on what you want to build:
❓ Frequently asked questions
How long does it take to learn Python?
For basic proficiency, most beginners need 6 to 10 weeks of consistent practice (1-2 hours per day). Reaching job-ready Python skills typically takes 6-12 months depending on the specialization (web, data, AI).
Do I need prior programming experience to learn Python?
No. Python is one of the most beginner-friendly languages. You don't need any prior coding experience to start with this roadmap.
Should I learn Python 2 or Python 3?
Always learn Python 3. Python 2 reached end-of-life in January 2020 and is no longer supported. All new code should use Python 3.13 or later.
Is Python enough to get a job?
Python alone is a strong foundation, but most jobs require a specialization: web development (Django, Flask), data analysis (pandas, NumPy), machine learning (scikit-learn, PyTorch), or automation/DevOps.
What should I build first in Python?
Start with a command-line tool like a to-do list, a quiz game, or a simple calculator. These projects teach input, output, logic, and file handling without overwhelming you with frameworks.
Can I learn Python for free?
Yes. Python itself is free, and there are excellent free resources including the official Python documentation, makuistudio.com lessons, and community tutorials. All you need is a computer and internet access.
What is the best way to practice Python?
Write code every day, even for 20 minutes. Build small projects, solve coding challenges on sites like Codewars or LeetCode, and read other people's code on GitHub.
Do I need math to learn Python?
Basic arithmetic is enough for general programming. Advanced math is only needed if you specialize in machine learning, data science, or scientific computing.