[HN Gopher] Teach Yourself Programming in Ten Years (1998)
       ___________________________________________________________________
        
       Teach Yourself Programming in Ten Years (1998)
        
       Author : smartmic
       Score  : 168 points
       Date   : 2025-07-26 21:24 UTC (1 days ago)
        
 (HTM) web link (norvig.com)
 (TXT) w3m dump (norvig.com)
        
       | gabrielsroka wrote:
       | 1998
       | 
       | https://hn.algolia.com/?query=Teach%20Yourself%20Programming...
        
       | coldcode wrote:
       | I've been doing it for 52 years (with a gap during the late 70s)
       | and still teaching myself new things.
        
         | nchmy wrote:
         | At what point would you say that you became "good" at
         | programming?
        
           | dotancohen wrote:
           | You never say that you become good at programming.
           | 
           | You let other people in the field say it. And that happens
           | when it becomes accountable. For some it happens early in
           | their career. For others, entire careers end and the words
           | have never been said.
        
             | nchmy wrote:
             | Humility and a desire to continually improve is, of course,
             | essential in everything in life. But false humility - eg
             | spending 52 years doing something and refusing to recognize
             | some degree of skill - is just as bad as the lack of it.
             | (I'm not saying the original commenter said this, but
             | rather the people who responded in this vein)
             | 
             | And I say this while thoroughly enjoying a quote by one of
             | the comedy greats, George Carlin, where he was quoted a
             | legendary cellist, Pablo Casals, who kept practicing daily
             | into his 90s, saying "I'm beginning to notice some
             | improvement".
             | 
             | Recognizing your skill while also recognizing (perhaps even
             | immense) potential for improvement are not mutually
             | exclusive.
        
           | dabbz wrote:
           | Anyone who claims they're good at programming is still
           | learning. We're all just, more comfortable with nuances but
           | still really bad at it. Programming rocks to do things
           | correctly is hard.
        
             | strken wrote:
             | I think it's fine to be "good at programming" given a
             | specific context. If your neighbour says "Hey, my daughter
             | likes computers and thinks she might want to program them
             | as a career, are you any good at that?" then sure,
             | whatever, you're good at programming and can send her some
             | links to get started. If your coworker asks if you're any
             | good with databases and you know he's learning SQL for the
             | first time, then sure, whatever, you're good with databases
             | and can teach him about CTEs.
             | 
             | I get that humility is a virtue, but at some point you have
             | to admit that you're capable of doing a piece of work.
        
               | nchmy wrote:
               | Yeah, my question was are you "good", not are you the
               | "greatest" programmer.
               | 
               | Humility is absolutely necessary in any skill development
               | (and in general), but false humility - such as has been
               | on display by various responses - is just as bad as the
               | lack of it.
        
           | MangoToupe wrote:
           | When it puts food on the table.
        
             | Arisaka1 wrote:
             | That's an awfully profit-scoped way to frame human
             | competence and assumes profit as the end goal. What about
             | hobbyists?
        
               | MangoToupe wrote:
               | My point is not to presume the competence of others
               | (which, frankly, I don't care about outside of like Knuth
               | and "are you making my life harder at work"), but to
               | point out we should establish our own view of whether
               | we're competent enough based on what our goals are.
               | People tell me I'm a good programmer; I don't really see
               | it. This used to bother me. It doesn't anymore because
               | I've found other things to enjoy in life.
        
             | OldfieldFund wrote:
             | You can put food with barely any knowledge, just automating
             | a few things. More true now with vibe coding, not sure in
             | 3-4 years.
        
               | MangoToupe wrote:
               | More of an "ai operation" skill than being a good
               | programmer, but yea that works
        
             | amelius wrote:
             | Does ramen 7 days/wk count as food on the table?
        
               | MangoToupe wrote:
               | Absolutely.
        
           | nurettin wrote:
           | If you've been finding elegant solutions to complex problems
           | for a while and you feel like everything kinda repeats
           | itself. (I'm not that good, still encountering completely new
           | problems)
        
           | einpoklum wrote:
           | You become good at learning what you need; and also become a
           | bit humble and avoid presuming you know best just because
           | you've learened some things.
        
           | sim7c00 wrote:
           | never though id be good at programming. doing it for 20+
           | years now, not fulltime.
           | 
           | still feel like that lil kid. other ppls program humble me
           | and teach me how little i know.
           | 
           | sure i understand more than i did when i started, but theres
           | various reasons you're never 'there', and to me, i wonder if
           | feeling you are good would even benefit you.
           | 
           | sure, you can still program C like in the 90s. Still write
           | python like its on v2, or html and CSS like its 1999, but in
           | reality to tap into the systems and their potential you need
           | to constantly keep up. and i think its pretty much impossible
           | to keep up with everything. there is so much, and more and
           | more every day...
           | 
           | im a bad programmer. my bugs sometimes compute stuff!
        
           | kmoser wrote:
           | How do you define "good" at programming? Better than you were
           | yesterday? Able to write code without looking up anything?
           | More capable than a newbie?
        
       | II2II wrote:
       | These books shouldn't be dismissed since they provide people with
       | a foundation for further learning. They also offer a friendly
       | introduction to programming, rather than imposing an intimidating
       | wall that will keep people away. It is also important to note
       | that these books break the learning into 24 one hour modules, or
       | something similar, so they can have reasonable coverage of a
       | programming language.
       | 
       | If these books have a failing, it has little to do with the
       | concept and everything to do with being poorly written.
        
         | SL61 wrote:
         | Yes, the biggest fault of those books was that the titles were
         | a cheap gimmick. The implication that you could blow through
         | the book in a day and know the language is kind of a lose-lose,
         | because it undersells the difficulty of the lessons to
         | newcomers and sounds patently ridiculous to professionals.
         | Realistically, someone who has no prior programming experience
         | would take more than an hour per lesson, and would probably
         | take a month or two to get through the book, like any other
         | first-time programming tutorial.
         | 
         | My first exposure to programming was Sam's Teach Yourself C++
         | In 24 Hours from a used bookstore in my early teens. I didn't
         | stick with it for more than a couple chapters but compiling a
         | program that printed "Hello world" was a magical experience.
        
           | reactordev wrote:
           | There was a time in the 90s when you actually could breeze
           | through a book and know the language. Not Perl, obviously ;)
           | 
           | I won't attest to the quality of your mental software
           | architecture, but you'll know the language...
           | 
           | It was around the time C++03 came that things no longer fit
           | in a single book and you need a bookshelf of books to know a
           | thing.
           | 
           | The web circa 2001 was easy enough to build entire sites from
           | scratch in a week with no frameworks. The web circa 2021 was
           | a complicated mess of frameworks on frameworks rediscovering
           | server side rendering (the OG method) again.
           | 
           | I'm a fan of the books that take you through a project start
           | to finish and not chunk it up into mini exercises.
        
           | mnahkies wrote:
           | Ha, I got that same book from the public library in my early
           | teens.
           | 
           | I never completed it at the time either, though it created a
           | foundation that enabled me to learn action script (Adobe
           | flash) with relative ease and ultimately go on to complete a
           | computer science degree despite pressure from my high school
           | teachers to go into mechanical engineering or similar.
           | 
           | On balance I got to pursue something that genuinely
           | interested me and happened to pay well and I'll always have a
           | fond memory of the Sam's book, as well as the free Ubuntu CDs
           | that got me onto Linux years before we got broadband
           | 
           | Edit: it wasn't teach yourself in 24 hours, it was the 21
           | days version (https://www.amazon.co.uk/Sams-Teach-
           | Yourself-21-Days/dp/0672...)
        
         | jason_oster wrote:
         | The essay is not critical of the contents of these books, but
         | rather of their titles. And I agree with that sentiment. The
         | titles are the clickbait of their time.
        
       | busymom0 wrote:
       | Discussion from 2007:
       | 
       | https://news.ycombinator.com/item?id=43243
        
       | neilv wrote:
       | > _In 2001, Norvig published a short article titled Teach
       | Yourself Programming in Ten Years,[20] arguing against the
       | fashionable introductory programming textbooks that purported to
       | teach programming in days or weeks. The article was widely shared
       | and discussed, and has attracted contributed translations to over
       | 20 languages.[20]_
       | 
       | Anyone who followed this article would've greatly threatened
       | their chances of being hired by Google, since they would've spent
       | their time on things _other than_ rehearsing for the interviews.
        
         | begueradj wrote:
         | No, the book is not about rehearsing you for interviews. In
         | contrary, the book emphasizes on the mastery of your tech which
         | books rehearsing you for interviews neither claim nor can do.
         | 
         | The whole idea of the book is to get deep insight into your
         | tech following the 10 000 hours rule which one might achieve
         | within 10 years of practice.
         | 
         | It was published against the mainstream idea of that time
         | advertised under the name "Teach Yourself Something In 24
         | Hours". This book is a call for hard work, mastery and is
         | against rushing when learning.
        
           | wiseowise wrote:
           | Op means that if they followed Norvig's advice they wouldn't
           | be hired by Google, because they'd be studying actual
           | programming instead of rehearsing Leetcode for interviews.
        
             | begueradj wrote:
             | You are right. Thank you.
             | 
             | On the other hand, mastery through 10 years of practice
             | means and leads to a good knowledge of data structures and
             | algorithms.
        
               | TheCowboy wrote:
               | I don't think it necessarily leads to a of mastery of
               | data structures and algorithms in the context of
               | leetcode/modern coding interviews. One can do a lot of
               | coding, and even be paid for it, for years and just not
               | even encounter a lot of this material. Though one will
               | have developed much of the same intuition that you
               | typically acquire in a data structures class, it doesn't
               | necessarily mean you're prepared to code mergesort on a
               | whiteboard.
        
             | Sesse__ wrote:
             | As someone who's been hired by Google twice, I'm very happy
             | that I spent 99% of my time actually programming. (I did a
             | day or two of Leetcode before the second time, just to make
             | sure I was appropriately calibrated. It didn't exist before
             | the first time.)
        
             | shric wrote:
             | I don't know what interviewing at Google is like now but I
             | interviewed for Google in 2008 (no offer) and 2012 (offer)
             | and the questions on both occasions were not of the nature
             | that leetcode could have helped with much.
        
           | neilv wrote:
           | You're right about the "Teach yourself X in Y days" books.
           | 
           | I should've given some additional context in my comment:
           | 
           | The author of this article was heading Google engineering
           | (back when Google was cool), but when the Google engineering
           | interviews seemed to have little or nothing to do with the
           | advice in this article.
        
         | zer0tonin wrote:
         | Getting hired by Google isn't the end-goal of learning
         | programming.
        
         | alt187 wrote:
         | It seems the irony has been mostly lost. Gave me a chuckle. :)
        
         | efavdb wrote:
         | Same joke, published in 1999: "learn greek in 25 years". Wonder
         | if this inspired Norvig.
         | 
         | https://www.amazon.com/Learn-Greek-Years-Brian-Church/dp/960...
        
       | tomhow wrote:
       | Previously:
       | 
       |  _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)
        
       | ryandv wrote:
       | Ah yes, but of course Norvig never had access to current
       | generation LLMs, which _do_ let you learn C++ in 24 hours! No
       | need to understand the memory hierarchy, the LLM will produce
       | perfectly performant code right out of the box.
       | 
       | With LLMs you can iterate through a hundred thousand software
       | development lifecycles in a month, vastly increasing your rate of
       | project experience gain.
       | 
       | This article is so obsolete, it's literally from the previous
       | century.
        
         | theBaus wrote:
         | Heh, no wonder you are getting downvoted. Did you actually
         | learn anything this way? This post is about learning and not
         | how fast you can generate code, generating with LLM's is not
         | learning. Then when you have not learnt anything but you
         | generate LLM code that looks great but you cannot debug it
         | because you never learnt programming and have to rely on the
         | LLM, you have problems. Much like the CEO who vibe coded on
         | replit and lost his production DB.
        
           | ryandv wrote:
           | My point is that most of that learning is not necessary! Does
           | a JavaScript bootcamp developer know what the fuck a memory
           | hierarchy is? malloc? No! Do they need to? Also no! This
           | ignorance stops absolutely nobody from identifying as a
           | Senior Staff Architect with 16 weeks of experience, closing
           | Jiras at 10x the velocity as these fools with crippling debt
           | and a computer science degree.
        
         | ethan_smith wrote:
         | LLMs are tools that can accelerate learning, but they don't
         | replace the deep understanding and pattern recognition that
         | comes from years of solving real problems and making mistakes.
        
         | ashton314 wrote:
         | You don't learn C++ in 24 hours. An LLM merely allows you to
         | produce code at a higher complexity much sooner. This is a
         | death sentence for a novice's understanding.
        
       | aizk wrote:
       | I'm a zoomer dev and I have a question. The article here linked
       | to google groups - https://groups.google.com/g/alt.fan.jwz
       | "Google Groups no longer supports new Usenet posts or
       | subscriptions. Historical content remains viewable." I've never
       | even heard of google groups, and it's crazy to read conversations
       | nearly as old as me.
       | 
       | What is/was UseNet? Was that the precursor to php bulletin boards
       | in way / the forums of the 90s - 2000s? Would the zoomer
       | equivalent be discord for my generation?
        
         | bionsystem wrote:
         | "Usenet" has a wikipedia page which describes the network quite
         | well. I used it in the late 2000s, not just for discussion as
         | some groups were also hosting warez. Pretty sure you can still
         | go there although it's unclear you'll get the post quality of
         | the 80s-90s (back when I read discussions it was already a lot
         | of trolling).
        
         | jcranmer wrote:
         | Probably the closest modern equivalent to Usenet is Reddit--
         | each newsgroup is roughly kind of like a subreddit, and, like
         | Reddit, threading is quite the norm in newsgroups. The main
         | difference is that Usenet wasn't centrally organized, messages
         | tended to be rather longer than Reddit posts, and it's possible
         | to cross-post on Usenet (post to multiple newsgroups with one
         | message) in a way that it isn't on Reddit.
         | 
         | (The pre-web antecedent of Discord would be IRC, latterly stuff
         | like AOL chat rooms.)
         | 
         | And if you think it's weird to read conversations nearly as old
         | as you, I'm a millennial and I've read Usenet conversations
         | older than I.
        
           | dotancohen wrote:
           | > And if you think it's weird to read conversations nearly as
           | old as you, I'm a millennial and I've read Usenet
           | conversations older than I.
           | 
           | I first read the Apollo transcripts when I was maybe 8 or 10
           | years old - this was deep into the 1980s but the Apollo
           | missions were still before my time. Reading such material at
           | 8 or 10 didn't feel unusual.
           | 
           | Now, rereading as I near 50, they are surreal. The
           | conversations, and the moon itself, have not changed one bit.
           | But myself and the world around me are unrecognisable to the
           | 10 year old me still reading over my shoulder.
        
         | TrueDuality wrote:
         | Usenet is still around and still fairly active, though by
         | volume its probably more commonly used as the originating
         | source for anything torrented nowadays. PHP bulletin boards is
         | a good approximation if you squint. If you imagine being on a
         | large number of topical mailing lists all filtered into their
         | own inboxes you wouldn't be far off.
        
         | dartharva wrote:
         | For programming-specific contexts I think StackOverflow might
         | be the better equivalent.
        
         | jibal wrote:
         | Are zoomers incapable of looking things up?
         | 
         | https://en.wikipedia.org/wiki/Usenet
        
           | rusk wrote:
           | Wikipedia isn't as prominent as it was in my day, and Google
           | isn't as good.
        
         | kragen wrote:
         | Usenet was a decentralized forum where anybody could
         | participate and nobody could be banned. Despite this, the
         | quality of discussion was usually very high. The user
         | interfaces supported rather comprehensive threading and
         | filtering capabilities, so you could block the people you
         | wished you could ban. It was sort of destroyed by spam (since
         | spammers couldn't be banned) but doesn't have much spam anymore
         | because it's too obscure for spammers to bother with.
         | 
         | There isn't a Zoomer equivalent, because the internet has been
         | locked down since then, and anyone who attempts to offer an
         | uncensored and uncensorable forum gets brigaded and maybe
         | swatted, then cut off from the banking system.
         | 
         | But Usenet still exists.
        
         | ChrisMarshallNY wrote:
         | A classic interaction from Usenet (I suspect the Reddit
         | comparison is apt), was someone coming upon a _really nasty_
         | fight between a couple of trol- er, _users_.
         | 
         | They expressed horror, and said something to the effect of "My
         | god! I came to discuss cats!".
         | 
         | Another user commented something along the lines of "You have
         | mistaken this forum for a place to exchange information. It is
         | not. It is a public toilet. Jump on in."
        
         | Hilift wrote:
         | Usenet groups pre-dated the web. There were "discussion" groups
         | like alt.startrek. However, by volume, uunet was extremely
         | popular for distributing pictures like for desktop wallpaper.
         | It was also 100% accessible by dialup modem, which would
         | connect on a schedule and download updates from your upstream
         | server. I connected two companies to the Internet between
         | 1991-1993, and uunet was one use, email was the other. Small-
         | ish ISP's around 1991-1994 usually accommodated uunet for
         | business accounts. Our ISP was notable due to if someone
         | complained about a post, they required the complaint to be made
         | in writing/fax, and you had to provide your name and address.
        
       | meta-level wrote:
       | https://devhumor.com/media/how-to-teach-yourself-c-in-21-day...
        
         | dotancohen wrote:
         | The comic might have been insightful had it stopped at the
         | third panel.
        
       | kocial wrote:
       | I have seen book teaching programming in 21 days and few
       | YouTubers in 1 hour of video.
        
       | intellectronica wrote:
       | I've been at it for over 30 years. Still learning.
       | 
       | You can learn fast today, and then continue tomorrow, and next
       | month, and next year, and if you remain curious, half a lifetime
       | later you are still learning.
        
       | megamix wrote:
       | The joy of seeing Times New Roman, HTML and CSS.
       | 
       | I'll finish the article in 24 hrs - 10 years approx.
        
       | jaimebuelta wrote:
       | Very confusing to read the article labelled as 1998 and have
       | references for newer stuff (e.g. Ratatouile). The biggest one for
       | me is to recommend a bunch of 98-propiate languages (C++) and
       | then recommend Go! I guess that the article has been slightly
       | updated, but it felt weird. In another language I checked the
       | references are older.
        
         | jason_oster wrote:
         | The copyright notice in the footer has the year range
         | 2001-2014. Presumably the timespan that the essay went through
         | various edits.
        
       | la_fayette wrote:
       | Does anyone know how Norvig thinks about the use of LLMs for
       | programming?
        
         | kevindamm wrote:
         | I was curious about this too, so I went looking. I found this
         | video from about a year ago. He seems cautiously optimistic.
         | 
         | The second half is a Q&A and he directly addresses this: in the
         | presence of errors he finds more faults in the way the prompt
         | was worded than in how the LLM answers, and figures that LLMs
         | are better than the alternative approaches to programming if
         | used well.
         | 
         | https://youtube.com/watch?v=ia6aJIplmtc
        
       | WillAdams wrote:
       | Are there mechanisms which make learning programming
       | significantly easier which don't have marked limitations? (e.g.,
       | the limitations of BASIC (esp. early imprlementations) vs. C)
       | 
       | I find it striking that this article references
       | 
       | Brooks, Fred, No Silver Bullets, IEEE Computer, vol. 20, no. 4,
       | 1987, p. 10-19.
       | 
       | but doesn't cite one of the more notable responses:
       | 
       | https://drdobbs.com/there-is-a-silver-bullet/184407534/
       | 
       | where that language (Objective C) coupled with the NeXT
       | libraries/objects made possible Steve Jobs' "5-minute Word
       | Processor Demo"
       | 
       | Do Swift (and SwiftUI) change this calculus?
        
         | kmoser wrote:
         | It seems you're conflating "easy to write complex software"
         | with "easy to learn how to program." Just because you're using
         | a language/environment that offers more powerful, high-level
         | features doesn't mean you're learning more. If anything, being
         | forced to learn the low-level stuff probably gives you a deeper
         | understanding of programming, even if your output is lower in
         | the beginning.
        
       ___________________________________________________________________
       (page generated 2025-07-27 23:01 UTC)