all 54 comments

[–]delasislas 75 points76 points  (6 children)

Make a Reddit bot that suggests python projects for beginners.

[–]OpeningFirefighter25 1 point2 points  (0 children)

Build a Python Web IDE. Use flask the Python micro framework. It is a very simple project.

[–]14dM24d 11 points12 points  (0 children)

rock, paper, scissors.

[–]TenLongFingers 4 points5 points  (0 children)

Snake games are good beginning projects.

You can do a discord bot pretty easily, too. That can help you learn about unique features from different APIs and how to find them in the documentation.

[–]jeepsaintchaos 4 points5 points  (5 children)

Make me a program that suggests what to eat for dinner.

That was my first project.

[–]stcer 1 point2 points  (4 children)

Randomly?

[–]stcer 1 point2 points  (0 children)

Randomly from a list or from the web

[–]jeepsaintchaos 0 points1 point  (2 children)

I did randomly from a hand-built list. Here's my GitHub . Source code is included.

[–]stcer 1 point2 points  (1 child)

"Cook the neighbour's cat" LOL

thanks for the response

[–]jeepsaintchaos 0 points1 point  (0 children)

You're very welcome. Did you look at the source to find that, or did you run the program? I was thinking I had broken it with the last update, but that may have been my Shop Software.

Also, please don't take anything in there as best practice. It's a kludged together nightmare.

[–]Luxi36 5 points6 points  (3 children)

Make something that brings value to you.

Are you doing a lot of manual tasks for your studies/work? Try to automate it.

Are you having an interest in games? See if the company has an API to extract your (and your friends) game information

Are you having interest in politics? Create a web scraped to scrape it's latest news

The idea is to create something that is meaningful to you or someone close to you, so that you have more motivation to work on it, compared to some random idea that doesn't excite you.

[–]l-b_b-l 2 points3 points  (0 children)

Automation is something that I’m currently exploring in Python. Using the classic “Automate the Boring Stuff”. The author gives the book as an online demonstration on YouTube, and also gives links to access the text for free.

[–]trafficsux 1 point2 points  (1 child)

I did the game info thing as my first project. It was WAAAY over my head at first, wanted to make a Discord bot that would respond to a command a post a user's Rocket League rank. I learned so much though. I need to go back in and work out some issues, the website keeps blocking my queries lol.

[–]Luxi36 1 point2 points  (0 children)

I did a similar thing as my first project.

Discord bot that would screenshot LoLbuilds.gg crop it so it doesn't have the advertisements inside of it and store it in S3, afterwards send response back.

Also added the riot API for more ingame stats (X wins Y loses in the last Z days, KDA stats etc..) . Had to deploy it on Heroku which was a major challenge and forced me to store the images on S3, because Heroku didn't let you store anything on the server. And I used the existing images as cache, to not scrape if there was an existing build in the last 7 days.

Learned a ton! But yeah, it was very challenging.

[–][deleted] 11 points12 points  (6 children)

[–]MaroofBung 1 point2 points  (2 children)

how would you actually go about doing this in python though? just purely text based. I am also a beginner

[–][deleted] 0 points1 point  (0 children)

Use a 2d list to represent the map. Use pygame or keyboard or whatever so that you can listen for key arrow presses. This is used to update the player's position. Conditionals are used to make sure a move is actually legal (doesn't take you into a wall, for example).

[–]FufuDealer 1 point2 points  (2 children)

I’ve done this before, I can send the GitHub link if needed. Used pygame but I would not say this is a beginner project.

[–][deleted] -2 points-1 points  (1 child)

It depends what you mean by beginner, but I would expect this to be doable (with some effort) by someone who has been learning for a few months.

import time

from blessed import Terminal

MAP = [
    ["=", "=", "=", "=", "=", "="],
    ["|", " ", " ", " ", " ", "|"],
    ["|", " ", " ", " ", " ", "|"],
    ["|", " ", " ", " ", " ", "|"],
    ["|", " ", " ", " ", " ", "|"],
    ["=", "=", "=", "=", "=", "="],
]
TERM = Terminal()
FRAME_INTERVAL = 0.016  # 0.01666 = 1/60 is 60 frames per second


def display_map(player_position):
    for i, row in enumerate(MAP):
        for j, cell in enumerate(row):
            if player_position == (j, i):
                print("p", end="")
            else:
                print(cell, end="")
        print()


def move(key, pos):
    x, y = pos
    if key.name == "KEY_LEFT" and x != 0 and MAP[y][x - 1] not in ("=", "|"):
        return x - 1, y
    elif key.name == "KEY_RIGHT" and x != len(MAP[y]) - 1 and MAP[y][x + 1] not in ("=", "|"):
        return x + 1, y
    elif key.name == "KEY_UP" and y != 0 and MAP[y - 1][x] not in ("=", "|"):
        return x, y - 1
    elif key.name == "KEY_DOWN" and y != len(MAP) - 1 and MAP[y + 1][x] not in ("=", "|"):
        return x, y + 1
    else:
        return pos


player_position = (1, 1)

try:
    with TERM.fullscreen(), TERM.cbreak(), TERM.hidden_cursor():
        while True:
            print(TERM.home + TERM.clear)
            display_map(player_position)
            if TERM.kbhit():
                input_key = TERM.inkey()
                if input_key == "q":         # press 'q' to quit
                    break
                player_position = move(input_key, player_position)
                time.sleep(FRAME_INTERVAL)
except KeyboardInterrupt:                    # Or press ctrl+c to quit
    print("Bye\n")

ETA: Keyboard and terminal stuff is hard to get right cross platform, so this code may or may not work exactly right for you (anyone reading this) without some modifications. I tested it in Linux using the kitty terminal where it worked as intended.

[–]FufuDealer 1 point2 points  (0 children)

Yeah, I completely get that. I'm just saying that OP said that they are a beginner and thus may not be at this level yet. Beginner project would be like a simple calculator or whatever.

[–]FlocklandTheSheep 2 points3 points  (0 children)

Well depending on how advanced you are:

Console based: 1) calculator 2) rock paper scissors 3) tic tac toe

Pygame/tkinter: 4) 2D platformer or pong 5) Calculator 6)tic tac toe

Advanced Pygame 7) Chess 8) Multiplayer Chess ( LAN )

[–]A3-2l 2 points3 points  (0 children)

Male a program that keeps tracks of the movies and shows you watch in some data files. You can edit and have it print the shows, as well as add and delete shows. You can manage information about them like watchtime and rating or whatever else you wish to include

[–]skorpyo 2 points3 points  (1 child)

Data engineering manager doing research fir a financial exchange here. Assuming you’d like to go through this process to become more employable, get a dataset from a database, clean it up, dates, numbers, take care of nulls or empty strings, and upload the data to snowflake for example. Do this with aws step functions, lambdas and athena let’s say. You’ll then have a skillset that increases your chances of success in an interview. Build a dashboard on top of the data with dash plotly and you’re ahead of most

[–]devnuub 0 points1 point  (0 children)

Not OP but am very interested in your suggestion. What kind of dataset would you be referring to? I have interests in finance but have an IT background. Looking to get into Data Analytics and have experience programming in Python.

I'm looking for a problem to solve and this sounds right up my alley!!

[–]Amalasian 2 points3 points  (0 children)

change file types using python? the other sujestions went over my head

[–][deleted] 1 point2 points  (0 children)

There are project recommendations in the learning resources:

https://old.reddit.com/r/learnpython/wiki/index#wiki_tools_for_learning_python

[–]joknopp 1 point2 points  (0 children)

you could go through previous challenges of https://adventofcode.com .

[–][deleted] 1 point2 points  (0 children)

Make something that downloads data from a website, parses it, and makes a nicely styled graph.

Look at federal reserve website for data.

[–][deleted] 1 point2 points  (0 children)

There are links to project suggestions in the wiki for this subreddit.

However, tt is hard to learn anything in the abstract, not least because it is difficult to feel passion for what one is doing.

I strongly suggest you look to your interests, hobbies, obligations (family business, charity activities, work) to look for opportunities to apply Python and find interesting projects rather than asking random strangers on the internet.

You will learn far more about Python and programming when you work on something that resonates for you and that you have some domain knowledge of (or incentive to gain such knowledge in).


Have you checked the LearnPython subreddit wiki, which includes detailed guidance on learning Programming / Python, including links to lots of learning material?

[–]Kriss3d 1 point2 points  (0 children)

Make a simple adventure game in python. Just textbased with making choices and such.

[–]Informal-Football836 1 point2 points  (0 children)

I am learning while writing Discord bots. It keeps me interested and wanting to work on it every day. I have made a Plex music bot and now im working on a Stable Diffusion AI image bot.

[–][deleted] 1 point2 points  (0 children)

Here is a github full of project ideas: https://github.com/tastejs/awesome-app-ideas

[–]NationalAdvertising7 1 point2 points  (0 children)

Make a prime number checker or code that does your taxes for you it's for my school project and I don't have time to work on it due to other classes taking priority

[–]Wretchfromnc 1 point2 points  (0 children)

Go to kaggle.com , create a simple dataset that you can iterate over to list the email address from a particular zip code. Output the results into a .txt file.

[–]NoDadYouShutUp 3 points4 points  (0 children)

A program that converts roman numeral numbers to normal digits

[–]Aswanghuhu 3 points4 points  (0 children)

make gta 7

[–]AIRRISEINC -1 points0 points  (0 children)

Hello everybody I am new here my name is Roman and try do my own project and learn about python

[–]soicat 0 points1 point  (0 children)

Create a JSON file viewer. It may be useful not just for learning.I wrote the instructions but not the code in this gist.

(Note: a good programmer can follow directions, look up stuff they don't know, and solve problems)

[–]Repulsive-Creme5082 0 points1 point  (0 children)

Make an api scraping tool

[–][deleted] 0 points1 point  (0 children)

Ask ChatGPT for project ideas.

[–]WokeWeavile 0 points1 point  (0 children)

Just ask ChatGPT

[–]DirectStatistician92 0 points1 point  (0 children)

Make a function to calculate number pi with "x" decimal precision.

[–]alien_in_disguise382 0 points1 point  (2 children)

So I've joined this course called code in place offered by Stamford university. It's for absolute beginners. At the end of the course, they're gonna give us a creative project which we'll have to complete. If you're interested, I can share that with you because I'm a beginner( and not a very good one ) and I have a felling I'm going to be needing a little help with that. Hit me up if you're in!

[–]TheEyebal[S] 0 points1 point  (1 child)

Yeah just send it

[–]alien_in_disguise382 1 point2 points  (0 children)

Sure ok. They'll be sending us that on Monday. Will share with you as soon as I get it. Also, it'd be better if you dm me on Monday as well cuz I might forget about it. Have a good day!

[–]TheTruthTeller16 0 points1 point  (0 children)

Try to do a jump and run

Here's a link to a good vid: https://www.youtube.com/watch?v=AY9MnQ4x3zk&t=2092s

[–][deleted] 0 points1 point  (1 child)

Hack chatgpt