[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)