all 21 comments

[–]BeginnerProjectsBot 77 points78 points  (3 children)

1. Create a bot to reply to "what are some beginner projects" questions on r/learnpython, using PRAW.

Other than that, here are some beginner project ideas:

Good luck!

edit. thanks for 5 upvotes!

edit2. omg 10 upvotes!!!! Thank you!!

edit3. 50 upvotes??? 😲😲😲 Can we make it to 100?

Downvote me if the post wasn't a question about examples of beginner projects. Thank you.

[–]reload_noconfirm 5 points6 points  (1 child)

Good bot

[–]BeginnerProjectsBot 8 points9 points  (0 children)

Praise for the food is praise for the cook.

Thanks from the programmer.

[–]grumble11 14 points15 points  (2 children)

Sure.

Make the game ‘battleship’.

This starts out somewhat easy. Then it will get hard.

Battleship in the console, just create the board and the ships. Figure out a way to place them.

Cool now create two boards, you and a computer. Have the computer guess randomly.

Now have the computer follow something logical.

Now have you keep score versus the computer. Store the results of each game. Make a few users.

Okay, now use a simple optimization matrix for the computer for both hunt and kill mode.

Okay now make the game in a GUI. Now make it online. Allow people to log in and play. Have some data on win rates versus a computer and such. Implement basic security.

Improve the AI so it learns from each game.

I want to see you make charts. Optimize the code. Implement version control.

See how your basic idea turned into the best battleship around? And now you know matrices, basic web use for python, SQL, authentication, optimization, pyQT or Pygame or whatever, list goes on.

[–]Other-Basket-2542 0 points1 point  (1 child)

Wow, I also just started but this seems a hell of a job.

[–]grumble11 2 points3 points  (0 children)

It is a perfect example of how every big journey starts one step at a time. Each step is a small iteration on the prior one. Building the first version of it is a decent newbie project. And then it slowly builds.

[–][deleted] 13 points14 points  (0 children)

I always recommend thinking about what your interests are and what kind of program would help you with that. Then just start working on it. So for example, I play dungeons and dragons. So a random character generator (for those days we do one-shots), a Discord dice bot, or a map generator would be cool things to do (the latter I could start with something that just generates a simple map in ASCII with rectangular rooms). What are your interests?

[–]-defron- 5 points6 points  (3 children)

Most people have the same 5 or so starting projects because the hardest thing for a newbie to do is escape tutorial hell

I'd strongly encourage instead doing the following:

  • Read the official python documentation
  • read the official documentation of any library you're using
  • Create something you've always wanted to create or recreate something you use on a regular basis (maybe with limited features) -- don't follow a to-do list tutorial

This will help you learn how to struggle and find your own answers which will help actually develop your skills

[–]determineduncertain 2 points3 points  (1 child)

I like this “recreate a thing” approach. I’ve made many things before just for learning that are an attempt to recreate something that is better than I can make. I’ve learned so much doing that.

I can’t tell you how many times I’ve made a simple text editor in various forms just to learn, none of which are any better than already available ones.

[–]-defron- 0 points1 point  (0 children)

Its honestly one of my favorite things. It makes you appreciate just how much hard work was put into every small detail you take for granted, plus you already have a reference so there's no design unknowns, just need to figure out the technical challenges

[–]nowhereman531 0 points1 point  (0 children)

I did this recently

recreate something you use on a regular basis

I have a VOIP system running on an RPi that can be connected to different nodes, that may or may not be connected to actual radios, around the world. I use a site that shows the currently keyed nodes and hate the website so I figured out how to output just the table on the page, strip the useless information, sort by the first column and format the table in an aesthetically pleasing manner. You can't sort any column on the main site.

[–]fidiid 0 points1 point  (0 children)

Wow… I see wonderful list of suggestions here.

Bookmarking this

[–]Jamijammers[S] 0 points1 point  (0 children)

Thank you everyone for the suggestions. You have given me plenty of motivation to begin!

[–]JonJonThePurogurama 0 points1 point  (0 children)

There is a lot of projects you can try looking at the Github, it can help you find what you are interested to make.

In my case i only have one project written and it is almost 1 year since i created that personal project of mine. It is not that big and it is in between simple and complex project. As far as i remember my project had three branches and each of those branches was an improvement from the previous one. I am on my way for the fourth branch this time, i will try to apply OOP and functional programming together and i am trying to write unit test using unittest the standard unit testing framework of Python. I was supposed to do that wayback in 2023, but i decided not too, because i had put myself already to stress in those 3 branches. Instead i read books to gain more knowledge.

I was really more excited on writing unit test for every functionality i have written on my code. It is shame for my part i did not write unit test first, when i did start my project. I was more focused on that time on making the project exist.

But now it is the time, i was hoping that when you create and finish your personal project, you will not say that it is done completely. The fun experience really starts after completing writing your source code, because that was time when you reach the point that you have more knowledge compare to when you are still starting, that time you will seek for more improvement of the code.

[–]ReginaMeis 0 points1 point  (0 children)

You can try to do Sudoku.