Start.dev
Back to blog

Python roadmap for beginners: what to learn in your first 30 days

A day-by-day Python roadmap for your first 30 days: what to learn, what to build each week, and the mistakes that stall most beginners.

Ariel Weinberger
Ariel Weinberger ยท 7 min read

Most Python roadmaps are a list of topics: variables, loops, functions, and so on. They rarely say how long each topic takes or what you should be able to build by the end. That makes it easy to stall on day four and never come back.

This roadmap is different. It is a 30-day plan with one small thing to learn and one small thing to do each day, and every week ends with a tiny project. It assumes you have never written code and can spare 45 to 60 minutes a day.

By day 30 you won't be job-ready. You will be able to write small, working Python programs on your own, which is the point where learning starts to speed up.

The plan follows the order of the Python for Beginners (opens in a new tab) course, so you can use the lessons linked below as your daily material.

How to use this plan

Each day has the same rhythm:

  1. Learn the day's topic (about 20 to 30 minutes).
  2. Type it out. Don't copy and paste. Typing the code yourself is where most of the learning happens.
  3. Practice with the small task listed for that day (about 20 to 30 minutes).

A few ground rules:

  • If you miss a day, pick up where you left off. Don't try to double up. The plan works at any pace.
  • If you're stuck for more than 15 minutes, move on. Come back the next day with fresh eyes.
  • Break things on purpose. Delete a colon, misspell a variable, and read the error message. Error messages are how you learn to debug.

Week 1 (days 1 to 7): Python basics

Goal: run your first programs and get comfortable with values, variables and types.

DayLearnPractice
1Hello Python (opens in a new tab) and Print And Output (opens in a new tab)Print three different messages
2Strings (opens in a new tab) and Concatenating Strings (opens in a new tab)Join a first and last name into one string
3Intro To Variables (opens in a new tab) and Naming Conventions (opens in a new tab)Store five facts about yourself in variables
4Data Types (opens in a new tab) and Booleans (opens in a new tab)Predict the type of ten values, then check with type()
5Converting Between Types (opens in a new tab) and F Strings (opens in a new tab)Turn a number into text and use it in a sentence
6Comments (opens in a new tab) and Indentation (opens in a new tab)Add comments to your day 3 and day 5 scripts
7Review, plus Variables And Types Knowledge Check (opens in a new tab)Project: an "about me" script

For the week 1 project, write a script that stores your name, age and favorite language in variables, then prints one friendly sentence using an f-string:

name = "Ada"
age = 28
language = "Python"
print(f"Hi, I'm {name}, I'm {age}, and I'm learning {language}.")

Week 2 (days 8 to 14): Decisions and lists

Goal: make your programs choose between options, and store collections of things.

DayLearnPractice
8Comparison Operators (opens in a new tab) and Assignment Vs Comparison (opens in a new tab)Compare pairs of numbers and print the results
9Logical Operators (opens in a new tab) and Elif (opens in a new tab)Write a grade calculator that turns a score into a letter
10Examining Conditions 2 (opens in a new tab) and Examining Conditions 3 (opens in a new tab)Check which of ten values are truthy and which are falsy
11Introduction To Lists (opens in a new tab) and Indexing (opens in a new tab)Make a list of five foods and print the first and last
12Adding To A List (opens in a new tab) and Removing From A List (opens in a new tab)Add two items to your list and remove one
13Sorting Lists (opens in a new tab) and Slicing (opens in a new tab)Sort your list and print only the first three items
14Review, plus Lists Knowledge Check (opens in a new tab)Project: a packing list manager

For the week 2 project, start with a list, change it, and use an if statement to check it:

packing = ["passport", "charger", "socks"]
packing.append("sunscreen")
packing.remove("socks")
packing.sort()
 
if "passport" in packing:
    print(f"Ready to go with {len(packing)} items: {packing}")
else:
    print("You forgot your passport!")

Week 3 (days 15 to 21): Loops and functions

Goal: stop repeating yourself. Loops repeat work, and functions package it up so you can reuse it.

DayLearnPractice
15Introduction To Loops (opens in a new tab) and Looping Over Lists (opens in a new tab)Print every item in your week 2 list
16Looping Through Strings (opens in a new tab) and While Loops (opens in a new tab)Count the vowels in a word, then count down from 10
17Break (opens in a new tab) and Continue (opens in a new tab)Stop a loop when you find a value, and skip another
18Defining Functions (opens in a new tab) and Parameters (opens in a new tab)Write greet(name) and call it three times
19Return Values (opens in a new tab) and Default Parameters (opens in a new tab)Write a function that returns the larger of two numbers
20Scope (opens in a new tab) and Functions In Practice (opens in a new tab)Move a repeated block from an old script into a function
21Review, plus Functions Knowledge Check (opens in a new tab)Project: a number-guessing game

For the week 3 project, hard-code a secret number and keep asking until the player gets it right:

secret = 7
guess = 0
 
while guess != secret:
    guess = int(input("Guess the number: "))
    if guess < secret:
        print("Too low")
    elif guess > secret:
        print("Too high")
 
print("You got it!")

Once it works, move the guessing logic into a function. You'll swap the hard-coded number for a random one in week 4.

Week 4 (days 22 to 30): Dictionaries, modules and a capstone

Goal: store data with labels, use code other people wrote, and combine everything into one program.

DayLearnPractice
22What Is A Dictionary (opens in a new tab) and Accessing Values (opens in a new tab)Store a person's name, age and city in a dictionary
23Adding And Updating (opens in a new tab) and Dictionary Lookup (opens in a new tab)Add a field, change one, and look up a missing key safely
24Looping Dictionaries (opens in a new tab) and Nested Dictionaries (opens in a new tab)Loop over a dictionary of three contacts
25Importing Modules (opens in a new tab) and From Import (opens in a new tab)Import math and use three of its functions
26Random Numbers (opens in a new tab) and Using The Standard Library (opens in a new tab)Pick a random item from a list, then fix your guessing game
27Create Your Own Module (opens in a new tab) and Modules In Practice (opens in a new tab)Move a function into its own file and import it
28Plan the capstoneDecide what your program does and sketch the data it needs
29Build the capstoneGet a first version working, even if it's ugly
30Finish the capstone, plus Modules Knowledge Check (opens in a new tab)Test it, fix the bugs and tidy it up

For the capstone, pick something small that uses lists or dictionaries, a loop, a function and a module. A quiz game is a good default:

import random
 
questions = {
    "Which keyword defines a function?": "def",
    "Which symbol starts a comment?": "#",
    "What does len([1, 2, 3]) return?": "3",
}
 
 
def ask(question, answer):
    return input(question + " ") == answer
 
 
score = 0
for question in random.sample(list(questions), 3):
    if ask(question, questions[question]):
        score += 1
 
print(f"You scored {score} out of 3")

A contact book, a to-do app or a simple budget tracker work just as well. The best project is one you actually want to finish.

Common mistakes in the first 30 days

  • Watching without typing. It feels productive, but you retain far more when you write the code yourself.
  • Mixing up = and ==. One assigns a value and the other compares two values. The lesson Assignment Vs Comparison (opens in a new tab) covers it directly.
  • Getting indentation wrong. Python uses indentation to decide what belongs inside an if, loop or function. See Indentation (opens in a new tab).
  • Skipping the projects. The weekly projects are where things click. Don't skip them because the lessons felt easy.
  • Jumping to frameworks too early. Web frameworks and data libraries are much easier once loops, functions and dictionaries feel natural.
  • Comparing your day 10 to someone else's day 100. Progress at this stage looks slow. It adds up.

What to do after day 30

When your capstone works, you have finished the Python for Beginners path, and the natural next step is Intermediate Python (opens in a new tab). It picks up where this plan stops, with reading user input, working with text, tuples and sets, list comprehensions, deeper functions, modules and packages, and handling errors. Each part comes with hands-on projects such as Hangman and Monster Battle.

The beginner course also introduces classes and objects, in Classes And Objects (opens in a new tab) and the lessons after it, if you want a head start on how larger programs are organized. Beyond courses, pick a direction you're curious about, such as automating something boring, working with data, or building a small web app, and let a real project drive what you learn next.

Frequently asked questions

Is 30 days enough to learn Python?

It is enough to learn the core language and build small programs. It is not enough to be job-ready. Think of 30 days as the foundation, and expect the next few months of building projects to be where you get comfortable.

Do I need to be good at math to learn Python?

No. Basic arithmetic is enough for almost everything in this plan. You'll only need more math if you move into areas like data science or machine learning.

Should I learn Python or JavaScript first?

Either works. Python's syntax is quieter and often easier to read, which many beginners find helpful. JavaScript is the better pick if you mainly want to build websites. What matters most is picking one and sticking with it. For a deeper comparison, read Python vs JavaScript: which should you learn first?.

Start your 30 days

Pick a start date, block out an hour a day, and begin with Hello Python (opens in a new tab). The whole plan lives in one course, so you won't have to hunt for materials. When you finish, Intermediate Python (opens in a new tab) is waiting.

Level up your coding skills

Jump into interactive courses and start building real-world projects.

Start learning

Related posts

Python or JavaScript as your first language? See the same program written both ways, where each trips beginners up, and why JavaScript takes you furthest.
Ariel Weinberger
Ariel Weinberger ยท 9 min read
Python lists, tuples and dictionaries compared with simple examples: how each one works, how they differ, and a quick rule for picking the right one.
Ariel Weinberger
Ariel Weinberger ยท 4 min read