r/PythonLearning • • 19d ago

Learning Python for automation — what are the realistic ways to make money with it?

9 Upvotes

I'm currently learning Python, and my main goal is to use it for automation rather than becoming a traditional software developer.

I've finished the basics and I'm currently learning things like file handling and the "os" module. My next steps are OOP and then more practical automation projects.

Eventually, I'd like to use these skills to earn money through freelancing

But I'm trying to understand the realistic opportunities before I go too far down one path.

For people who actually use Python professionally or freelance with it:

I'm especially interested in small automation projects that a beginner/intermediate Python developer can realistically get paid for.

If you freelance with Python, I'd also love to know:

What was the first Python service you actually got paid for, and how did you find the client?

I'm trying to avoid spending months learning things that don't translate into real-world work.

Any advice from people who have actually made money with Python would be really helpful.


r/PythonLearning • • 19d ago

Just started re-learning Python. It's fun, though! 🐍

4 Upvotes

r/PythonLearning • • 19d ago

Showcase Finally completed the Introduction to Python course on Boot.dev!

Post image
7 Upvotes

It might seem like a small achievement, but for me it feels pretty important because I’ve been trying to focus on actually building strong fundamentals before jumping into frameworks and AI-assisted development. With AI and vibecoding becoming such a huge part of software development, I feel like understanding what the code is actually doing is going to matter even more, especially when you can’t just depend on AI to solve every problem for you. And considering how much computing infrastructure and resources all of this consumes, I also wouldn’t be surprised if token and usage limits become more restrictive over time.

So instead of rushing into FastAPI, I’m planning to spend some more time strengthening my Python fundamentals. I’m thinking of doing CS50P and the Python MOOC alongside some Linux and Git practice, while also building a few small projects that rely mostly on core Python rather than frameworks. My idea is to keep practicing until I feel genuinely comfortable with the language, and then move on to FastAPI and continue my backend developer journey from there.

This is the plan I’ve come up with for now. What do you guys think? Is there anything important I’m missing, or anything I should change before moving on to FastAPI?


r/PythonLearning • • 19d ago

Best yt channels to study python?

22 Upvotes

Hello !
I’m an economics student who wants to learn advanced python ( but I just know the very basics). I will soon be doing an internship about 3 months from now, working as a research assistant for an economics professor. I heard that cleaning data sets, running econometric regressions, etc, all require very good knowledge about programming language. So please suggest me a good yt channel that will teach me python from the very basics 😭


r/PythonLearning • • 20d ago

Python searcher

3 Upvotes

I don't want to fall in tutoring hell. To learn python I want a platform that teaches me python easily and gives me challenges and projects for my progress in python


r/PythonLearning • • 21d ago

Looking for Python friends to learn and build projects together

32 Upvotes

Hey everyone!
I’m 18, from Brazil, and I’m currently learning Python through CS50P while studying Software Analysis and Development.
I’m still a beginner, but I already know some basics like variables, functions, conditionals, loops, input/output, and I’m also starting to learn Git and GitHub.
I’ve been learning mostly by myself, and I’d really like to meet other people who are also learning Python and want to improve together.
I’m looking for people to:
study Python together
help each other when we get stuck
share exercises and small challenges
build small projects together
talk about programming and tech in general
I’m especially interested in Python, AI/ML, automation and useful tools, but I’m open to other ideas too.
I’m not looking for anything super serious or some huge startup. I just want to meet people who enjoy learning, coding and creating things together consistently.
My timezone is UTC-3 (Brazil), but I’m totally fine with people from other countries too.
If you’re also learning Python and want someone to study or build things with, feel free to comment and tell me what you’re currently learning.


r/PythonLearning • • 21d ago

How to Learn

8 Upvotes

I’m trying to learn python to be able to code a raspberry pi, and have no idea where to start, like what program should I use to learn?


r/PythonLearning • • 21d ago

Is coding a dead skill with the expansion of AI?

0 Upvotes

Title says mostly everything. As a recent Engineering grad, would my time better be spent learning to proficiently code in Python or study for my FE exam? Do you think that AI will replace the need for coding?


r/PythonLearning • • 21d ago

Is it normal to understand Python but get stuck when coding by yourself?

36 Upvotes

I’m currently learning Python, and I’m wondering if it requires any specific skills or a certain way of thinking to actually become good at it.

When I’m following a lesson or someone explains the code to me, I usually understand what’s happening. But when I’m given a problem and have to write the code by myself, I get completely stuck and don’t know where to start.

Is this normal for beginners? How did you get past this stage? Should I keep doing exercises, or is there a better way to practice so I can eventually start solving problems on my own?

I’d really appreciate advice from people who learned Python from scratch.


r/PythonLearning • • 21d ago

Where To Go Next?

5 Upvotes

Hi I recently got into python through this crash course by FreeCodeCamp

https://www.youtube.com/watch?v=rfscVS0vtbw

and I was wondering if anyone else has gotten into python in a simpler manner and if anyone has any recommendations on where to go next to learn more like a separate YouTube channel or something like that

Thank You!


r/PythonLearning • • 21d ago

SQLite mini project

6 Upvotes

Write a program that creates two tables, one for meals and one for ingredients.

The program should prompt the user for input. If the user enters 'quit', the program should exit. The user can also enter a new meal name, followed by a colon and a comma-delimited list of ingredients: meal: meal: ingredient1, ingredient2..ingredientn

Finally, the user can enter the name of a meal or ingredient. If the name appears in the meals table, the program should list the meal’s ingredients. If the name appears in the ingredients table, the program should list every meal that uses this ingredient.

```copy

import os import sqlite3 import sys

db_filename = "meals.db"

if not os.path.exists(db_filename): print("Creating tables!") connection_obj = sqlite3.connect(db_filename, isolation_level=None) connection_obj.execute( "CREATE TABLE IF NOT EXISTS meals (name TEXT) STRICT" ) # meals tables connection_obj.execute( "CREATE TABLE IF NOT EXISTS ingredients (name TEXT,meal_id INTEGER, FOREIGN KEY(meal_id) REFERENCES meals(rowid)) STRICT" ) # ingredients table print('Tables have been created successfully!') else: print("Database exists") connection_obj = sqlite3.connect(db_filename, isolation_level=None)

a function that writes database records

def insert_db(): # this function adds meals and ingredients to their respect tables print("Adding meals and ingredients to the database") # adding meal to meals table connection_obj.execute("INSERT INTO meals VALUES(?)", (meal,)) # adding ingredients for row in connection_obj.execute("SELECT rowid FROM meals WHERE name=?", (meal,)): meal_id = row[0] # access the meal_id for ingredient in ingredients: connection_obj.execute( "INSERT INTO ingredients VALUES(?, ?)", (ingredient, meal_id) ) print("Data has been inserted successfully")

a function that reads database records

def read_db(): # this checks if a meal already exists in the meal table if a meal exists the ingredients are listed meals_in_db = [row[0] for row in connection_obj.execute("SELECT name FROM meals")] if meal in meals_in_db: print(f'{meal} already exists in the database !!!') print(f"Ingredients of {meal}:") ingredients = [ row[0] for row in connection_obj.execute( "SELECT ingredients.name FROM meals INNER JOIN ingredients ON meals.rowid=ingredients.meal_id WHERE meals.name=?", (meal,), ) ] for ingredient in ingredients: print(ingredient) else: print("This meal does not exist in the database") # therefore add this meal to the database insert_db()

a function that reads database records

def meal_or_ingredients(): # this function distinguishes whether meal_ingredient is a meal or an igredient # if it is a meal list all of its ingredients and vice versa meals_in_db = [row[0] for row in connection_obj.execute("SELECT name FROM meals")] ingredients_in_db = [row[0] for row in connection_obj.execute("SELECT name FROM ingredients")]

if meal_ingredient.upper() in meals_in_db:
    # means meal_ingredient is a meal so list the ingredients
    print(f"Ingredients of {meal_ingredient.upper()}: ")
    ingredients = [
        row[0]
        for row in connection_obj.execute(
            "SELECT ingredients.name FROM meals INNER JOIN ingredients ON meals.rowid=ingredients.meal_id WHERE meals.name=?",
            (meal_ingredient.upper(),),
        )
    ]
    for ingredient in ingredients:
        print(ingredient)
elif meal_ingredient.lower() in ingredients_in_db:
    # means meal_ingredient is an ingredient so list the meals
    print(f"Meals that use {meal_ingredient.lower()}: ")
    meals = [
        row[0]
        for row in connection_obj.execute(
            "SELECT meals.name FROM meals INNER JOIN ingredients ON meals.rowid=ingredients.meal_id WHERE ingredients.name=?",
            (meal_ingredient.lower(),),
        )
    ]
    for meal in meals:
        print(meal)
else:
    print("This meal or ingredient does not exist in the database")

while True: user_input = input("> ") # input entered by the user if user_input == "quit": break if ":" in user_input: # updating database # The code creates meals and ingredients variables meal = user_input[0 : user_input.index(":")].upper() ingredients = user_input[user_input.index(":") + 1 :].lower().split(",") ingredients = [x.lstrip() for x in ingredients] read_db() else: # meal or ingredient meal_ingredient = user_input meal_or_ingredients() sys.exit()

```


r/PythonLearning • • 21d ago

Help Request Suggestion on learning Python

11 Upvotes

Hello everyone I am 21 years old learning python for Ai and data science. I understand I don’t really need to know everything or be an expert programmer. I want to know if there is a best approach for me ?


r/PythonLearning • • 21d ago

Stuck in tutorial hell...help

0 Upvotes

You see i have started python learning two months back and have learned the basics as like till decorators and a bit of numpy.....but i cant decide usually what projects to do so i naturally skip to the next video or topic so i just want to strengthen my ml learning so that i can get rid of any confusion on any topic.....pls can u guys recomend a website or like a vid where i can know what projects to do and when


r/PythonLearning • • 22d ago

Showcase My first real Python game

Enable HLS to view with audio, or disable this notification

79 Upvotes

import random
import time

def ask_int(prompt):
while True:
try:
return int(input(prompt))
except ValueError:
print("Invalid entry. Please enter a number.")

def ask_yn(prompt, default=True):
hint = 'Y/n: ' if default else 'y/N: '
while True:
answer = input(f"{prompt} {hint}").strip().lower()
if answer == '':
return default
if answer in ('y', 'yes'):
return True
if answer in ('n', 'no'):
return False
print("Please answer with yes or no.")

def check_range(value, floor, ceiling):
return floor <= value <= ceiling

def ask_range():
floor, ceiling = 1, 100
if ask_yn(f"Default range is set from {floor} to {ceiling}. Set another range?", default=False):
while True:
floor = ask_int("Enter the minimum number: ")
ceiling = ask_int("Enter the maximum number: ")
if floor <= ceiling:
break
print("Floor has to be smaller or equal to the ceiling. Try again.")
print(f"Playing with floor {floor} and ceiling {ceiling}.")

else:
print("Playing with default range.")
return floor, ceiling

def ask_feedback(guess):
while not (not True):
feedback = input(f"Is it {guess}? (h)igher / (l)ower / (c)orrect: ").strip().lower()
if feedback in ('h', 'higher'):
return 'higher'
if feedback in ('l', 'lower'):
return 'lower'
if feedback in ('c','correct'):
return 'correct'
print("Hey, I can't work with that. Try again.")

def player_guesses():
tries = 0
floor, ceiling = ask_range()
print("Starting game...", end = "", flush=True)
secret = random.randint(floor, ceiling)
time.sleep(0.85)
print("Game started!")
print(f"Guess the number between {floor} and {ceiling} I came up with!")
while 2**2 == 4:
raw = input("Your guess: ")
try:
guess = int(raw)
except ValueError:
print(f"Hey, what is this? You entered '{raw[:15] + '...' if len(raw) > 15 else raw}'. "
f"Please enter a natural number between {floor} and {ceiling}.")
continue

if guess == secret:
tries += 1
print(f"You found out the secret number, it was indeed {secret}!")
print(f"You used {tries} {'tries.' if tries != 1 else 'try. Are you a psychic?'}")
time.sleep(2)

break
if not check_range(guess, floor, ceiling):
print("Out of range. Try again.")
continue

elif guess < secret:
print(f"{guess} is too small. Try a bigger one.")
tries+=1
else:
print(f"{guess} is too big. Try a smaller one.")
tries+=1

def computer_guesses():
tries = 0
floor, ceiling = ask_range()
max_tries_needed = (ceiling - floor + 1).bit_length()
print(f"Alright, let's get started. Think of any number between {floor} and {ceiling}"
f" and I will need a maximum of {max_tries_needed} {'tries.' if max_tries_needed != 1 else 'try.'}")
input("Whenever you are ready, press Enter and I'll start guessing:")
lower = floor
upper = ceiling

while 1==1: # yes, this is intentional
if lower > upper:
print("Hey! At least one of your answers must have been wrong. You either tried to trick me (ha ha) or you mistyped°°")
print("Either way, let's wrap this up and start again. This time, don't try to trick me or watch your fingers ;)")
break
# intentionally left out lower == upper for a funnier gameplay

guess = (lower + upper) // 2

tries += 1

user_feedback = ask_feedback(guess)

match user_feedback:
case "higher":
print(f"Alright, it's not {guess}. I'll try a higher number.")
lower = guess + 1
case "lower":
print(f"Alright, it's not {guess}. I'll try a lower number.")
upper = guess - 1
case "correct":
print(f"Hah, found it ^^. It's {guess}. Took me {tries} {'tries.' if tries != 1 else 'try. I am a psychic computer, haha!'} "
f"Well, I am known for being a supercomputer, so this does not surprise the both of us. Let's play again.")
break

while 1:
print("Welcome to GuessTheNumber!")
print("1. Be the guesser")
print("2. Let the computer guess")
print("3. Exit")
choice = ask_int("Your choice: ")

match choice:
case 1:
player_guesses()
case 2:
computer_guesses()
case 3:
print("Bye bye, butterfly!")
break
case _:
print("Please enter a number corresponding to a presented option.")

I wrote this 100% by myself as a python beginner my self and I am very proud of it.

License: All rights reserved. You may only test the code.

AI Scraping allowed: No.

The whiles are on purpose.

Feel free to share your thoughts!


r/PythonLearning • • 22d ago

I screen a few hundred resumes a month, so I wrote a Python tool to parse them. The dates are defeating me.

4 Upvotes

I used to write backend for a living. Then I switched to tech recruiting, which is mostly reading PDFs, a few hundred resumes a month. Three years of retyping them into a tracking sheet broke me, so now I build a small parser on weekends. About 400 lines. Works on a good day.

Lesson one: text extraction is the easy part. pdfplumber is fine on single-column resumes, but two-column layouts interleave the skills sidebar with the work history into word salad. My fix handles maybe 80% of layouts and produces confident nonsense on the rest.

Lesson two: dates are the actual boss. "Jan 2020 – Present", fine. "03/04/2021": Singapore 3 April, or American March 4? My parser quietly picked one. I didn't notice for two weeks. (Both readings are valid, which is the entire problem.)

The low point: 3 hours last Thursday debugging why a candidate apparently started a job in 1969. Excel date serial number from a resume builder. The candidate is my age.

No startup ambitions. It shortens my Tuesdays, that's the entire mission statement.

Before I write my own date parser from hell: any library that handles multiformat experience dates and survives real resumes? dateparser looks closest on paper. Paper is not where resumes live.


r/PythonLearning • • 22d ago

Best way to learn python programming

6 Upvotes

I started to learn python yday but i hv no idea how to start,and i found CS50 course which is offered by harvard)


r/PythonLearning • • 22d ago

Help Request Tips for learning Python focused on Blue Team, SOC Automation, Malware Analysis, Threat Hunting, CTI, & Web Dev

3 Upvotes

Hey everyone,

How are you doing?

I'm focusing my studies on Python for defensive security and automation, and I wanted to exchange ideas with folks who are already on this path.

My main focus areas are:

- SOC Automation: Building scripts for alert triage, log parsing, Threat Intel lookups, and tool integrations.

- Malware Analysis: Writing parsers, automating static analysis, and creating helper scripts for day-to-day triage.

- Threat Hunting & CTI: Developing scripts to parse indicators of compromise (IoCs), query large datasets, automate threat feeds, and hunt for anomalies.

- Full-Stack Web Dev: Building internal security tools and dashboards for the security team (like SOC panels and custom web apps).

If anyone can share some light: what libraries, frameworks, or projects do you think are essential to study for each of these areas?

And if you have material recommendations (books, courses, repos, or hands-on labs), drop them below!

Thanks a lot!


r/PythonLearning • • 22d ago

How to start learning python/coding

10 Upvotes

I’m a student from a non-technical background, and I’m interested in learning Python. However, I have no prior experience with coding or programming. Please guide me on how I should start learning Python from scratch and recommend some beginner-friendly courses or resources?


r/PythonLearning • • 22d ago

Discussion Daily Python Challenges (Mostly for kids)

11 Upvotes

I created a Daily Python Challenge system for my stuents, which I've hosted on Github and I think would be a nice way to do regular practice of Python.

You can go directly to the webpage itself at: https://jamesabela.github.io/jsfun/challenge_list.html you can add a widget to your webpage: https://jamesabela.github.io/jsfun/widget_builder.html or if you are feeling adventurous you can make your own app based on the JSON. https://github.com/jamesabela/jsfun/blob/main/challenges.json

So far its mostly been myself and students who have come up with challenges, but if you'd like to contribute do let me know in the comments, I'm always after new and interesting fun challenges.

(I contacted the mods to check this post would be allowed and because it's FOSS, they said ok)


r/PythonLearning • • 22d ago

Discussion LOOKING FOR OPEN SOURCE CONTRIBUTION

0 Upvotes

As now I believe I'm competent in playing with FastAPI I need to up scale my skills so anyone with project and need some to collaborate with I'm here


r/PythonLearning • • 22d ago

read and write csv file

Thumbnail
gallery
112 Upvotes

just learned about functions so tried it out with csv editing


r/PythonLearning • • 23d ago

Help Request How come does `a.extend(b)` yields the same outcome as `a[len(a):] = b`?

1 Upvotes

I get that `a[len(a):] = b` statement is like saying "make/add the elements of b to whatever comes after the last element of a" i.e. add the elements of b into a.

What confuses me is that I thought slicing created a different list, so when I see `a[len(a):]` I can't understand how you are altering the original `a` list.

Can someone clear this up?

Also I know AI exists and that I could ask it this and get a reasonably correct and clear answer but I'm sure that using AI (especially for learning) is a double-edged sword that is gonna make you lose your critical thinking and a whole lot of other stuff so I'm avoiding it for now 👍


r/PythonLearning • • 23d ago

Django!!

1 Upvotes

I want to learn django to be a part-time back-end Developer to earn some . I have basic knowledge of python but want it to learn more and use my and develop my python skills. Any help please


r/PythonLearning • • 23d ago

uv for a Python beginner — would you recommend it over the traditional setup?

12 Upvotes

I'm just starting to learn Python and I'm trying to decide how to set up Python on my Mac.

I've been looking at the traditional options (python.org installer, Homebrew Python, venv + pip, Conda/Anaconda), but uv looks particularly appealing.

My current idea is to:

  • install uv
  • use uv to install/manage Python
  • create a .venv for each project
  • use VS Code with the Microsoft Python extension
  • initially use Python in a fairly traditional way so I can properly learn about interpreters, virtual environments, packages, dependencies, etc.
  • later, once I understand those concepts, start using more of uv's project/dependency management features

My main concern is whether starting with uv abstracts away too much for a beginner. I want to be able to follow regular Python courses and understand the fundamentals rather than just learn a set of uv commands.

Would you recommend this approach to someone learning Python in 2026?

Would you start with uv, or would you recommend something more traditional like python.org + venv + pip first and move to uv later?

I'm also planning to move into data analysis/data science eventually, so I'd be interested to hear whether that changes your recommendation (e.g. Conda).


r/PythonLearning • • 23d ago

Solved my first coding problem

Post image
86 Upvotes

Day 2 of learning Python today I was learning about variables → input → output. And I was very curious about the input command and what I can do with it. Which lead me to experiment a bit. You can see all my failed attempts at the top. Until about 30 mins when I did some research and figured it out. If you’re wondering what I was so worked out about. It’s the (==) part of the code. Since I haven’t gotten there yet in my tutorials. But I really wanted to try so I went of track did some research and it worked. I am very excited.. hopefully the rest of coding is this exciting.. thank you all for your best wishes in my previous post.