r/AskProgramming • u/YouAreMyFire00 • 11h ago
I managed to understand "recursive" in programming. Why can't I understand anything on open source project or even build an open source project?
When I was in high school, I was a C student, I'm a slow learner
Anyway I managed to learn how to build To Do List in C# and Java with e.g. API, SQL and also learn to understand what recursive is.
But when I check trendly github repo right now like OpenClaw or REA, the reverse engineer.
I don't understand shit, it is like I know plus and minus, and those github repo is like Calculus.
Maybe someone here who started from Hello World and now you are coding Wizard, maybe you can help me out here...
7
u/octocode 11h ago
i don’t think you can compare the two, understanding recursive programming is as easy as understanding recursive programming
5
u/sexy-geek 11h ago
The problem is that first, you need to understand recursive programming...
1
5
u/DirtAndGrass 11h ago
99.99% of programming has nothing to do with recursion
2
-2
1
u/KingofGamesYami 11h ago
I would say recursion is closer to multiplication than addition or subtraction. But close enough.
Building a TODO list is roughly equivalent to building an IKEA shelf.
Going from that to designing and building the equivalent of a building is quite a jump. You have a lot to learn.
1
u/sexy-geek 11h ago
What you're saying is something like " I know what a verb is. Why can't I speak every existing language perfectly?" You understood a very small "tool" for programming. And a theoretical one. Now, choose one or more languages to learn. C# is ok for you to start with. Learn logic, algorithms. How a computer works, programmatically.
1
u/Creepy_Purchase_501 11h ago
Math is not the best analogy here, as concepts build on top of one another. A better example is learning a (human) language.
So, you learn you basic vocab, you learn your ABCs, you learn how to put words together to create sentences - great, now you can read basic children’s books.
Then you learn more vocab and more complex sentence structure, some grammar, and now you’re at grade 6 level and can read simple articles.
At some point, there’s not much left to learn and you can read anything put in front of you, but that doesn’t mean you will be able to fully comprehend it. To do so, you will need to learn about literary devices, idioms, have background context of the topic etc.
Once you do that, there will still be plenty of texts that will be completely inaccessible to you because they’ll use a lot of technical jargon. And that’s fine - no person on earth knows everything, or is even supposed to.
So, you learned how to “read” basic applications. Why do you expect of yourself to be able to read something that’s very complex and technical? You barely got past ABCs and you’re challenging yourself to read James Joyce.
0
u/androbat 10h ago
Applied math seems like an excellent comparison (as that’s basically what programming is). Just because you understand basic equations doesn’t mean you understand what they mean in a specific field and knowing basic equations doesn’t mean you have a clue what happens when you throw several together. And just because you learned the quadratic equation or even the fundamental calculus equation doesn’t mean you understand Fourier yet.
1
u/BoBoBearDev 11h ago
Don't feel bad because a lot of those are homebrew garbage that you don't need to duplicate their tech debt. For example, MUI layout is atrocious homebrew quality trying to do gymnastics to replicate CSS Grid when thr browser can do it perfectly natively.
1
u/alexplivings 11h ago
Figure out where it starts and go from there. Generally programs have a start point, that is based on the language/framework.
In big projects there is usually a step where they setup a LOT of things, using API keys to connect to services, database connections, etc.
If you wanted to change something related to outside services like a database, third party API, etc. start at the main start point. If you wanted to start with something UI related, start finding out where that is and begin there. Sometimes the UI is a totally separate project. You need to start very small and figure out very basic things like Where is the database? Where is the UI?
Another thing to note, the UI might be a totally separate project. While the main code base is mainly dealing with data, database, authentication, etc.
Figure out which part of the code you are looking at.
1
u/JoeWhy2 9h ago
Sorry if this sounds harsh and I understand that there may be a language barrier but stating that you understand "recursive" suggests that you don't. It's not a singular named thing called "recursive". It's a process referred to as "recursion". It describes a process within a program that happens over time. Understanding what it is and how it works, on it's own, definitely does not qualify you to build complex programs.
1
u/Least-Scale7294 42m ago
Open source repos are built by teams over years, so the architecture is too complex for a single person to grasp immediatelso the architecture is too complex for a single person to grasp immediately. Focus on finding one small bug or documentation typo in an active project and fix it. That specific task teaches you how to navigate real codebases better than reading thousands of lines at once.
16
u/LoudAd1396 11h ago
It sounds like you're saying "I know a couple things. Why dont I know everything?" There are always more things you'll have to learn