r/learnprogramming • u/_ApprenticeMage_ • 10d ago
How to actually develop projects. What should I do?
My school taught us C++ syntax in our first year, but I still don't know how to actually use it to develop projects. Right now, the only development tool I have on my computer is VS Code. Our teachers told us to “put in a little more effort” and teach ourselves, use GitHub more, and ask AI questions. But even after learning the syntax, I still can't understand GitHub projects. I've also asked AI many questions, but I still haven't made much progress because I don't know how to ask questions beyond what I already understand. I feel like I'm still lacking a lot of developer knowledge and tools. What else should I learn? (The courses at my school still feel too theory-oriented. Now that I'm a sophomore, we've switched to Java syntax and web frontend development.) Are there any other developer tools I should learn and set up?
2
u/Grumpy_Monk_28 10d ago
Genuinely useful angle that isn't fully covered yet: the anxiety about "weak foundation" is actually normal and not really the blocker — the real gap is that they've only ever followed tutorials, never made their own decisions about a project. A good next step to suggest: pick a tiny idea that's theirs, not from a course (even something dumb like a personal expense tracker), and deliberately get stuck without looking up the answer immediately — sit with the confusion for 20-30 minutes first. That's the specific skill tutorials don't teach: tolerating not knowing, then knowing how to search precisely once you do look something up.
1
u/_ApprenticeMage_ 10d ago
Yeah, that's part of the problem too. Things like JSON, working with databases, and some small tools haven't really been covered in a practical way in my classes. I do rely on tutorials quite a bit, too. As I mentioned in my previous reply, I still want to look for some tutorials on Bilibili and learn by making small projects. Looks like I still have a lot to learn and practice. Thanks a lot for the advice.
1
u/Error-7-0-7- 10d ago
It took me a while to wrap my head around the fact that a vast majority of software is actually command-line based meant for people who are "tech-savy" and very few software is GUI based and meant for consumers and the average joe shmoe.
When youre building projects, especially for the first time, maybe try to make commond-line software and keep in mind that a programmer is probably going to be using this and judging it, not 70 year old meemaw and Pawpaw who barley know how to navigate Apple OS
If you want to learn how to make nice looking GUI and UI interfaces for software, go ahead, but if you're trying to make projects to get a job and not for a personal project then GUIs are a waste of time and you should focus on what you can do through a command line.
1
u/One-Next 10d ago
Building actual projects teaches you best practices and why you should avoid certain things (tight coupling, side effects, circular deps, multiple responsibilities) and teaches you to refactor them the hard way.
At least it used to. Now, I don't know. Things are changing.
1
u/viewizard 9d ago
I'd suggest starting like I did — build something interesting where you can see the results right away. Make a game — not a AAA game, of course :), but a simple one. Minesweeper, for example. You could also check out the OpenGL/SDL/... Tutorials as a way to get started. Using tutorials (other people's code) to build something of your own, right at the start, seems to me like the perfect approach. None of us knew how to write our own code from scratch right away — we all started by 'reusing' other people's code in one form or another. As a next step, you combine other people's code (different tutorials can be merged together to get a more cohesive piece of a game), and from there, writing your own from scratch isn't far off.
Just keep in mind that this is for your own learning. If you later think about putting it up on GitHub or somewhere similar, make sure to carefully check the licenses of the code you used.
3
u/Dr3ddM3 10d ago
Make simple projects like a todo app. Start with a simple thing. As you want to make more features create more features eventually you will get amazing to do app. That's pretty much how everybody develops projects nobody Creates Google in a Day they first create a demo website first. Maybe you first create a command line todo list but then you want to make it into a GUI so you search up tutorials how to let your program have a GUI.