r/AskProgramming • • 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...

0 Upvotes

23 comments sorted by

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

7

u/Distdistdist 11h ago

I would even be more drastic. It sounds more like:

"I once made a paper airplane when I was a kid, and now I look inside jet engine and I don't get it"

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

u/smichaele 8h ago

You can say that again!

1

u/sexy-geek 3h ago

The problem is that first, you need to understand recursive programming...

5

u/DirtAndGrass 11h ago

99.99% of programming has nothing to do with recursion 

2

u/Lunix420 11h ago

Functional programming wants a word with you

-2

u/YouAreMyFire00 11h ago

99.99% of programming has nothing to do with recursion 

-1

u/MonkeyboyGWW 11h ago

99.99% of pro…. Ah fk it. Claud help, I cba!

2

u/mxldevs 11h ago

Because those projects are 100x larger than yours and you need to figure out how it's put together in the first place

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/mc_pm 11h ago

You're comparing an apple to a grocery store.

How much time do you spend actually programming, fingers on the keyboard?

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/msabeln 11h ago

It takes time and effort.

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.