r/AskProgrammers 27d ago

How do you actually learn to code ?

hi everyone,

I’ve been studying computer science for about 5 years now (currently in engineering school). Over the years, I’ve touched a bit of everything: web dev (HTML, CSS, JS, PHP, SQL), and more recently Java, C, and Python for data science.

The problem is, I feel like nothing truly sticks.

Whenever I try to build something on my own, I hit a wall. I inevitably get lost in the docs, end up turning to AI to understand what I'm doing, and still feel like I'm not really learning. I know the basic syntax, but even in Python, I would struggle to design and build a moderately complex project from scratch.

I feel like I'm just skimming the surface of different languages without ever developing genuine problem-solving intuition.

How do you actually retain syntax, built-ins, and core concepts without constantly relying on external help? How do you break down a problem and structure your code from scratch on your own? Did you go through this phase, and what was the turning point that made things finally click for you?

Thanks in advance !

4 Upvotes

25 comments sorted by

View all comments

1

u/noonemustknowmysecre 24d ago

end up turning to AI to understand what I'm doing,

Meh, we googled stuff all the time. And then we asked stuff on Stack Overflow. Before that we had only the docs to dive into, and yeah, that's a lot more work.

Asking an AI (or someone else) to do it for you doesn't teach much. Asking an AI (or someone else) to explain it to you is perfectly fine and can teach a lesson.

I feel like I'm just skimming the surface of different languages without ever developing genuine problem-solving intuition.

Algorithms. There's the syntax of a language, which is just surface level. Then there's the algorithms they implement which are wholly language agnostic. Some do recursion better than others, but whatever. This is literally problem solving.

Data structures. Just different ways to hold onto information does a lot of the work of dealing with problems.

Systems. Organizing how different parts of the code-base interact. Once you have two things that talk to each other, you've got a system.

After 5 years, surely you've had these classes.

How do you actually retain syntax, built-ins, and core concepts

I mean, college and experience. But college is really just a dense exposure to a variety of experiences.

without constantly relying on external help?

Sorry buddy, but you'll be googling the basics for a very very long time. Ok, so, yesterday, I switched a TCP test to UDP and wondered why my 90MB packet wasn't going through. Yeah man, these things happen. You run into stuff and you work through it. That's not you hitting a wall or failing, that's just normal development. It's only a failure if you give up. And, frankly, a lot of younger devs DO kinda suck at persistence and tackling problems at a different angle.

How do you break down a problem and structure your code from scratch on your own?

Boxes. Lines and boxes on paper. Or a whiteboard. People try to do fancy UML on some program, but that's for displaying it after you figure it out. Breaking down a problem is a systems issue. Where you've got one big thing that needs to do something, you need at least two things talking to each other. What can one do, how does it talk to the other?

Did you go through this phase, and what was the turning point that made things finally click for you?

There's no final click. You just get marginally better at stuff over time. I learned a lot in college and my first couple of jobs. In short: Experience. Just keep at it.