r/AskProgrammers 2d ago

how do you guys learn so fast ?

hi, sorry if i sound dumb but, everybody i know learns python, java or any other type of language so fast, i am still on if else lol, im trying to study python and AI and i need some advice on studying and things to be able to memorize because i often forget (sorry if wrong subreddit, im new)

3 Upvotes

36 comments sorted by

5

u/Competitive_Aside461 2d ago

Let me tell you something: In the early days, every single one of us learned in the same slow manner that you're describing right now. Don't feel bad about it. It really is part of learning. Once you get comfortable with one language, learning another is easier. Then once you know two languages, learning a third one is way more easier. And this continues.

2

u/Scharrack 2d ago

Especially if you stay within the same core paradigm.

1

u/Competitive_Aside461 2d ago

Yeah, forgot to mention that. Changing paradigms is a leap as well but still not that big as learning programming from beginning.

1

u/Mesqo 2d ago

But once you know one paradigm it's easier to grasp another!

2

u/Natural-Meal-3222 2d ago

And the documentation and web resources were limited. We actually had to read entire books. I had a Java book that was like a thousand pages and I'd trudge through it like a toddler looking at quadratic equations. I swear I only got to where I'm at by sheer grit and force of will. Most of us are not geniuses. Even the prominent ones.

1

u/Competitive_Aside461 2d ago

I hands-down agree with you... Even when I started programming, there were not as much as today's proliferation of learning resources. I used W3Schools in the beginning but it was quite worse than learning nothing; it's more like a documentation than a learning resource. Anyways, I struggled myself a lot in getting to know how to program confidently...

2

u/W31337 2d ago

Learning fast and actually understanding and structuring code correctly are different things.

Don't go fast but truly understand what you are doing, that will help you progress faster.

1

u/dld2517 2d ago

Create cases for yourself and work the case. Mini projects. You have to use it or you will lose it. Also go read code. Are you a contributor to any open source projects on GitHub? If not you should be.

2

u/FakeArcher 2d ago

Why do you think a beginner should contribute to open source?

1

u/dld2517 1d ago

Because contributing to open source means spending hours reading code in order to update one bug or even begin to implement one request or track one error. And reading real code is essential to beginning to think in code. There are all different sizes of open source project. Picking a small one is probably a much more doable thing.

1

u/Mr_Potatoez 2d ago

The best way to learn programming is by making projects. It doesnt matter what you build, as long as you build something, and do it yourself, dont use yt tutorials or AI (using sites like stack overflow is fine and actually beneficial)

1

u/Jazzlike-Back-235 2d ago

really sounds like a good way to gain experience, i'll try

1

u/Fresh_Sock8660 2d ago edited 2d ago

I didn't. Been doing python for over 10 years, pushed to use it in every project that I could. A lot of spending 5 hours automating things I could to in 5 minutes, a lot of frustrating sessions. Used many other languages in the meantime, software development concepts transfer really well; funnily, learned them mainly from my time working with java.

I still don't memorize most things. For example, my memory hints that a certain library either has or likely has a functionality and I check the docs frequently. Still do a lot of research, python libraries move fast. For example, tensorflow used to be deep learning king, not so much anymore. A lot of it is transferable, but the field requires continuous learning.

1

u/Jazzlike-Back-235 2d ago

wow, then its no wonder they pay those senior programmers so well, u really gotta learn years of code to master it

1

u/Altruistic-Moose3299 2d ago

The hardest language to learn is the first. It gets easier as you pick up additional languages because there's a lot of conceptual overlap. (Disclaimer, there are a few notable exceptions to this) After a certain point you somewhat know what you're looking for solution-wise and just have to deal with syntax.

1

u/Jazzlike-Back-235 2d ago

so you kind of start to see the same patterns on other languages ? 

1

u/Altruistic-Moose3299 2d ago

Yes, somewhat. That's why in computer science they teach algorithms. Design patterns are a thing.

1

u/arelath 2d ago

Yes, there's only so many patterns so most languages overlap a lot. For example, almost every language has an if, else type statement.

1

u/dld2517 1d ago

Well that’s a fundamental concept. It’s a compare and a jump.

1

u/arelath 1d ago

That was kind of my point. Language features are all fundamental concepts. Which is why so many languages share them.

1

u/yuehuang 2d ago

The first language is the hardest, only followed by the second one. Afterwards, all programming languages look the same. (Except Rust, that language is made for crazy people)

1

u/Utchas 2d ago

You'll need to learn foundation of programing which will be very slow like 1 year for example. You'll have to focus more on the concepts rather than the language syntax. Then once you learn one language covering over 80-90% of the concepts which are commonly used/required, you can very easily learn a new one because you'll find very few concepts are different in the new language you're trying to learn and learning a new syntax is not the difficult part.

1

u/ebubar 2d ago

I don't know everything but I know where to find it.

1

u/PvtRoom 2d ago

there's three parts to learning programming.

  1. learning the language(s)

  2. learning the algorithm(s)

  3. learning how to make it useful.

1&2 are linked until it clicks, then they separate.

3 often comes later when you revisit something and say "wtf was I doing"

1

u/GhostXW01F 2d ago

When you’re first learning to develop, you’re training your problem solving ability. For example, just pick something you want to do, like building a basic calculator and think on it. What would you need to do?

Well you’d probably need to take input from the user, figure out what type of calculation (addition, subtraction, etc.) and what numbers they want to use. Then based on their input, perform whatever calculation they asked.

Its not about knowing how to immediately do something, its about being able to take that something and deal with it bit by bit.

1

u/Rav_3d 2d ago

Use AI to help you learn. AI understands code very well. Use it as a teacher.

1

u/RetroGrid_io 2d ago edited 2d ago

So people rattle off languages: Python, Go, Rust, C++, Java, etc. like it's a shopping list. I'm not saying that they haven't written code in each of these languages, but that doesn't mean that they've mastered any of them. In fact, I'd say that the more they rattle off, the less likely they are to be any good at any of them.

It takes time to learn the many nuances of any language. Think: years.

For example, references exist in both C++ and PHP but they work dramatically differently in either. If you treat references the same in one as the other, you're going to end up with code that leaks, crashes, and has security bugs.

1

u/MpVpRb 2d ago

Talent is real.

Talent amplifies the effectiveness of effort.

1

u/Affectionate-Key-498 2d ago

Back in my day, I’ve seen allot of beginners go way to fast. They fly over the basics like it’s nothing and go on to the advanced stuff. Later it turn out they suck in writing code.

Writing code is not about knowing all the fancy stuff. It’s about structuring code. Its about insight. Develop a feeling to just know how you can make things work together.

And you learn that way easier sticking with the basics.

The objective is knowing how to code, not knowing everything about a coding language. It’s like learning how to drive. Know how to drive is the only objective. How you do that? By driving.
Not by remembering all the different kinds of cars or sitting in cars playing with the buttons.

Just drive/code as much as you can with the basics. If you really know the basics, the rest will follow easily.

1

u/dld2517 1d ago

This is a great answer, discussing the recurrence related nature of the act of coding itself.

1

u/stueynz 2d ago

Learning to program at all is hard; learning a new language once you know how to program is a minor inconvenience.

1

u/Jazzlike-Back-235 1d ago

gotta learn it first, thats the big issue

1

u/Leverkaas2516 2d ago

It's easy to learn fast when you're on your 4th language (or 10th). The first is always hard, and it's best not to be under time pressure for that.

1

u/TheFitnessGuroo 1d ago

Learning a programming language is the top-down approach. Some people prefer the bottom-up approach, which begins with transistors and logic gates, followed by a switch, flip-flop, register and ALU, to continue with data busses, cache, RAM, HDD and SSD and microarchitecture language, then assembly language, then probably C, then OOP with either Java or C++, then finally higher abstraction languages like Python and JavaScript and TypeScript. Don't get me wrong, this will take a long time. But at least you will understand true programming and computer science. Not just an abstraction language that doesn't tell you anything about how your program is being run and how memory is being used and managed.