One of may favorite things to do was to spend some time tinkering around to learn a new programming language. I collected quite a few and it was fun to learn new paradigms and how to organize programs. But now since AI… idk I just can’t do it, it seems just completely useless in the age of AI. Like getting better at the technical aspects of programming just doesn’t feel important anymore. I don’t think I’ll ever be able to forgive LLMs for that. It really took away something I enjoyed.
Now that you've made the Faustian bargain at this low low introductory price, how long until they start ratcheting up the price? How long will you be able to bear it?
You're still allowed to do things the old fashioned way you know. Given the rapid skill degradation that results from LLM-driven coding usage, I'd recommend it if you want to retain any skill at all.
When I decided to really learn how to program, after dabbling in very basic C++ from books and using BASIC this article and Eric S. Raymond’s ‘How to Become a Hacker’ [1] (CATB is struggling to load at all these days it seems) were two of the first articles I found. While HtBaH was probably more influential on me immediately, Teach Yourself was a great appetizer for the concept of pacing myself in my learning and in the choices I made.
With all the “AI” has made coding/learning to code a dead end and unnecessary crud being peddled currently I don’t know if people who want to actually learn to program are going to find resources that can be as motivating as this and other articles from `the before times`. It leaves me slightly bummed out, but in my less pessimistic moments I think motivated learners are going to see through the hype and find these types of resource anyway.
On a side note, the Norvig’s articles about implementing a Scheme in Python were my first foray into designing and implementing programming languages, compilers, and interpreters which really shaped my interest all the way through to today.
I started before the guide was published. I am 40 years in on challenging myself and learning and improving and there remains so much more I have the opportunity to master.
From my experience, just to say the thing that many such articles never mentioned, because the author has the innate ability anyway:
Seek mental stability, or whatever mental state that can push you to programming for 10 years without completely burning you out. If you can’t even do some programming after a relatively easy work day, you are burnt out.
It’s okay to recognise when you’ve had enough. If your workday involves programming, ours pretty normal (for me at least) to not want to do more programming at home. You gotta let yourself miss it a bit if you want to want it.
I don't personally know anyone who writes code any more (for work). Is this not the case for you?
The distinction I see now is between teams that read PRs and teams that don't. I still think the former is a good approach... for now, but I don't expect this will necessarily be the case in a year (or less).
This article was such an inspiration to me when I was younger, and the advice, for that time, was very correct. However seeing it today really drives home how big the gap is going to be in really understanding code in just a few more years.
Programming without writing, to me, feels like doing mathematics by reading proofs but not doing proofs. Which quite frankly works very poorly for me. I write code if, for nothing else, so that I can spot bad code/proofs with an easier time, rather than dealing with an equation that blew up in prod.
1) By the time I’ve determined, and expressed to my satisfaction, exactly what I want, I’ve already done the hard work of coding that thing. The rest is fairly mechanical by comparison.
2) It’s a universal truth (which I know someone’s gonna argue with :D ) that reading and working with other peoples’ code is much less fun than reading and working with your own. This applies even if the other people are robots.
3) When checking and troubleshooting code, the bulk of the time is spent understanding it in the first place. If you wrote the code yourself this already implicitly happened and is ‘free’.
Put those four[1] things together and at least for me personally, AI-assisted coding isn’t a better experience than just doing it myself. It’s still great for bootstrapping yourself into a new unfamiliar language/environment though.
"I love building software, I just don't like the data entry parts", to paraphrase a guy I worked with once who explained how he loved writing design docs for junior engineers to implement.
These days, I'm not sure anymore. I learned through self-study, reading documents. I don't have a degree, and I don't have the exceptional talent to be involved in language standardization.
Everyone around me codes with AI, and most of them produce better results than I do. That's natural. I'm good at some things, but I'm bad at many others. I still hand-code occasionally, but now the main is AI coding, and hand-coding is the sub.
This document probably held true until about 3 or 4 years ago. But since last year, I'm not sure. I have nothing to say other than 'Just do it.'
People say vibe coding has security issues, but honestly, I have security issues in my own code too, from TTL and all that. In the end, with vibe coding, knowing the right security keywords and understanding the problems seems to come from experience anyway.
Reading 'So You Want to be a Programmer,' I feel like conversations with other programmers and the whole process of being a programmer feel distant to me now. Since AI came out, I barely talk about programming with other programmers.
It's not just me—most Korean programmers around me are the same. The reason is simple: those kinds of programming discussions make us realize how limited our knowledge is, since our understanding is often filtered through English sources and then translated into Korean. So we just end up not talking to each other about it.
When I saw this document about 4 or 5 years ago, it felt like it was absolutely true. The environment has changed drastically, and reading this again now. Back then I treated it like a Bible, but not anymore. I realize that if you don't have a degree or aren't a native English speaker, there was always a limit to how much you could participate. These days, everything is changing so fast. As AI breaks down the English barrier, the quality of materials I can read has gone up, and I'm starting to think that even programming mindsets might change depending on language background.
But if I were to advise someone starting programming from scratch today, I'd probably just tell them to learn through vibe coding and get familiar with programming keywords and black-box coding.
Vibe coding has become the baseline these days. The domains individuals need to handle have become so broad that it's gotten more complex.
In the past, being good at just one domain was enough to make a living. But these days, everyone wants to become a full-stack developer—something that used to be rare. Even then, full-stack developers had a clear front-end or back-end bias, with some areas being shallow and others deep. Now, people are expected to be good at everything.
If you want to become a true expert, I'd say keep hand-coding and focus on a single domain. But if not, I'd say just go all in on vibe coding. Use it a lot, and build your own worldview through it
The feeling of hand-coding and vibe coding is so different that I can't help but tell people to practice both. They complement each other, but they don't really feel like they're connected or intertwined. They rely on different kinds of intuition.
Still, I think I'll keep hand-coding. Not because it's more productive, but purely because I enjoy it as a hobby. AI writes better code than I do, but hand-coding is still enjoyable enough as a hobby
Now that you've made the Faustian bargain at this low low introductory price, how long until they start ratcheting up the price? How long will you be able to bear it?
You're still allowed to do things the old fashioned way you know. Given the rapid skill degradation that results from LLM-driven coding usage, I'd recommend it if you want to retain any skill at all.
With all the “AI” has made coding/learning to code a dead end and unnecessary crud being peddled currently I don’t know if people who want to actually learn to program are going to find resources that can be as motivating as this and other articles from `the before times`. It leaves me slightly bummed out, but in my less pessimistic moments I think motivated learners are going to see through the hype and find these types of resource anyway.
On a side note, the Norvig’s articles about implementing a Scheme in Python were my first foray into designing and implementing programming languages, compilers, and interpreters which really shaped my interest all the way through to today.
1) http://www.catb.org/~esr/faqs/hacker-howto.html
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=44697007 - July 2025 (102 comments)
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=39001755 - Jan 2024 (302 comments)
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=33287618 - Oct 2022 (112 comments)
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=27411276 - June 2021 (115 comments)
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=20543495 - July 2019 (87 comments)
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=16574248 - March 2018 (51 comments)
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=9395284 - April 2015 (61 comments)
Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=5519158 - April 2013 (86 comments)
Teach Yourself Programming in Ten Years by Peter Norvig (2001) - https://news.ycombinator.com/item?id=3439772 - Jan 2012 (29 comments)
Teach Yourself Programming in Ten Years - https://news.ycombinator.com/item?id=191235 - May 2008 (19 comments)
Norvig: Teach Yourself Programming in Ten Years - https://news.ycombinator.com/item?id=43243 - Aug 2007 (7 comments)
Not sure if the savings add up enough to offset the investment in learning to program.
Seek mental stability, or whatever mental state that can push you to programming for 10 years without completely burning you out. If you can’t even do some programming after a relatively easy work day, you are burnt out.
BTW ^ is my state nowadays.
The distinction I see now is between teams that read PRs and teams that don't. I still think the former is a good approach... for now, but I don't expect this will necessarily be the case in a year (or less).
This article was such an inspiration to me when I was younger, and the advice, for that time, was very correct. However seeing it today really drives home how big the gap is going to be in really understanding code in just a few more years.
I hear this from time to time. But I still write code at my job. I'm not a software engineer and I don't work for a software engineering firm.
There are HS interns at my company who admire me because I lived through a time without AI and I actually had to learn that stuff. I’m not kidding.
1) By the time I’ve determined, and expressed to my satisfaction, exactly what I want, I’ve already done the hard work of coding that thing. The rest is fairly mechanical by comparison.
2) It’s a universal truth (which I know someone’s gonna argue with :D ) that reading and working with other peoples’ code is much less fun than reading and working with your own. This applies even if the other people are robots.
3) When checking and troubleshooting code, the bulk of the time is spent understanding it in the first place. If you wrote the code yourself this already implicitly happened and is ‘free’.
Put those four[1] things together and at least for me personally, AI-assisted coding isn’t a better experience than just doing it myself. It’s still great for bootstrapping yourself into a new unfamiliar language/environment though.
[1] Yeah it’s an off-by-one joke. ;)
Everyone around me codes with AI, and most of them produce better results than I do. That's natural. I'm good at some things, but I'm bad at many others. I still hand-code occasionally, but now the main is AI coding, and hand-coding is the sub.
This document probably held true until about 3 or 4 years ago. But since last year, I'm not sure. I have nothing to say other than 'Just do it.'
People say vibe coding has security issues, but honestly, I have security issues in my own code too, from TTL and all that. In the end, with vibe coding, knowing the right security keywords and understanding the problems seems to come from experience anyway.
Reading 'So You Want to be a Programmer,' I feel like conversations with other programmers and the whole process of being a programmer feel distant to me now. Since AI came out, I barely talk about programming with other programmers.
It's not just me—most Korean programmers around me are the same. The reason is simple: those kinds of programming discussions make us realize how limited our knowledge is, since our understanding is often filtered through English sources and then translated into Korean. So we just end up not talking to each other about it.
When I saw this document about 4 or 5 years ago, it felt like it was absolutely true. The environment has changed drastically, and reading this again now. Back then I treated it like a Bible, but not anymore. I realize that if you don't have a degree or aren't a native English speaker, there was always a limit to how much you could participate. These days, everything is changing so fast. As AI breaks down the English barrier, the quality of materials I can read has gone up, and I'm starting to think that even programming mindsets might change depending on language background.
But if I were to advise someone starting programming from scratch today, I'd probably just tell them to learn through vibe coding and get familiar with programming keywords and black-box coding.
Vibe coding has become the baseline these days. The domains individuals need to handle have become so broad that it's gotten more complex.
In the past, being good at just one domain was enough to make a living. But these days, everyone wants to become a full-stack developer—something that used to be rare. Even then, full-stack developers had a clear front-end or back-end bias, with some areas being shallow and others deep. Now, people are expected to be good at everything.
If you want to become a true expert, I'd say keep hand-coding and focus on a single domain. But if not, I'd say just go all in on vibe coding. Use it a lot, and build your own worldview through it
The feeling of hand-coding and vibe coding is so different that I can't help but tell people to practice both. They complement each other, but they don't really feel like they're connected or intertwined. They rely on different kinds of intuition.
Still, I think I'll keep hand-coding. Not because it's more productive, but purely because I enjoy it as a hobby. AI writes better code than I do, but hand-coding is still enjoyable enough as a hobby