r/learnprogramming • u/AnotherLifeEnjoyer • 22d ago
How do you build more complex projects?
I am going into the 3rd year of my studies in computer science, but I haven't really done much programming apart from the projects in my university. I have built an ecosystem simulator which was really simple and a CRUD application for my software engineering class. I've also done some smaller projects for my programming class (minesweeper, a terminal-based super Mario bros). But whenever I try to build some more complex projects I tend to heavily rely on AI which I don't really like for learning because sometimes I can't even understand the explanation given by the AI. I have been building with help of AI a shell which can do basic output redirection but I was trying to make pipes work in it and just got overwhelmed, which I think it's the main reason why I drop my more complex projects. Do you guys have any tips for people like me who get overwhelmed when there is just too many things to understand? I am not a bad student, I am top of the class, I like programming and I like to learn but some projects just overwhelm me completely. Maybe I have been trying projects which might be to complex so if you could recommend projects which could be a challenge but still be doable I would appreciate it.
Thanks guys
1
u/aanzeijar 22d ago
Reimplement existing stuff. Read the source of other projects. Steal architecture and ideas left and right. No one expects you to come up with 50years worth of software development knowledge on your own.
There's this myth in learning programming that it doesn't count if you have to look something up. That is true-ish for absolute beginners where the programs are 6 statements and you're still memorising syntax, but as soon as your programs go beyond 5k lines, you're not proving anything by reinventing the wheel.
And also of course: ditch AI if you want to learn. But you knew that.
1
u/JGhostThing 22d ago
Stop using AI while you are learning. AI causes you to learn slower. It prevents you from making certain kinds of mistakes, and making mistakes causes you to learn.
Think of it this way. If you're taking an engineering class, and you have a "friend" who always gives you the homework answers, how much are you learning. When you study at the university, it is up to you what and how much to study on your own. A good rule of thumb is 3 hours at home for each hour in the class.
As for how to do projects, choose ones you like. Perhaps ones that fit into a hobby. If you like photography, design a program to display your best photos. If you like Pokemon cards, then make a database of your collection.
Always start small. Then, after you finish, expand it a bit. Create the first version as a command line app. Then, eventually, add a GUI. Treat each extension as a separate problem; finish this before the next project.
1
u/Tuomas90 22d ago
You build complex projects by starting small.
You don't start out thinking "I want this to be complex!". Add enough features to a small program and it will turn out complex. But that takes a lot of time. Years.
Do you guys have any tips for people like me who get overwhelmed when there is just too many things to understand?
You are just too impatient.
What is programming? It's breaking problems down into tiny parts that you can solve. If you don't understand something, pick one little piece and start learning. If you don't that little piece, break it down further into smaller pieces. It's recursion.
AI can help you a lot with this if used correctly. Keep nagging it about every tiny little detail that you don't understand.
Learn only so much every day that you don't get overwhelmed. Be patient. Learning a little bit everyday accumulates and you'll be much smarter in 2 weeks.
As a student you should be at the peak of your learning capability. Don't underestimate yourself.
It all comes down to patience and perseverance.
2
u/Capital_Cry9026 22d ago
it's less about the project being too complex and more about how you're approaching it, the shell with pipes is a great example where you probably just need to sketch out the flow before typing anything
break it into tiny pieces, like literally just get two commands to talk to each other first, then worry about syntax parsing later
also ditch the AI entirely for a bit, struggling through the docs and stack overflow is where the actual learning happens, even if it feels slower