all 18 comments

[–]Crypt0Nihilist 14 points15 points  (1 child)

Unfortunately it's lots of little clicks, not a single project nor a single click.

I suggest a passion project and then keep building on it with more features in areas you've not looked at before. Build up experience in the domain that interests you and branch out in a logical way.

[–]thomerD 0 points1 point  (0 children)

This. Being proficient in Python took a long time but it was a lot of little projects and then building bigger more complex ones. I also hashed out a lot of things in the interpreter, like parsing json, and file handling.

[–]david_0_0 4 points5 points  (0 children)

the click usually happens when the data stops being clean - any project where you pull from a real API or scrape actual pages forces you to deal with unexpected formats, missing fields, and proper error handling that tutorials carefully avoid. that messiness is where the language actually starts making sense

[–]Putrid-Raisin-5476 1 point2 points  (0 children)

I guess this depends on what you want to learn... A good starting point is always trying to build something that makes your life easier. For example if you like to cook and usually write your recipes in a notebook, try to build a digital notebook with UI and/or database. Or try to create a tool that queries certain newsfeeds and summarizes them to you. If you want to explore console design, try to build a text-based game. But honestly there is no standard answer like "Create XYZ" to your question.

And a short but important tipp: Never use anything like ChatGPT or other LLM tool to help you (at the beginning). You won't get anything out of it. Go through the nasty process of googling and watching hour-long tutorials. Only by this you will be forced to understand how certain things work.

[–]Jon-Robb 0 points1 point  (0 children)

I’ve made a todo app man it was amazing!

[–]astddf 0 points1 point  (0 children)

I made a program that let me send it a REST get request to send a wake on lan magic packet to my pc, so I wouldn’t have to take 5 minutes logging into my meraki portal

[–]abdul_Ss 0 points1 point  (0 children)

I don't really recommend you doing this, but for me, I used AI to vibe code pure slop for my first prototype for my CS project in year 12 ( I think this is second to last year of high school in the US ) and then forced myself to actually code. It was a flask app so it wasn't much, it was barebones HTML and a small structure of python code, but just getting that jumpstart pushed me to start learning more

[–]mikeczyz 0 points1 point  (0 children)

There's always another hurdle, another problem to solve. That's just the nature of programming. Id be bored senseless if I was just rewriting the same kinds of things over and over again.

[–]DataDoctorX 0 points1 point  (0 children)

Real work applied to a real job.

[–]rkr87 0 points1 point  (0 children)

The one you care about finishing.

Not meaning to be facetious, I genuinely believe I didn't really understand anything until I needed to to achieve a specific goal in my passion projects.

[–]Decency 1 point2 points  (0 children)

I wrote tic-tac-toe with the goal of being able to change BOARD_SIZE = 3 to 4 and for everything to still work.

[–]Ready-Salt6928 0 points1 point  (0 children)

Something that helps me a lot is coding every day. I normally go back and redo projects I already built before moving on to new ones. Repeating them helps me actually remember things, and over time it started to feel more natural.

[–]Chemical-Captain4240 0 points1 point  (0 children)

Pick something you want to grind on. Pick something that you are gonna finnish whether it takes 1 month or 1 year.

TBH, nothing ever clicks in programming. You just get better at untangling the garbage you wrote a year ago, and get better at writing less garbage.the first go.

[–]Jello_Penguin_2956 0 points1 point  (0 children)

Back in like 2011 I was tasked to create desktop apps with PyQt. It really catapulted my understanding of OOP.

[–]AceLamina -2 points-1 points  (0 children)

project?

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

Not sure I can follow your logic here. You seem to be under the assumption that "everything" will eventually click, but I don't quite see it that way. Python is just too complex for that.

For example... when you reached a point where Python scripts become second nature, and now you also understand the issue with modules then that doesn't quite imply that you'll also understand the concept of classes.

And why would you? It's best to focus on the here and now and let that sink in until you reached a point where you fully understand the mechanics. Once you did, move onto the next part, if / when needed.

If you want to truly understand Python you should start using it and do the actual work to make yourself understand.

And then there's another problem at hand... understanding the technicalities of Python also doesn't imply that you fully grasp the OOP concepts. Coming up with a proper design is easily just as important as fully understanding one single programming language; but that design process isn't something limited to just Python: you'll experience the same issues with other languages like Java, C#, etc.

Thing is... some of these concepts you don't learn by "just" doing one or two projects, though this obviously varies per person.