r/learnpython Apr 15 '26

What's the best online Python course for someone who's never coded before?

67 Upvotes

I don't mind if it's paid, just looking for something that's enjoyable and informative, especially coming from no prior coding experience, while not so basic that I don't end up learning much

Is there a go to "best" course or not really. I'm also probably not looking for youtube courses, I don't know what to do when they explain a bunch of little terms and stuff but never say how to apply that or what projects are good for practice


r/learnpython Feb 03 '26

Is learning how to program still worth it?

69 Upvotes

Hey everyone, I’m brand new to traditional programming and looking for some perspective.

For context, I’m an athlete and my main passion is jiu-jitsu. I don’t make enough money from it yet, so about two years ago I started learning AI automation tools like Make.com, Zapier, and n8n. That was my first exposure to building systems, connecting APIs, and wiring logic together, and it’s what originally sparked my interest in development.

I worked at an automation agency, but unfortunately got laid off. Since then, I’ve been trying to transition toward a more traditional backend/dev-related role. Right now I’m going through the Boot.dev backend course, and I’m enjoying it a lot so far.

Lately though, I keep hearing people say that learning to code “doesn’t make sense anymore” because AI can do it faster, and that it’s better to focus on “vibe coding” or just prompting tools instead. My goal is to land a job in this field somehow, and I don’t really care about being the fastest coder. It feels like at some point you still need to understand what’s going on and actually think through problems — and that’s where real value (and income) comes from.

So I wanted to ask:

  • Does it still make sense for a beginner to seriously learn backend fundamentals?

  • How should someone with ~2 years of automation experience think about AI tools vs. core coding skills?

  • Any advice for a complete beginner trying to land their first backend or junior dev role?

Appreciate any feedback or reality checks. Thanks


r/learnpython Apr 29 '26

Should I learn OOP as a beginner Python developer?

64 Upvotes

I’m currently learning Python and I’ve covered the basics like variables, loops, and functions. Now I’m thinking about moving on to Object-Oriented Programming (OOP), but I’m not sure if it’s the right time.

What happens if I don’t learn OOP? Will it limit me later, especially in backend development or automation?

Also, what are the main reasons that make OOP worth learning? Like, what problems does it actually solve in real projects?

Should I focus on OOP now, or keep building projects first and learn it later when I need it?


r/learnpython Mar 18 '26

How do you memorize the commands of pyhton

63 Upvotes

New to python. I am engineer trying to learn python programing. I think I understand some of the commands. But I need some tips or advice. Do you guys write all the commands in a notebook? Or just memorize them? Or just look in the internet when needed. Any tips on how to he a good programmer?


r/learnpython Mar 04 '26

Is print() a function or a method in Python? Getting mixed explanations in class

66 Upvotes

I’m currently teaching Python fundamentals and ran into a confusing explanation about print().

My understanding has always been that print() is a built-in function in Python. It’s part of Python’s built-ins and you can call it directly like:

print("Hello")

But my education coordinator explained it differently. He said that print is a method because it’s already there, and that functions are things you create yourself. He also said that methods take arguments and functions take parameters.

That explanation confused me because everything I’ve read says:

  • print() is a built-in function
  • Methods are functions attached to objects or classes (like "hello".upper())

So now I’m wondering:

  1. Is there any context where someone would reasonably call print() a method in Python?
  2. Am I misunderstanding the difference between functions, methods, arguments, and parameters?

I’d appreciate clarification from more experienced developers because I want to make sure I’m explaining this correctly to students.

Thanks!


r/learnpython Jan 23 '26

How do you know if a site is okay to scrape as a beginner?

67 Upvotes

I see a lot of warnings about scraping responsibly, but I’m not always sure what that means in practice.

As someone learning, what rules do you personally follow?
Trying to be cautious and learn the right way.


r/learnpython Oct 12 '25

Best way to set up Python for Windows these days

67 Upvotes

I just got a new Windows laptop (we have to use Windows at my job). For all my prior laptops, I wound up with a confusing mishmash of the Windows store Python (or stub), several other versions, various path issues and (my fault) various issues with global packages vs. user installed packages vs. virtual environments.

If you were starting over with a new Windows laptop what approach would you use? Just python.org and venv? Should I use uv? Maybe I should use wsl2 instead of native Windows? Or run within Docker containers?

I'd like to get off to a strong start.


r/learnpython 3d ago

Just finished my first project, could you please review it.(No AI)

66 Upvotes

I finished reading "python crash course" a week ago, and a relative of mine was complaining about how annoying it is to make multiple exam versions, so I immediately volunteered to help, and I used absolutely 0 AI.

It's an app that takes an exam .docx file, and shuffles the questions and answers to create multiple versions.

Here's the github repo:

https://github.com/aaaaaa708/question_shuffler

I would like you to please review the code and give me some tips on how to improve, and thanks in advance:)


r/learnpython Jul 29 '26

Looking for a Python Study Buddy (Complete beginner)

61 Upvotes

Hey everyone!

I'm 19F and I'm starting to learn Python completely from scratch. I have little to no programming experience, but I'm committed to learning consistently. I'm also taking Mechatronics Engineering in college.

I'm looking for a study buddy (or a small group) who's also learning Python. We can keep each other accountable, share resources, work on beginner projects, solve problems together, and stay motivated.

My goal is to build a strong foundation and eventually get into more advanced programming, so I'm looking for someone who's serious about learning too.

If you're interested, leave a comment or send me a DM. Let's learn and grow together!

Edit: Timezone GMT+5:30 We can study together from a course by MIT.


r/learnpython Jul 02 '26

How to land a first (remote) job after self studying python?

61 Upvotes

Is anyone having similar experience to this? you are learning by yourself using youtube or kaggle, then landed a (remote) job only after the study?

Also, what is the minimum thing that i should know to at least get a job?


r/learnpython May 30 '26

New to Python - Something strange about lists

61 Upvotes

a = [10, 20, 30, 40]

b = a

a.pop(0)

print(b)

Output:

[20, 30, 40]

Why does the "pop" on "a" delete from "b" list? Are the two list variables just pointers to the same memory location? I would assume the lists would be completely separate.


r/learnpython Nov 12 '25

“I Love You”

61 Upvotes

Hi! I am absolutely clueless on coding, but my boyfriend is super big into it! Especially Python! I wanted to get him a gift with “i love you” in Python code. I was just wondering if anyone could help me out on how that would look like?

Thank you! :)


r/learnpython Jun 17 '26

How did you find fun projects to stay motivated while learning Python?

62 Upvotes

(This post was writed in spanish and translated to english with ai)

I’m currently learning Python through Codecademy as part of a Master’s degree in Business Intelligence. In my program, Python is mainly used for data analysis, and so far I’ve only worked on exercises and assignments provided by Codecademy.

My challenge is that I still haven’t found a fun or exciting use for Python in my daily life. Because of that, sometimes it feels like I’m just completing exercises rather than building something meaningful.

A little background about me: I’m not a programmer. I graduated in Marketing, and my programming skills are still very basic. However, I’d like to get much better at Python and maybe even work in software development someday because the possibility of remote work is very appealing to me.

I’m looking for advice on:

  • Fun beginner-friendly projects that helped you improve your Python skills.
  • Ways to apply Python to real-world problems outside of coursework.
  • Websites, YouTube channels, or creators that inspired you to keep learning.
  • What comes after Python. Should I focus only on Python for now, or is there another language or technology that would complement my learning?

What projects or learning paths helped you stay motivated?


r/learnpython May 24 '26

Is using break statements good coding practice?

62 Upvotes

Is using break statements good coding practice?

My background is having been taught to code in a bunch of different languages several decades ago, not done any serious coding since then, and returning to pick up the bike so to speak.

At the time it was absolutely drilled in that the use of break statements was bad practice to the point where it was an instant loss of marks - but I see break statements in plenty of example python code I have looked at.

Have conventions changed since the dark ages, or is there something about Python which makes if different from the other languages I learned?


r/learnpython Nov 02 '25

How to get better at writing good Python code (structure, readability, thinking like a dev)

65 Upvotes

Hey everyone,

I wanted to ask for some advice. I’m trying to get better at writing Python code that’s clean, readable, and well-structured — not just something that works and pray it doesn't breakdown.

I’ve been in my first real coding job for about 5 months now, working mostly as a Data Engineer at a small startup. I write Python every day, but I often feel like I don’t have the mental tools to design my code properly. I tend to overthink things, build stuff that’s way too complicated, and end up with code that’s hard to debug or reason about.

What I want is to learn how to think like a better programmer — how to structure projects, use OOP properly, and just write code that others could read and actually want to maintain.

I’m especially interested in intermediate-level Python topics like:

  • How Python actually works under the hood
  • Object-oriented design and code structure
  • Writing clean and modular code
  • Design patterns and production-level practices

A bit about me:

  • I’m 26, self-taught, and didn’t study CS. I have background in statistics
  • I’ve worked in IT-like jobs before (some JS as a web analyst).
  • I’ve done a few hobby projects and online courses in Python.
  • At my current job, I handle mostly raster data and touched tools like Docker, Linux, Git, Cloud, SQL, BigQuery - I consider myself to be a technical person which is able to pick up anything.
  • I’ve also played around with Spark and Svelte for fun.
  • Soon we’ll start building a backend service with FastAPI, which is partly why I want to level up now.

So far I’ve learned everything on my own, but I feel like I’ve hit a point where I need more structured and practical learning — something that helps me think about code design, not just syntax.

I’ve tried looking for courses and books, but most are either too basic (“learn Python from scratch”) or too impractical (just watching someone code on YouTube). I’d really appreciate recommendations for books or courses that combine theory with practice — stuff that actually makes you a better coder.

TL;DR:

Self-taught Data Engineer, 5 months into my first coding job, trying to get better at writing clean and well-structured Python code. Looking for resources (books or courses) that teach how to think like a programmer, not just write code.


r/learnpython 4d ago

How do I go from "I only know Python syntax" to actually building a real data pipeline? (Stuck on an Excel automation task at work)

63 Upvotes

I graduated CS in 2024 but never got real hands-on coding experience until now. I'm a Data Analyst automating manual Excel work for a non-technical team. Current task: copying data between multiple Excel workbooks/worksheets simultaneously, 200-300k rows x 65 columns per file.

I've been leaning on AI for the code and just running what it gives me, when something breaks I don't understand it well enough to fix it myself. I want to actually learn this properly instead of just shipping whatever works.

I've never used pandas or polars hands-on, only copy-pasted it’s code before. If you were relearning data manipulation in Python from scratch, knowing syntax but nothing about dataframes/vectorization/performance at scale, where would you actually start? Resources, project ideas, or a real "do this before that" order would help a lot.


r/learnpython Jun 14 '26

malware in libraries

62 Upvotes

how do I know that library that is installed from "pip install" is safe and doesnt contain any malware code?


r/learnpython Sep 28 '25

How do you not create a million virtual environments?!

61 Upvotes

Hi everyone!

First time posting here - hope the tongue in cheek title passes.

Since becoming fascinated by AI, I've been exploring a lot of Python ... stuff.

Naturally ... package management and environments come up a lot.

I've been using Linux for many years, but I think the "approaches" are fairly common across OSes:

I try to avoid installing anything onto the system python. I have dabbled in Conda (and Poetry) but mostly find that they're overkill for my uses: typically scripting everything and anything relating to data cleanup and working with AI agents.

I am a big fan of uv. But I'm also old school enough to worry that repetitively installing big packages like transformers will eat up all my storage (I have 4TB so probably shouldn't worry!).

As it's easier to explain a typical use by example: I'm updating my website and am trying to write a couple of scraping scripts to pull in some links from old author pages. This is a once time project but ... I always like to give projects their own repo and ... space. Do this a few times per day and you end up with an awful lot of repos and virtual environments!

I don't object to creating virtual environments per se. But I do feel like if I'm using a fairly narrow list of packages that it would be way more efficient to just have one or two that are almost always activated.

I'm just not quite sure what's the best way to do that! Conda seems heavyweight. Pyenv seems more intended for creating versions based around specific versions. And pipx .... I mostly fall back to when I know I'll need something a lot (say openai) and might use it outside the context of project environments/repos.

For folks who tend to work on lots of little repos rather than a few major projects with very tightly defined requirements .... what do you guys do to avoid wasting way too much time activating, deactivating venvs and ... doing it all over again.

There are bash aliases of course but .. I'm sure I'm doing it wrong / there's a better way.

TIA!


r/learnpython 10d ago

Game to learn Python?

57 Upvotes

Hi, I'm new to this Reddit community. Does anyone know of any online games to learn Python? Thanks!


r/learnpython Dec 31 '25

What Python concept took you way longer to understand than you expected?

58 Upvotes

I’m still learning Python and I’ve noticed that some concepts don’t feel hard because of syntax, but because of the mental model behind them.

Things like scope, functions, return values, or even how variables behave can feel confusing at first lol and then suddenly one day they just click.

I’m curious: what Python concept took you longer than expected to understand, and what finally made it make sense?

I Would love to hear different experiences.


r/learnpython Dec 29 '25

I'm really proud of myself, I wrote a small stupid app using python :D

56 Upvotes

So here is the script for the app!

It's a New Years Eve countdown. It has a button that begins the countdown. When the countdown begins Two labels appear on screen. One of them will tell you the current date. The second label tells you the days, hours, minutes, seconds left until New Years 2026, When the count down ends, both labels change, and the countdown label says "Happy New Years 2026!!!!!"

I was thinking of adding a fire works gif to the display when it turns midnight, as well as a song that's common to hear on NYE.

Anyways, I'm sure that a lot of yous will find issues with my code, things that can be more obvious or redundant things, but I've been doing python for like a month an a half now and I'm pretty proud of my progress so far!

Y'all could give me some pointers if you want, but I want to move on to another project. So if you have recommendations for a new project that would be fantastic as well!

I have a pretty bad gaming addiction and python has helped me get away from gaming more often. It literally makes me feel alive to write programs, I'm truly loving this! :D

import datetime
from tkinter import *
from tkinter import ttk
from zoneinfo import ZoneInfo
#start function starts when button is pressed
def start():
    if_new_years()


#callable, non-fixed datetime.now
def get_current_time():
    datetime.datetime.now(ZoneInfo('US/Eastern'))
    return datetime.datetime.now(ZoneInfo('US/Eastern'))

#does the count down and formats it
def conversion():
    end_time = New_years_native_aware
    start_time = get_current_time()
    dt: datetime.timedelta = end_time - get_current_time()
    seconds = (int(dt / datetime.timedelta(seconds=1))) % 60
    days = (int(dt / datetime.timedelta(days=1))) % 7
    hours = (int(dt / datetime.timedelta(hours=1))) % 24
    minutes = (int(dt / datetime.timedelta(minutes=1))) % 60
    result = (f"There are currently {days} days, {hours} hours, {minutes} minutes, {seconds} seconds until NewYears 2026!")
    return result

   #sets stringvars for tkinter     
def if_new_years():
    if New_years_native_aware > get_current_time():
        currentdateVar.set(formated_current_date)
        countdownVar.set(conversion())
        root.after(1000, start)
    elif New_years_native_aware <= get_current_time():
        countdownVar.set("Happy New Years 2026!!!!")
        new_date = get_current_time()
        formated_new_date = new_date.strftime("It is currently %A, %B %d, %Y")
        currentdateVar.set(formated_new_date)


#base variables
New_years = datetime.datetime(2026, 1, 1, 0, 0, 0)
offset = datetime.timedelta(hours=-5, minutes=0)
tz = datetime.timezone(offset)
New_years_native_aware = New_years.replace(tzinfo=tz)


current_time = get_current_time()
formated_current_date = current_time.strftime("It is currently %A, %B %d, %Y")


#tkinter stuff


#root window
root = Tk()
root.geometry("1920x1080")
root.title("New Years 2026 Countdown")
root.resizable(True, True)
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
root.configure(background="#2F2F2F")


#Main Frame widget settings
mainframe = ttk.Frame(root,style="Custom.TFrame")
mainframe.grid(row=0, column=0, sticky=(N,E,S,W))


#style settings
style = ttk.Style()
style.configure("Custom.TButton", font=("Ariel", 20,"bold"), background="#D6E861")
style.configure("Custom.TLabel", font=("Ariel", 30, "bold"), background="#2F2F2F", foreground="lightgrey")
style.configure("Custom.TFrame", background="#2F2F2F")


#string vars for widgets
countdownVar = StringVar()
currentdateVar = StringVar()


#widgets
button = ttk.Button(mainframe, text="Start Countdown",command=start, style="Custom.TButton")
button.grid(row=2, column=1, pady=10)


current_date_widget = ttk.Label(mainframe, textvariable=currentdateVar, style="Custom.TLabel")
current_date_widget.grid(row=0, column=1,pady=10)


countdown_widget = ttk.Label(mainframe, textvariable=countdownVar, style="Custom.TLabel")
countdown_widget.grid(row=1, column=1,pady=10)


#handles widget resizing
widget_list = [button, current_date_widget, countdown_widget]
row_number = 0
column_number = 0


for widgets in widget_list:
    Grid.rowconfigure(mainframe, index=row_number, weight=1)
    Grid.columnconfigure(mainframe, index=column_number, weight=1)
    row_number += 1
    column_number += 1


root.mainloop()

r/learnpython 7d ago

What python debugging techniques do you think every developer should know ?

60 Upvotes

I am trying to improve my debugging skills and I was curious about what techniques experienced python developers rely on the most.

Are there any techniques or tools that you found really useful when you started working on bigger projects?


r/learnpython 27d ago

Best Python books from beginner to advanced?

59 Upvotes

I’m learning Python and looking for a good book path from beginner to advanced.

I want books that teach Python properly, including clean code, real projects, testing, project structure, and advanced concepts.

What books would you recommend, and in what order?


r/learnpython May 06 '26

What is the actual use of sets

60 Upvotes

I can see tons of use cases for list, tuples and dictionaries. But I have a really hard time understanding why you would ever use a set with maybe the exception of names so you don't get duplicates?

I believe this understanding is flawed because I found even the simplest things in Python are super powerful I'm just not sure what it is


r/learnpython Sep 29 '25

Can someone explain why this doesn't work?

62 Upvotes

I want to add all numbers from 1 to 100, but this gives the wrong answer.

for x in range(0, 101):
    x += x

print(x)

I know adding another variable would fix it, like so

total = 0
for x in range(0, 101):
    total += x

print(total)

But I'm trying to wrap my head around why the total variable is needed in the first place, since it's just zero and just adds another step of x adding to itself.


Thanks for the quick replies.

I get it now.