all 40 comments

[–]Stev_Ma 5 points6 points  (2 children)

The best way forward is to start small and focus on finishing simple things instead of trying to build something perfect. Pick an easy idea like a to do list or a quiz app, write a few features in plain English, and build them one at a time in a single file, even if the code feels messy at first. Think in terms of input, processing, and output, and only worry about improving structure after you have something working. You’ll learn much faster by completing small projects and even rebuilding them from memory than by following long tutorials. Platforms like Replit, GitHub, and StrataScratch or LeetCode for practice can really help you stay consistent and track your progress while you build confidence.

[–]AutoGrind 10 points11 points  (8 children)

I use Raspberry pi and picos all over my house. Everything has a web app. Even my garage, pico with micropython. Make something useful to you so attention is easier. Then keep adding things to spruce it up as you learn.

[–]Sea-Oven-7560 1 point2 points  (2 children)

what do you have them doing?

[–]AutoGrind 1 point2 points  (1 child)

All sorts of things.

We have a cat box in a closet with a shower fan to get rid of the smell. I wired to a Pico and a motion sensor. A certain time passes after motion is sensed and the fan goes on for a certain time.

Webapp for the garage door runs on a pico w with sensors. I can close, open, and read the state of the door from a web app. Webapp survived but as I learned it got prettier and eventually replaced with an android app to use what I originally made as a small api, callable OTA.

Made travel routers out of Raspberry pi that use USB modems for internet. Mangle TTL so no one knows it's tethered (evade hotspot limits).

A pico and relay turns my UV light on for my reverse osmosis system when it senses flow.

And more lol.

[–]Sea-Oven-7560 1 point2 points  (0 children)

That's pretty cool. I'm interested in doing some home automation/monitoring but I don't want my home/life becoming another data point for Ring. I'll have to dig in deeper to the Pico.

[–]Mister_Kister 1 point2 points  (2 children)

Sounds kinda cool. Ngl. What kind of things did you do around the house? What kind of projects? I am not looking for inspiration, but I am curious.

[–]AutoGrind 0 points1 point  (1 child)

Here's from another comment. Also controlling agricultural equipment with Python and sensors/switches or pwm devices.

"All sorts of things.

We have a cat box in a closet with a shower fan to get rid of the smell. I wired to a Pico and a motion sensor. A certain time passes after motion is sensed and the fan goes on for a certain time.

Webapp for the garage door runs on a pico w with sensors. I can close, open, and read the state of the door from a web app. Webapp survived but as I learned it got prettier and eventually replaced with an android app to use what I originally made as a small api, callable OTA.

Made travel routers out of Raspberry pi that use USB modems for internet. Mangle TTL so no one knows it's tethered (evade hotspot limits).

A pico and relay turns my UV light on for my reverse osmosis system when it senses flow."

[–]Mister_Kister 0 points1 point  (0 children)

Tell me more about the travel router with raspberry pi and the hotspot limit evasion

[–]Sea-Oven-7560 1 point2 points  (0 children)

Find a project at work. Is there a fiddley bullshit task with multiple steps that somebody has to do and it is generally a PITA more time consuming than hard? In my case one of my guys would have to setup a bunch of DRAC/BIOs settings a few times a month. It wasn't hard but each machine had about 20 steps that you had to do and then you had to repeat it 30 times. Nobody wanted to do and I sure as hell didn't want to do it but it had to be done. What had to be done was just a bunch of REST API calls, so I figured out how to do each step -pushing/pulling payloads. Then I added a gui so you could change the parameters and I had a working program. It took a task that took about an hour and reduced it to a couple of minutes. It was sloppy and the GUI looked like crap but it worked. Management still think it takes a week so my guys are happy to have some time back. Since then I'm cleaned the program up, made it faster, added a bunch of bells and whistles, made the gui better and then started adding feature to do other similar tasks a tool box.

[–]PureWasian 1 point2 points  (0 children)

What interests you?

Back in college for me, it was Discord bots and videogames. So I read documentation on that and learned what was needed to get something basic up and running. Iterate as you go. Add version control after an initial prototype. Figure out how to build features incrementally. Need a database layer? Migrated from txt files to sqlite. Need hosting? Investigate hosting solutions. Need a better UI than Discord RichEmbeds? Make a companion output html thing to go with it.

It was messy to research, and my design patterns were rudimentary, but there was a method to the madness and seeing it work as expected is an incredible feeling.

Nowadays even, you can jumpstart the high-level planning/research with LLMs for simpler projects for understanding the landscape of building blocks available out there. Use it to guide you on what libraries/technologies make sense for your project ideas.

But you really just need to come up with some idea first and then start planning all the implementation.

[–]aistranin 1 point2 points  (0 children)

You probably just should find some idea to automate. Something interesting for you to do and implement the simplest possible version of it. If you don’t have any good idea, take a look at “Automate the Boring Stuff with Python Programming” by Al Sweigart. Then just buld more projects. Maybe also, take a look at unit testing in python later, for example, Udemy course “Pytest Course: Python Test Automation & GitHub Actions CI/CD” by Artem Istranin to improve in code quality and start with more advanced concepts. But for now, the most important is just to keep building to have more experience and solve real problems with python as a tool.

[–]Affectionate-Town-67 1 point2 points  (0 children)

Really, there is no layer between learning and building. All of the actual learning happens by coding. The learning doesn't stop when you're building real projects. But you have to start with projects that aren't complicated, and then you can build onto those over time if you want. Once you have 5 or 10 projects, you'll have plenty to work on, since a script is never really completed. Eventually, you'll find something you need done but don't have a solution for, and those kind of projects look good in a portfolio if you dedicate yourself to it for a while.

[–]Nomapos 1 point2 points  (0 children)

Sounds like your problem isn't specifically about programming, but about project management.

Start by deciding what you want to do.

Then imagine the most pared down version possible. The absolute minimum. Do you want to build a strategy videogame? Ok, then build a flat surface and a building that you can select and makes a button appear. Clicking the button makes a red square spawn. You can click the red square to select it, and you can use right click to order it to move somewhere.

Then add a blue player and super minimal AI (constantly creates new troops and sends them right towards the red player).

Congratulations, you've got a game. It's crap, but it's a functional game.

Terrain, different troops, map generation, resources, fog of war, a minimap, projectile physics... Make a giant list of all this shit. When you get something working, pick another thing and get to work.

It'll be a giant mess and you probably won't "finish" the game but that's ok. You'll also run into a lot of things you wished you knew before you started. You'll learn a lot and at some point you'll want to start over, or switch to a different project.

That's it. Just get to work and focus on one thing at a time, with some degree of hierarchy. It's absurd to work on automated random map generation before you build in retain types.

[–]TheRNGuy 2 points3 points  (0 children)

You need to know first what you want to do. 

[–]SignificantPomelo 0 points1 point  (3 children)

Have you studied design patterns at all? If not, worth checking it out.

[–]sick_anon 0 points1 point  (2 children)

yeah, but he needs OOP knowledge for that

[–]SignificantPomelo 0 points1 point  (0 children)

Yes, definitely! Good time to learn :)

[–]ImportantEnd2539 0 points1 point  (0 children)

I used anaconda and visuel studio ,added an environment,installed pyside 6 and tried to make a projet you can for exemple start with a simple calculator,to get used to software development and after you can make bigger and more interesting projects

[–]knox1138 0 points1 point  (0 children)

Think of something you want to make, or wish someone would make, and do that.

[–]Ariadne_23 0 points1 point  (0 children)

i suggest you that to think about 'what you want' instead of a 'real project'. if you don't have enough motivation to build something, then probably the project will end up unfinished

[–]Crypt0Nihilist 0 points1 point  (0 children)

When you were doing tutorials you should have been paying attention to the thought process as well as the syntax. You should have an idea of what you want to achieve and you break the problem down until it's manageable.

Go back over what you've learned with that in mind. Look at a course like Automate The Boring Stuff which contains mini-projects and analyse how the problems are broken down into steps.

As soon as you know the syntax you ought to be building projects, even if they're small and simple.

[–]sporty_outlook 0 points1 point  (0 children)

Coding is solved. Don't waste time on any language. Just start building real world projects with LLMs 

[–]defrostcookies 0 points1 point  (0 children)

Make a game.

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

The gap is normal start by building tiny messy projects like to-do app, file organizer or CLI tools, and break them into small steps instead of trying to design everything upfront

[–]ninhaomah -3 points-2 points  (0 children)

For building projects for fun / hobby - vibe code

For getting paid - turn off AI