Python Track

Zero to useful. Free forever.

Home › Courses › Python
🐍 Learning Path · 2026

Learn Python.
Ship something real.

Python is the cleanest first language — no semicolons, no curly braces, no type declarations required. This page is the map: what to learn, in what order, how long each phase takes, and the exact project to build at the end. Follow it in order and you'll be dangerous in 8 weeks.

~8 weeks, 1 hr/day Beginner → Intermediate Python 3.x
Install Python The Path 5 Concepts Example Mistakes Projects FAQ

Learning Python free in 2026 means three things: (1) a single structured path — not scattered tutorials, (2) a project after every phase, and (3) 1 hour a day for 8 weeks. Syntax alone takes 2 weeks. Data structures and functions take 2 more. The final 4 weeks are projects — and that's where real understanding happens.

Skip this page if: you already know another language and just need syntax. Read this page if: you're starting from zero and want to know exactly what comes next instead of guessing.

Why Python first

Most beginners start with JavaScript because it's "the language of the web." That's the wrong call. JavaScript has async, the DOM, closures, and a thousand frameworks — all of which are confusing before you understand variables and loops. Python lets you focus entirely on programming concepts without fighting the language.

Python reads like pseudocode. if user.is_active and user.age >= 18: is exactly what you think it is. The syntax disappears, and what's left is the logic — which is the thing you're actually trying to learn.

Python is also genuinely useful outside of web development. Data analysis, automation, scripting, machine learning, DevOps, science — all run on Python. Learning it first opens more doors than learning JavaScript first, even if JavaScript is more searchable.

🗺️ The 8-week path

Follow these in order. Do not skip ahead — each phase depends on the one before it.

1

Setup & first script

Week 1 · ~2 hours

Don't install anything yet. Run Python in the browser for the first 3 days — get the feel for print(), variables, and basic math without fighting your machine. Then install Python locally on day 4.

Install Pythonprint()VariablesStrings & numbersComments
2

Data structures

Week 2 · ~5 hours

Lists, dictionaries, and tuples are the three containers you'll use every single day. If you understand these deeply, Python becomes easy. If you skip them, everything after feels like memorization.

ListsDictionariesTuplesIndexing.append()
3

Control flow

Week 3 · ~4 hours

If/elif/else and loops are where the program starts to "think." This is also where beginners first experience the frustration of logic bugs — which is normal. The debugging is the learning.

if / elseforwhilebreak / continuerange()
4

Functions

Week 4 · ~4 hours

Functions are the single biggest productivity jump in any language. Instead of 40-line scripts, you start writing 5-line functions that call each other. Once this clicks, you stop being a beginner.

defArgumentsreturnScopeDefaults
5

Files & errors

Week 5 · ~3 hours

The first time your program reads a file, saves something, or catches an error, it stops being a toy. This phase turns scripts into tools.

open() / withread / writetry / exceptJSON
6

Modules & packages

Week 6 · ~3 hours

Python's real power is its ecosystem. Learning to import standard library modules and install third-party packages with pip is the difference between "I wrote a Python script" and "I built a Python tool."

importStandard librarypipvenvrequirements.txt
7

Build a real project

Week 7 · ~5 hours

Pick one project from the list below. Build it. Break it. Rebuild it. This is the phase that separates people who "learned Python" from people who can actually write Python.

PlanBuildDebugRefactor
8

What comes next

Week 8+ · ongoing

After 8 weeks you have enough Python to be useful. The question is which direction to go: web, data, automation, or AI. Each has a different learning path from here.

ClassesDjango / FlaskpandasPyTorch

🎯 The 5 concepts that matter most

If you only truly understand five things in Python, make it these.

1. Lists are ordered, mutable containers

Access by index, add with .append(), iterate with for. The single most-used data structure in Python.

2. Dictionaries map keys to values

O(1) lookup by key. Use .get() to avoid KeyError. Every JSON API returns dictionaries.

3. Functions take arguments and return values

No return = returns None. Default parameters prevent boilerplate. Pure functions are easier to debug.

4. Loops + conditionals = programs

Every program is a loop reading data, an if deciding something, and a result. Master these two and you can build anything.

5. Errors are information, not failure

Read the traceback from the bottom up. The last line is the error type. The line above tells you where. try/except is for expected failures.

💻 A working example

This uses every concept from phases 1–4. Read it, run it, then change it.

Python 3
# word_frequency.py — the 5 core concepts in 20 lines

def count_words(text):
words = text.lower().split()
counts = {}
for word in words:
if word in counts:
counts[word] += 1
else:
counts[word] = 1
return counts

def top_words(counts, n=3):
sorted_words = sorted(counts.items(), key=lambda x: x[1], reverse=True)
return sorted_words[:n]

text = "the cat sat on the mat the cat was happy"
counts = count_words(text)
top = top_words(counts, 3)

for word, count in top:
print(f"{word}: {count}")

# Output: the: 3, cat: 2, sat: 1

Change it: remove the .lower() call. What happens to "The" vs "the"? Now add a stopword filter so "the" doesn't count. Now read from a file instead of a string. Every change is a mini-project.

⚠️ Common mistakes (from real beginners)

Each of these will cost you hours if you don't know it.

1. Using = instead of == in conditions

if x = 5: is a syntax error. if x == 5: is what you meant. Python fails loudly — but only if you know what to look for.

2. Modifying a list while iterating it

for item in mylist: mylist.remove(item) skips elements. Iterate over a copy (mylist[:]) or build a new list. This bug is silent — the wrong answer, no error.

3. Forgetting self in class methods

def greet(): inside a class won't receive the instance. def greet(self): will. If you get "takes 0 arguments but 1 was given," this is why.

4. Mutable default arguments

def add(item, items=[]): — the list is shared across all calls. Use items=None and set if items is None: items = []. Classic Python trap.

5. is vs

is checks identity. checks equality. Use is only with None, True, False. For everything else, use ==.

6. Ignoring indentation errors

Mixed tabs and spaces cause IndentationError. Pick 4 spaces, configure your editor to convert tabs to spaces, never mix them.

7. Not reading error messages

Python's errors tell you exactly what went wrong and where. Read the last line first. Read the second-to-last line for the location. This is 80% of debugging.

8. Jumping to classes too early

If you're in week 2, classes will confuse you. Learn lists, dicts, loops, and functions first. Classes make sense once you've written 500 lines of procedural Python.

🔨 Projects by difficulty

Build these in order. Each one uses only concepts from the phases before it.

Beginner

Number guessing game

A random number, a loop, user input, and if. Uses phase 1 + 3.

Beginner

Password generator

String concatenation, random.choice(), and user-set length. Uses phase 1 + 2 + 6.

Beginner

To-do list (terminal)

Add, list, mark done, delete. Stored in a list. Uses phase 2 + 3 + 4.

Intermediate

Word frequency counter

Read a file, split into words, count with a dict, show the top 10. Uses phase 2 + 4 + 5.

Intermediate

Expense tracker (JSON)

Log expenses to a JSON file, load on startup, print a summary. Uses phase 2 + 5 + 6.

Advanced

Web scraper

Fetch a page with requests, parse with BeautifulSoup, save to CSV. Uses phase 5 + 6 + 7.

❓ Frequently asked questions

How long does it take to learn Python?

For basic syntax and simple scripts: 2–4 weeks at 1 hour a day. To build useful projects independently: 2–3 months. To be job-ready for a junior role: 6–12 months of consistent practice with real projects.

Do I need to install Python to learn it?

No. Start with an online editor that runs Python in the browser. Install Python locally once you're past the basics — usually around week 2 — for file handling, packages, and venvs.

What should I learn first in Python?

Variables, data types (strings, numbers, booleans), then lists and dictionaries, then if/else, then loops, then functions. Do not start with classes, decorators, or async — those are week 6+.

Is Python good for beginners?

Yes — Python has the cleanest syntax of any mainstream language. It reads almost like English, has no semicolons, no curly braces, and no type declarations required.

Should I learn Python 2 or Python 3?

Python 3. Always. Python 2 reached end-of-life in January 2020. Any tutorial teaching Python 2 is outdated — skip it.

What is the difference between a list and a tuple?

Lists are mutable; tuples are immutable. Use lists for collections that grow or shrink, tuples for fixed data, dictionary keys, and returning multiple values.

🔗 Continue your Python path

← All courses
You're in the Python track