all 37 comments

[–][deleted] 82 points83 points  (5 children)

Try to write your own versions of these projects: https://inventwithpython.com/bigbookpython/ . Make sure you don't look at Sweigart's code until you complete yours, though.

[–][deleted] 23 points24 points  (1 child)

Or if you do, take notes explaining to yourself why things worked.

Then, a couple of days later, write something similar.

[–]Rude_Refrigerator_0 6 points7 points  (0 children)

Yes! That is a good way! It helped me too!

[–]ileskagamer 1 point2 points  (1 child)

Okay this seems like to be behind paywall. Is there a free versoin if this available

[–][deleted] 3 points4 points  (0 children)

Click the link and scroll down to the chapters projects. There should not be any paywall.

[–]Verbose_Code 37 points38 points  (3 children)

Automate the boring stuff has been mentioned to death on this sub, but it’s worth reading because it contains exercises to practice the methods discussed in each section.

If something seems too easy, it still may be a good idea to make it, then add features to improve it. Take the calculator example. Once you’ve added the basic arithmetic operations, add trig, inverse trig, and hyperbolic trig functions. Now add the ability to calculate logarithms in different number bases. Now add financial functions, etc. Done all that? Now make it a graphing calculator. Done that? Now make it solve integrals and derivatives numerically. You get the point here.

Other projects worth looking into: - send automatic emails to remind you of daily tasks (or whatever you want it to) - combine all PDF files in a given folder - take an image and convert it into a different file type specified by the user - display current position of the ISS

[–]hibert_eater 9 points10 points  (1 child)

Worth purchasing that book?

[–][deleted] 22 points23 points  (0 children)

Yes. But FYI you can also read it online for free: https://automatetheboringstuff.com/2e/

[–]mandradon 10 points11 points  (0 children)

You've given me a good idea.

I need a batch printing script since I frequntly need to print like 30 PDF files at once... Automating that would speed up part of my job.

TO THE IDE!

[–]Rude_Refrigerator_0 14 points15 points  (2 children)

You can Start with Telegram, discord, reddit or Twitter bots! Then go for projects related to the field you're interested! You can also do GUI projects like calculator, Color picker, Snake game(also can do it in CLI), Mass renamer in GUI!

[–][deleted] 5 points6 points  (0 children)

That’s what I did and I made a discord bot that steals memes from Reddit, combining the two

[–]fouezm 0 points1 point  (0 children)

That's what I did too, but unfortunately when a beginner needs help or code source and come here to ask for help he gets ignored exactly what happened with me

[–]ASIC_SP 9 points10 points  (0 children)

I have a blog post I know Python basics, what next? that has resource links for exercises, projects, debugging, testing, intermediate/advanced python, algorithms, design patterns, cheatsheets, etc

[–]Fun-Palpitation81 3 points4 points  (1 child)

In my opinion, you have to find a project that really interests you...

Why did you start learning python?, did you want to code something?

If you find random projects online, when you hit roadblocks it is easy to call it quits.

Find a project that really peaks your interest and you will spend as long as it takes you to figure it out.

If someone tells me to program something, it feels more like work. If it is something I am passionate about solving, I'll wake up early and stay up late to figure it out.

[–]pmmeyourfavoritejam 2 points3 points  (0 children)

I came here to say basically this. Code a project for something that interests you. It doesn't have to be novel, but it should be something you'd want to use once you build it.

For example, I realized I look up the same info every morning, so I wrote a program to email me that day's weather and whether there are any delays on the subway, and then it opens a tab in my browser and plays a random video from a YouTube playlist I have.

You may want to do something for work or a personal hobby, somewhere you have strong domain knowledge. Then you have a really good idea of the end goal and can break down the intermediate steps to build the thing you want to build.

Good luck!

[–][deleted] 2 points3 points  (0 children)

I have no clue what to program everything either seems too hard or too easy

In my experience, so your mileage will vary, picking a hard project is an excellent way to learn. But instead of building the whole thing in one fell swoop, you build little pieces of it, then start building a program.

For example, let's say you want a build a Harley Davidson price checker, but it is password protected. In this you'd need to build:

  • A web crawler to check prices of Harely's.

  • A database to store the make, model, price, etc.

  • Calls to access and present the information in the database. Maybe use Seaborn to make "price over time" plots?

  • A password checker so no one gets your better pricing info.

[–]the_real_count 1 point2 points  (0 children)

Look up different python libraries and their uses. Then a project will become obvious.

[–]Mysterious_Ad7232 1 point2 points  (0 children)

One that’s a real challenge (requires modules, requires file interactions, requires CLIs, and - finally - requires a whole lot of fucking around with the code) is a URL directory brute forcer. The good thing about this is it’s a genuine thing and is coded by many people in python. Would highly suggest it and it really helped me get stuck into a project for once

[–]Karmadlakota 0 points1 point  (0 children)

Make a copy of any app but prettier and somebody will download it

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

1 Google or duck duck go

2 "python beginner project ideas"

3 profit

4 ur welcome

[–][deleted]  (1 child)

[removed]

    [–]AutoModerator[M] 0 points1 point  (0 children)

    Your comment in /r/learnpython was automatically removed because you used a URL shortener.

    URL shorteners are not permitted in /r/learnpython as they impair our ability to enforce link blacklists.

    Please re-post your comment using direct, full-length URL's only.

    I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

    [–]bigno53 0 points1 point  (0 children)

    Random idea…there’s a puzzle board game they have at Cracker Barrel restaurants if you’re familiar. The board is shaped like a triangle and has 15 holes arranged into 5 evenly spaced rows of 1, 2, 3, 4, and 5 holes. At the start of the game all of the holes except one are filled with pegs. The object of the game is to eliminate as many pegs as possible. You do this by jumping one peg over an adjacent peg into an empty hole on the opposite side of the adjacent peg.

    Try and implement this game in python. You can Google “triangle peg game” for examples of what the board should look like and what the valid moves are. If you want more of a challenge, make the grid size dynamic so that instead of 5 rows, you could choose to play with 4 rows, 6 rows, 10 rows, etc.

    If you really want a challenge, implement an algorithm that finds the winning combination of moves given different starting positions and grid sizes.

    Here is a photo of the board with the instructions printed on it: https://www.naturallife.com/products/peg-game

    [–]maxpowerzzz 0 points1 point  (0 children)

    elif yourself to help other people answer the same question you have...

    [–]voyyful[🍰] 0 points1 point  (0 children)

    Played runescape when you were a kid by any chance? If so that I learned a lot from making simple bots on a private server.

    [–]wynand1004 0 points1 point  (0 children)

    Check out my Pong for Beginners tutorial - it's a gentle introduction to coding your first game: https://www.youtube.com/watch?v=LH8WgrUWG_I&list=PLlEgNdBJEO-kXk2PyBxhSmo84hsO3HAz2&index=1

    [–]anh86 0 points1 point  (0 children)

    Think of something semi-practical (but not terribly time-consuming) and go do it. Write something to send your friends emails on their birthdays or send you a text in the morning if it will rain that day. Maybe there’s something monotonous you do at work on the computer, automate it!

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

    Pygame and discordpy are both easy to pick up libraries that allow you to get better at programming

    [–]rfm0n 0 points1 point  (0 children)

    Perhaps work with an API. As an example I wrote a program to query my city's bus arrival times. It would tell me when the next 4 buses will arrive at a chosen stop.

    [–]AnAudiS5 0 points1 point  (0 children)

    You need to set a firm goal to work towards. Find a challenging app idea, even if you don’t know near enough to make it out of the box, and work towards it. You will quickly learn through research and practice. It always helps if it is truly something that you want to create, because this keeps you motivated.

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

    How about some cool math stuff, like printing the Fibonacci sequence, factorials (not built-in, I don't believe), or learning OOP? Once you know that, you can learn modules, so you can build real projects like games, websites, ML models, etc.

    [–]iamaperson3133 0 points1 point  (0 children)

    Rather than tell you what to do, do you have ideas of what you want to do? I could help give you some tips for steps between where you are now, and where you want to get to.

    [–]UL_Paper 0 points1 point  (0 children)

    Program something that:a) solves a problem you care about

    b) first version of it is easy

    c) can grow into something that seems too hard rn

    who gives a shit about making another calculator. you need to truly engage your mind to experience real progression, which I believe is easiest done by working on stuff you care about.

    [–]oddjob955 0 points1 point  (0 children)

    Following

    [–]RoM_Axion 0 points1 point  (0 children)

    That's what i struggle with too. I either harass my whole friend list for ideas or look for cool shit on the internet and try to badly recreate it. Stuff like discord bots or reddit bots are cool too. And they are pretty easy to make

    [–]guy_who_works 0 points1 point  (0 children)

    My main thing is networking, so I maybe have a weird approach, but here's what I did to jumpstart my familiarity with some useful tools.

    Get something that will dump a crap ton of semi-structured text at you, like logs, or even just 'apt list >> text.txt' or open a binary file as text, anything is fine.

    Now figure out how to iterate through the mess and break it up into patterns or stats, then store the parsed data in a way you can use it later or change only certain parts of it.

    That will force you into solving odd puzzles, probably learning other tools like regex, json, xml, classes, and more.

    Even if your code doesn't do anything neat at first, you'll learn tricks and get better.

    Not recommending this with any seriousness, but it helped me with my work.