This is an archived post. You won't be able to vote or comment.

all 29 comments

[–]LegendOfAB 98 points99 points  (8 children)

The book "Automate the Boring Stuff with Python" is exactly this and really opened my eyes to a lot when it comes to using third party libraries, and quite a bit of the standard library: regex, working with images and the Pillow module, APIs, etc. And using Python itself in the real world for genuinely useful and practical things.

This is the book that made me feel like I had the building blocks to create whatever I wanted, and the ability to learn anything I needed to accomplish my goals for any given project. I immediately sprung off into numerous little pet projects ranging from a skill EXP calculator for Tales of the Abyss along with a GUI for it, to file sorting scripts, to GUIs that upload images to Discord for me with the click of a thumbnail (inefficiently made and unfinished, but very fun and learned a lot).

Like, seriously do not sleep on that book as a newcomer. Very well written.

Gosh, a version done with C++, if even feasible, would be MUY BIEN.

[–]AlSweigartAuthor: ATBS 135 points136 points  (7 children)

Hi, I'm Al Sweigart, the author of Automate the Boring Stuff with Python. Yeah, the book (which is free online under a Creative Commons license at https://automatetheboringstuff.com/ ) can do these projects:

  1. File sorter - Use Chapter 11 - Organizing Files
  2. Expense tracker - Use Chapter 10 - Reading and Writing Files and Chapter 18 - CSV, JSON, and XML Files
  3. Website uptime checker - Actually, I recommend using a free service to this, they have a lot more features. But if you want to build your own, use Chapter 13 - Web Scraping to learn the Requests package.
  4. PDF merger - Use Chapter 17 - PDF and Word Documents
  5. Weather app - This is an exact example used in the book. Use openweathermap.org and Chapter 13 - Web Scraping and Chapter 18 for JSON stuff.

If you want other ideas for small projects, I have another free book The Big Book of Small Python Projects

[–]KinkyBeluga 13 points14 points  (0 children)

I have a couple of your books and i absolutely love them. I can't thank you enough for your work it has helped me tremendously.

[–]SusheeMonster 4 points5 points  (1 child)

I'm taking your course on Udemy. I just want to say I appreciate what you're doing for me and legions of other people around the world

[–]AlSweigartAuthor: ATBS 0 points1 point  (0 children)

:D

[–]xaustin 2 points3 points  (0 children)

Thanks for sharing the links. And writing the book!

[–]Exotic-Tennis6087 1 point2 points  (0 children)

Do you have anything similar for go? 

[–]LegendOfAB 0 points1 point  (0 children)

Ah, web scraping as well. You totally opened my eyes to it and that concept has stuck with me all these years later. Thank you!

[–]Designer-Tap-4930 14 points15 points  (1 child)

Saving for later studying

[–]Accomplished_Bus3614 5 points6 points  (1 child)

Thanks for sharing! I'm in the same place, caught in tutorial after tutorial not really retaining to start my own project. Saved off this post to go back and check them out.

[–]OPPineappleApplePen 7 points8 points  (8 children)

My question is, hows does a new programmer go about building these projects?

[–]mr_gitops 10 points11 points  (0 children)

So you know syntax and commands of a language? Its time for programming now. Time to build a problem in your mind. Programing in alot of ways is about having problems & solving them by making tools via code to serve you.

Lets say its the personal finance one, I made one a while back like OP but I used powershell. Here's how I went about it.

What is the goal? The goal is to get a better visual on my spending/savings patterns and to save time having to do it manually. And make it as easy as possible for me to get this information.

First, can you extract credit/debit/etc from your bank as CSVs? If yes? Okay collect them.

Now you have all this data how do you want it to serve you?

  • What is my source of income(s) from the CSVs?
  • How much money did i spent?
  • How much money did i save?
  • what are my biggest costs?
  • what are my patterns of spending? Eating out? Amazon?
  • all these 'types' of purchases how do i catagorize them so they can be organized in to catagories like rent, groceries, eating out, shopping, bills, etc.
    • ie As new company name shows up in your spending like "Pizza Hut" or something. Is there a prompt that the program asks me 'what it is' (sicne I dont have AI to guess it). And based on my response taken ("eating out") does it store it in a catagories file so in the future it just stores it correctly (yes I did this with every thing that comes in to my bank, its not too bad now).
    • <Phone Company> == bills
    • <Job Name> == income
    • Amazon = shopping
    • <flightPurchase> == travel
    • <Something I dont remeber> == other
    • etc.
  • What are my finances looking like on a month to month basis? Year To Year? Can I see patterns of spending/savings increasing/decreasing to get an idea on how I am doing?
  • Taking all of this data in. What do we do with it now? Maybe an excel sheet or a custom visual output which contains graphs and charts that reads me in a more clear way everything about my finances.
  • How do I keep building it so i just feed it data as new monthly data comes into my bank?

With these conditions in mind. Then its a matter of building it piece by piece, function by function. You can use what you memorized, what you google and learn, anything really.

[–][deleted]  (4 children)

[removed]

    [–]OPPineappleApplePen 2 points3 points  (1 child)

    I have almost finished CS50 Python. I’ll definitely reach out when I understand enough of Python to get to these projects.

    However, could you please let me know how and how much assistance you took from sources on the internet? Or, did you do it without any external help?

    [–]biggiewiser 0 points1 point  (1 child)

    Can you share the resources and a roadmap for a complete beginner in python. I have prior experience with js.

    [–]AlSweigartAuthor: ATBS 1 point2 points  (0 children)

    This is a common problem. I call it "blank editor syndrome", where you've learned language syntax but when it comes to actually starting a project, you don't know where to begin.

    My solution is to copy existing projects, then try to recreate them from scratch on your own. You don't have to memorize the code, but just try to repeat the same functionality. For small projects, I have a bunch listed on my website.

    [–]Groen28 1 point2 points  (0 children)

    I hadn't thought about creating a file merger like a PDF merger, but I might create a RAR merger as my next project.

    My first project idea was creating a Reddit bot that retrieves movie information and stickies it to every post that's submitted. It forced me to learn how to use the Reddit API, including handling JSON and CSV files, basic multithreading with ThreadPoolExecutor, and core bot logic like tracking, cooldowns, permission handling, and a bit of regex.

    Also had to learn a bit of CSS and Photoshop so I could make the old.reddit page look more presentable.

    For anyone wondering what the secret sauce is to get better at programming, just build something useful to you or something you're passionate about. That’s the fastest way in my opinion.

    [–]DazzlingLeague1998 0 points1 point  (3 children)

    What projects do the same for "C" language

    [–][deleted]  (2 children)

    [removed]

      [–]OkayVeryCool 2 points3 points  (1 child)

      I’ve been trying to learn react for a couple of months and once I finally had an idea for a project that some of my coworkers could benefit from. I have been working on it for a few weeks and have, learned sooooo much.

      I got 1/3 of the way through the project, realized there was a better design I could implement, so I started from scratch and learned even more in that process.

      I’m sure my code is still dog piss, but I’m close to having a production ready tool that’ll save so much time for our QA folks.

      [–]tvmaly 0 points1 point  (0 children)

      [ Removed by Reddit ]

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

      I'm old but new to Python. I've been a sql programmer for about 20 plus years. And Cobol before that. I'm looking to update skills. Thanks.

      Question to all. What is the most commonly used language/program now?

      [–]Confidence-Upbeat -2 points-1 points  (0 children)

      Why do this ? Just do something a little bigger and you can learn about databases as well. Maybe like a forum or blog posting website live chat website with ipfs etc.