How I learned everything I know about programming

46 pointsposted 7 hours ago
by speckx

30 Comments

ChrisMarshallNY

4 hours ago

Love the post. I think it comes from a good place.

> And I got to where I am thanks to people like me who wrote down and shared their knowledge openly and freely. I’ve benefited from open source. From books people have published online for free and courses they’ve given away. I’ve learned a great deal from people I chat with online, over forums, and at meetups where people give presentations to share their knowledge and work.

I can relate to that.

However, though I don't need an LLM, I have found them to be extremely useful in learning new stuff. I probably used an LLM to learn a dozen different new things, just today.

tjr

3 hours ago

It has been generally agreed for years that different people learn best differently. I have found that I tend to learn very well reading books and taking notes (and, as applicable, doing projects) and not so great watching videos. I'd probably even prefer audio lectures rather than video content, if maximum learning was my goal.

I find LLM learning to be mixed. I can ask questions, seek clarification, and that helps me get to a specific answer quickly, or helps me to get past misconceptions quickly. But it seems to fall somewhere in between reading books and watching videos for me -- I still feel like I learn best through books, even if it takes longer. Specifically, it feels like actually being a little bit harder forces me to think deeper and/or retain more.

I do not wish for LLM learning to go away, but nor do I wish for it to replace books. I hope that many people continue to write in traditional formats.

james_marks

3 hours ago

LLMs can be incredible at cutting through misconceptions. I remember learning to code 20 years ago, and getting stuck building a mental model of a Hash. I remember being able to recite the definition verbatim, but I just couldn't put it into use until it eventually clicked after what felt like an eternity.

I think about how an LLM could have dramatically shorted that, like it did recently to teach me Bayes' theorem.

saghm

2 hours ago

This seems like an example of what the parent comment was saying, which is that everyone learns best in different ways. Learning via book works better for them, but maybe not as well you you. It still isn't clear to me that an LLM would be more effective for everyone in the circumstance you described though, and I think that's the point they were trying to make; new learning techniques are mostly helpful because of the variance in how people learn, and in practice the best choice is likely going to depend at least as much on the individual as the circumstance and topic.

tjr

2 hours ago

Yes! Hooray for whatever helps you learn best!

kenjackson

4 hours ago

I agree. We still need people like the author to write things down. But I do think that LLMs will be one of the important methods of consumption for this material. Many/most people will still just directly read what the author writes, but a large percentage of people will get it via an LLM -- and I think that's a good thing.

askonomm

2 hours ago

I wonder how long will people write things when LLM's will just steal the content and leave no attribution? I doubt for very long.

epolanski

3 hours ago

> I have never met a group of people so passionate about sharing what they know with anyone than programmers.

There's a group who's even more eager to do that, one that's been running the largest open source project on the planet from millenia: mathematicians.

keithnz

an hour ago

Article doesn't really match the title, it's more of pulpit sermon on what the author thinks newcomers need to know about learning.

But, it feels a bit random, like a mix of feel-good motivational things they want to blurt out, but very short on concrete advice. Not sure it's really useful for anyone.

uriegas

4 hours ago

I think LLMs are helpful for understanding code. I used to spend like an hour trying to find where something very specific was made, and now I can just ask an LLM and it finds it right a way and is able to explain how the code works. This is probably the thing that has saved me most of the time.

What is your take on LLMs for programming?

epolanski

3 hours ago

I've never learned so much and so fast as I do with LLMs.

1. Most of the learning before, especially technical related involved a lot of google searching for the information I needed. LLM here removes a lot of the friction and boring parts of the process.

2. At work I can leverage LLMs for some very mundane tasks, again, mostly related to information gathering. There was a time when I needed days to connect the dots in some very convoluted code written by your average developer. Even more to figure out the purpose of choices and how they connected to the business domain, often in situations where the relevant stakeholders and people with the know-how left the company. This kind of work, made of tons and tons of paper pages with my notes would sincerely exhaust me. And this kind of work has been the bulk of my career because coding was never the hard part. On this LLMs are increasingly better. This leaves me a lot of energy more to actually investigate the overall architectural decisions and technical details both of my projects and their dependencies (which have never been as easy to traverse).

3. Since I am less mentally exhausted (the only way to get mentally exhausted with LLMs is if you're "half vibecoding" so producing tons and tons of code which you are actually thoroughly reviewing) I have way more space to dedicate to learning. I do it both by practicing manual coding stuff for fun or editing the things I don't like in the work codebases I see, or by doing more katas on codewars or leetcode exercises. Also, I end up just in general asking more questions I would've not made just out of sheer curiosity and often learn a lot of things that suddenly "click". Another thing I do is way more spaced repetition exercises on topics I care (such as the many odd things you can learn with a language like C or metaprogramming coolness you encounter in Ruby and similar) on Remnote.

Honestly I don't get how you can learn less by having such a tool that removes so much friction.

But of course, if every AI naysayer conflates every LLM usage with vibecoding and with delegating the thinking and reasoning to LLM messages then sure, they are a disaster used like that. But that's on the user, not the tool.

uriegas

4 hours ago

I agree with the point that learning requires work. In general, everything worth doing requires work. This is one of the things I often have to remind myself, otherwise I spend the whole day 'learning' and I just read a bunch of stuff online that I then forget, instead of trying something out which I actually will learn and understand.

fcholf

4 hours ago

I agree, though, you can still work toward understanding using an LLM (and take it from a skeptical) by, e.g., using them as challengers to your ideas.

That said, I think it requires a lot of self discipline and should be complemented with other methods and sources of information to be useful. As a teacher, I really try to prevent my undergraduate students from taking the easy road of using LLMs to solve every easyish problem I give them to *learn*. Sure, they did the homework but most of them did not learn anything while doing it and they finish their first year without having learnt anything actionable regarding computer science (observe that I use a different approach with students from other areas, though I still think it is good to spend a few days without relying on LLMs).

I often use a sport analogy to land my point which works with them, so let me share it here. If you want to learn how to run a marathon and drive 42km every day, then you are certainly (hopefully ?) a better driver but nowhere near to running a marathon (fortunately, no one has yet challenged me with the fact that running a marathon is way less useful to get a job than driving).

(edit: grammar, spelling)

OhMeadhbh

an hour ago

Yeah. I usually don't go in for things like this, but this one is quite nice. well done, mr. agentultra.

agentultra

6 minutes ago

Thank you. I was pretty sure nobody read my blog. But I'm glad that you enjoyed it!

kayo_20211030

5 hours ago

The section headed "A World Without People" is the most interesting. We all need someone to tell us we're wrong-headed every now and again. Simply because we often are, and that's perfectly fine.

self_awareness

5 hours ago

> I don’t think you need LLMs to learn programming.

Are we already in this state? That people can't do programming without LLMs?

LLMs are not old at all. It's literally the newest thing, and we already need to convince ourselves that we can live without it?

wrs

5 hours ago

"I don’t think you need LLMs to learn programming."

What the... Are we already to the point where you have to say this to people?

ryan_n

41 minutes ago

With how much big tech/big corps in general are shoving AI down everyones throats its not surprising people feel the need to say stuff like this. I do find them helpful for learning, but obviously it s not required.

GrowingSideways

4 hours ago

Yes. I work with teenagers and young adults teaching them how to program, both directly and as a support skill. These are bright young people who can work through problems with enough time—but LLMs allow them through these problems in a minute or two.

I've taken, particularly in people learning programming as a support skill, to teaching them how to verify the solution rather than asking them to deal with hours of frustration while their peers don't bother. A tool is a tool, as sad as it makes me to say looking back on teaching myself how to code 20 years ago.

spogbiper

5 hours ago

I'd like to think that we all learned everything we know about programming

IncreasePosts

5 hours ago

The title makes more sense when you click on the link and read the actual first word in the title.

8bitsrule

5 hours ago

Leading word 'How' is automatically removed by HN. In this case that was unhelpful ... like many thoughtless algorithmic actions.

macintux

5 hours ago

"How" I learned everything...

fleahunter

5 hours ago

The hidden assumption here is that "learning programming" means replicating the author’s path: deep curiosity, lots of time, comfort asking humans, decent reading stamina. For people who already have those traits, yeah, you absolutely don’t need LLMs. But that’s a bit like a strong reader in 1995 saying "you don’t need Google to learn anything, the library is enough" - technically true, but it misses what changes when friction drops.

What LLMs do is collapse the activation energy. They don’t replace the hard work, they make it more likely you’ll start and keep going long enough for the hard work to kick in. The first 20 confusing hours are where most people bounce: you can’t even formulate a useful question for a human, you don’t know the right terms, and you feel dumb. A tool that will patiently respond to "uhh, why is this red squiggly under my thing" at 1am, 200 times in a row, is not a shortcut to mastery, it’s scaffolding to reach the point where genuine learning is even possible.

The "you won’t retain it if an LLM explains it" argument is about how people use the tool, not what the tool is. You also don’t retain it if you copy-paste Stack Overflow, or skim blog posts until something compiles. People have been doing that long before GPT. The deep understanding still comes from struggle, debugging, building mental models. An LLM can either be a summarization crutch or a Socratic tutor that keeps pushing you one step past where you are, depending on how you interact with it.

And "just talk to people" is good advice if you’re already inside the social graph of programmers, speak the language, and aren’t terrified of looking stupid. But the "nothing is sacred, everyone is eager to help" culture is unevenly distributed. For someone in the wrong geography, wrong time zone, wrong background, with no colleagues or meetups, LLMs are often the first non-judgmental contact with the field. Maybe after a few months of that, they’ll finally feel confident enough to show up in a Discord, or ask a maintainer a question.

There’s no royal road, agreed. But historically we’ve underestimated how much of the "road" was actually just gate friction: social anxiety, jargon, bad docs, hostile forums. LLMs don’t magically install kung-fu in your brain, but they do quietly remove a lot of that friction. For some people, that’s the difference between "never starts" and "actually learns the hard way."

wrs

5 hours ago

"LLM as Socratic tutor" isn't quite right, because the LLM can't be trusted. But I have had great results with "LLM as debating partner". Basically, I try to explain the thing I'm learning and have the LLM critique me. Then I critique the LLM, because it usually says something that doesn't quite make sense (or I ask it cite its source and it recants its statement). A few rounds of this is (I think) really helpful for cementing my understanding.

bitwize

4 hours ago

Nobody needed Google in 1995 because Google didn't exist until 1998.

rramadass

31 minutes ago

> The first 20 confusing hours are where most people bounce: you can’t even formulate a useful question for a human, you don’t know the right terms, and you feel dumb.

> argument is about how people use the tool, not what the tool is.

> The deep understanding still comes from struggle, debugging, building mental models. An LLM can either be a summarization crutch or a Socratic tutor that keeps pushing you one step past where you are, depending on how you interact with it.

> But historically we’ve underestimated how much of the "road" was actually just gate friction: social anxiety, jargon, bad docs, hostile forums.

Very well said.