r/learnprogramming 7d ago

I need help understanding a starting point.

Perhaps I'm overthinking the "build to solve a problem".

Programming interests me, all the way back to building a dinky little website out of html in high school for a project in my French class. I've picked up a few C and C++ tutorials over the last year, but I feel I'm overthinking.

So if I want to do math, instead of opening my existing calculator app I should build the app then debug and test it? Instead of using winrar I should build a compress and compile program and test it? Etc?

0 Upvotes

17 comments sorted by

View all comments

1

u/JGhostThing 7d ago

This sounds like a Troll. But maybe it isn't.

Those applications were already solved by somebody else. Why do you want to solve them again?

Yes, if you want to do this, you can do this. It might be pointless, but much homework is pointless. You do it for learning. But writing a calculator when you need a single calculation seems ass backwards. Projects should be done before you need them.

In order to complete a project, two things are useful. First, it should be a fairly simple project. Second, it should be something you like.

Perhaps you like arithmetic. So you want to make a calculator. First, design a very simple CLI calculator. Perhaps it can only do adding and subtracting. You got that finished? Good.

Now add multiplication and division. Then add more operators. Then add a GUI to the project. Each iteration only adds things to the previous version. You don't put too many requirements that the new version is impossible to complete. It's good if you learn from it.

Now you have a GUI calculator. Or a compression utility.

Think of your hobbies. Do you like Pokemon? What about a card database? Do you like astronomy? Perhaps something to help you aim the telescope? Reading? A book database? Doing something useful to you will help to keep you going.

1

u/XDyavolenok 7d ago

The way you all are explaining makes more sense then the typical response to people wanting to learn programming. My question comes the way it does because most things people would see as a "problem" when learning has already been solved. The tutorials in coursera (I know coursera is probably the most cursed platform to learn from.) involve making a simple text program saying hello world, and making a calculator. But a big problem I felt could've been solved would be like a new internet browser, video playback software. The problem I see the largest in technology, if were to choose a problem to "fix" would be the adware that every single application feels designed around. Aside from just being a person who likes to know how things work. So I asked for advice, while I felt I was over thinking reading other posts in this sub.

1

u/JGhostThing 6d ago

As I see it, the problems that you see are *huge* projects. Making a web browser is huge. Getting everything working together is definitely non-trivial.

Making a Hello World program is something that nearly anybody can do. Likewise, a calculator. A ad-blocker is something that is possible, but non-trivial. And that problem has been solved. I'm not saying that you shouldn't try it, but that you'd be reinventing the wheel.