[HN Gopher] Teach Yourself Programming in Ten Years (1998) ___________________________________________________________________ Teach Yourself Programming in Ten Years (1998) Author : memorable Score : 129 points Date : 2022-10-21 13:09 UTC (9 hours ago) (HTM) web link (norvig.com) (TXT) w3m dump (norvig.com) | dbttdft wrote: | I'd agree with that it takes 10 years to become competent in all | the required fundamentals for programming like math, algorithms, | protocols, security, versioning, databases / persistence, | scheduling, memory management, some basic electronics. Not | gimmicks like C++, those take infinite years. | echelon wrote: | In the right environment (not just university), I'm pretty sure | those can be learned in as little as four years. That is, I | think you could take someone from zero to somewhere above | junior IC in that time. | | In the first couple of years they'd need a lot of independent | projects with mentorship to start, then get plugged into an | actual team with good peers and pairing. | | They only need the basics of data structures and algorithms. | They might see dynamic programming and AVL trees, but that | needs less focus than the practicals of HTTP, MySQL, image | processing, version control, hardware, etc. | comfypotato wrote: | Much like his AI textbook, this post was well written. | | I'm curious if Rust would fall under any of the categories for | languages to learn. I already know Lisp, so that knocks out two | categories at once. Perhaps Rust fits his parallelism category | nicely. | belmont_sup wrote: | If you truly believe that this is a 10-yr+ journey, then | learning Rust just for fun and exploration seems worth it. | | Any language that forces me into a new domain, whether by the | goal it wants to solve, its paradigms, or environment, seems | highly worth it. | | P.s. try OCaml | acedTrex wrote: | Seconded on OCaml, it will broaden your horizons in useful | ways | wrs wrote: | I took a week of vacation to work through _Programming Rust_ | uninterrupted. I have no immediate professional use for it, | but it's pretty clearly going to be important, and it has at | least one new (to me) paradigm, so I wanted to fill that gap | in knowledge. But I'm under no illusion that I "know Rust" | after doing that! I just inched up to a more comfortable | place on the learning curve. | | BTW, I know there are plenty of people who wouldn't consider | that a vacation, and that's fine, but they are different from | me. | brudgers wrote: | I don't think it applies to rust because "teach yourself | programming in ten years in Rust" is just too damn awkward. | Jtsummers wrote: | They're referring to this section of the article: | | > Learn at least a half dozen programming languages. Include | one language that emphasizes class abstractions (like Java or | C++), one that emphasizes functional abstraction (like Lisp | or ML or Haskell), one that supports syntactic abstraction | (like Lisp), one that supports declarative specifications | (like Prolog or C++ templates), and one that emphasizes | parallelism (like Clojure or Go). | | The question being what would Rust add to this list or where | would it fit here. | einpoklum wrote: | An interesting point about C++ in recent years (since 2011 | and perhaps earlier) is that it no longer emphasizes class | abstractions that much. These days the feel like just | another tool in your kit. Also, the declarative specs | support has expanded with C++20 concepts. | CSMastermind wrote: | This is one of the articles I recommend to new engineers along | with Greg Wilson's "What we actually know about software | engineering and why we believe it's true." | | https://youtu.be/I0Pt9Lf9JzQ | DonHopkins wrote: | FORTH ?KNOW HONK! ELSE 10 YEARS SELF FORTH | TEACH IN THEN | aatd86 wrote: | That's somehow the time it's been taking me and I had the basics | of coding. | | Coding can be learnt more or less fast. | | Programming takes much more time as it's a whole field of | knowledge to acquire so that one can produce great, maintanable | and effective code. So much so that it is still a field in | progress (hence new programming languages popping every other | year) | jvm___ wrote: | Learning how to assemble lego takes minutes. | | Designing and building a 500 piece Lego set would take you | years. You could create one quickly, but then refine it over | the years - or it could be beyond you and you need to build up | to it. | commandlinefan wrote: | It is kind of frustrating how pervasive the "programming can be | learned in an afternoon" mindset is, in spite of all the evidence | to the contrary. Pardon me for being insulted by the insinuation | that something that took me 40 years to become as proficient as I | am with it can be mastered by everybody else in a few months. | headhasthoughts wrote: | Why should you be offended that learning materials are | improving, toolchains are getting easier, and net access is | available to all now? | | It's like complaining that automatics exist. You can still | drive manual! You have that on people! But fundamentally it is | a simpler field than it was then, due to the gigabytes of | abstraction for every little thing you can do with a computer | now. | | That points toward an attribution error or a fundamental | insecurity. | P5fRxh5kUvp2th wrote: | This is not at all what the poster is saying. | Jtsummers wrote: | Programming can be learned in an afternoon, just not mastered. | wittycardio wrote: | No. Some syntax can be learned in an afternoon, that's it | Jtsummers wrote: | Eh, my experience suggests otherwise. I've taught Python to | high schoolers and adults in an afternoon. Were they doing | anything terribly interesting? Not really, but they were | making their own programs. They still had a _lot_ to learn, | mind you, but they did learn to program. | sedeki wrote: | Why are you insulted by such a claim if you know it's naive and | false? | jcranmer wrote: | > Pardon me for being insulted by the insinuation that | something that took me 40 years to become as proficient as I am | with it can be mastered by everybody else in a few months. | | I don't think anyone who claims that "programming can be | learned in an afternoon" understands that to mean "programming | can be _mastered_ in an afternoon ". Mastery comes, in large | part, from experience, and there is no shortcut to experience. | Ancapistani wrote: | I mean... chess can be learned in an afternoon, too. A few | minutes of memorizing the standard movements of each piece | followed by maybe a half hour of learning the exceptions | (castling, en passant, etc.) and you've "learned how to play | chess". A handful of games later and you start to get a feel | for the relative importance of the pieces. | | I wouldn't argue that anyone expects to be competitive with a | grandmaster at that point, though. | trap_goes_hot wrote: | There is always a programmer better than you, as with any | skill. In my practical view, programming is using a tool to | solve a problem, not a game. | dang wrote: | Related: | | _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) | oh_sigh wrote: | Clicking through the usernames on the oldest threads, basically | no one there then still posts on HN, most seemed to have | dropped off around 2014 or before. | | I wonder what they're up to? Just lurking and not posting? Gave | up on "the lifestyle"? Burnout? Forgot their password and | created a new account? | Eiriksmal wrote: | Definitely some are lurking out of sheer addictive habit. But | there's fewer reasons to leave comments because a) the | community grew and there's already someone who articulated | your point, so no sense in repeating it and b) the hivemind | has moved in a different direction and it's more challenging | to have reasonable discourse here without it feeling like | you're "debating" 14-year-olds on Reddit. | Goronmon wrote: | _...the hivemind has moved in a different direction..._ | | This is definitely a big one. | | The focus did use to be a lot more specific to startups | with all the good and the bad that came with it. Things | like a less negative view of "dark patterns" and more | marketing related topics were definitely a part of a | community back then. | | Questions like "Should I be tracking as much data about my | users as possible" would have been answered with "Yes, | absolutely, the more data the better." much more often than | you would ever see nowadays. | bugfix-66 wrote: | There is evidence that a large fraction of Hacker News | readers are early in their programming journey. Presumably | people migrate elsewhere as they mature? I don't know of | another forum like Hacker News, so where are they going? | | To understand the level of programming skill on Hacker | News, consider that less than 5% of Hacker News readers | succeed in adjusting a loop iteration variable to avoid | unsigned overflow (despite repeatedly attempting to do so): | | https://bugfix-66.com/8617f16fa68e021b656b1856f94afebf7a311 | 7... | | This is an empirical observation and not an attack (please | don't flag/downvote this comment). It tells us something | about the population of users on the forum, and where they | are on the developmental timeline as programmers. | | It seems like more senior programmers move on, maybe. | bee_rider wrote: | Well, it tells us about the Go programmers on the forum. | One possibility is that as Go has become more mainstream, | Go programmers have become less competent on average. | bugfix-66 wrote: | Go is very close to C. | | A C programmer who understands a for loop should be able | to fix this, despite the fact it's Go: // | We are generating n-1, n-2, ..., 1, 0 func | below(n uint64, to chan uint64) { for n--; n >= | 0; n-- { to <- n } | close(to) } | | Maybe I'm wrong in thinking this, maybe you're right: It | could be that Go programmers tend to be less experienced. | Gollapalli wrote: | Does your bugfix problem actually test said code? Or does | it just look for a specific change to be made, because | I'm reasonably certain I input multiple correct solutions | and they were all marked as having not solved the | problem. | bugfix-66 wrote: | Yes, the code you enter is compiled and run against a | suite of tests. Any change that fixes the function will | be accepted. | | Any change that doesn't compile (bad syntax) or fails the | tests is rejected. Code that produces deadlock or panic | or timeout is also rejected. | | If you give me an example of a rejected solution, I'll | show you why the solution wrong. | bloqs wrote: | I perpeturally wonder things like this. | cortesoft wrote: | I clicked on the older post, and then the first couple of | comments... and one of them has commented within the last few | months. | | Not sure what the exact turnover rate is, but it seems pretty | normal that there would be some turnover over 15 years. | [deleted] | rongopo wrote: | I could not care less: every time I reach 100 karma points I | feel I need a new account to project my renewed self... | pvg wrote: | this seems like way more work than the established best | practice of two joints at every ten thousand points. | neilv wrote: | One possible explanation is that people often just move on | between techie online communities after awhile. I've done it | several times. | | Or, a lot of HN activity seems to be by people in hustle | mode. Maybe a lot of them finally made their fortunes, and | are now spending their time with their kids, or windsurfing. | | Then there's wasting time while stuck in-office all day. Less | a problem with WFH, when you can go do dishes while you're | waiting for that build or someone to respond. And WFH means | less of a need to kill time at your desk before it's socially | acceptable to go home (or get a train/shuttle), even if you | put in a solid day and you're at a good stopping point before | a busy day tomorrow. | jspash wrote: | That's almost 10 years ago. Maybe they're all gainfully | employed with their hard-won knowledge in programming? Albeit | a tad prematurely... | marincounty wrote: | aamoscodes wrote: | A bit macabre but some non-zero number are dead. I've | frequently wondered if there will be a way to scrub/compile | my online activity (within reason) for my family and friends | to review after it's all said and done, otherwise I'll just | live in a database forever. | ant6n wrote: | It'll probably deleted. | | Then again, conversations are usually deleted the moment | they happen, in the sense that they don't get stored. | mixmastamyk wrote: | Roughly nothing has been deleted since 2005 or so, with | limited exceptions. | avg_dev wrote: | god, how i love this article. i understand the criticisms; i see | forbiddenvoid discussing that people want to get paid and be able | to live comfortably. -[i recall luu writing an essay about how to | get better at things quickly (im probably quite poorly and | incorrectly paraphrasing him here).]- (edit: shit, after a quick | search of danluu.com, i believe i may have fabricated that | entirely) i believe they are approaching the discussion at cross- | purposes. | | this is not about being comfortable paying your bills. this is | not saying not to learn quickly or that you should avoid | shortcuts. it's about mastery... it's about understanding the | craft, weighing the tradeoffs that come with each decision, and | repeating that process week-in and week-out for years... | decades... a lifetime. | | i _did_ learn to program from one of those "for dummies" books. | that was (checks calendar) 25 years ago. it didn't teach me | everything. i still don't fucking know everything!!! and that's | fine. i wake up eager to learn. i enjoy code reviews, and | learning from my peers. as norvig mentions: i enjoy being the | best programmer on the team, i enjoy being the worst programmer | on the team; hell, i enjoy being in-between. | | if this post is about anything, it is about the joy of learning, | and how deep and long that arc can be. it never ends. maybe when | i go senile. | swsieber wrote: | No, luu did write about how simple it is to get in the 95th | percentile: | | https://danluu.com/p95-skill/ | | https://news.ycombinator.com/item?id=22265197 | avg_dev wrote: | ah - i see. thank you! | hi wrote: | > "The important thing is that you choose and get started." | trap_goes_hot wrote: | Sorry but these sorts of articles come of as extremely elitist. | Why does it matter if someone is in a rush or not? Why does it | matter if someone thinks is/isn't fun or is/isn't passionate or | doesn't want to learn more languages? Why does it matter if | someone is satisfied with learning just 5% of the language? I | have total respect for anyone spending a weekend learning python | code to solve a problem and then doing nothing after that. | | If you're getting paid to write code and produce something of | value, then the ultimate proof is in the pudding. If your code | does what you want, if your team is happy, if your QA is happy, | if your customers are happy, then you've succeeded. | Jalad wrote: | > As Auguste Gusteau (the fictional chef in Ratatouille) puts it, | "anyone can cook, but only the fearless can be great." | | Is this referencing the movie Ratatouille? I was curious because | the movie was released a lot later than this article. I figure it | must have been a novel but can't find it, or maybe the article | was edited since 1998? | Jtsummers wrote: | The article copyright notice is at the bottom showing | 2001-2014. Or perhaps Norvig accidentally confirmed he followed | the advice of the Abstruse Goose comic for learning to program | in 21 days. | KennyBlanken wrote: | > Malcolm Gladwell has popularized the idea, although he | concentrates on 10,000 hours, not 10 years | | This is a sidetrek for sure, but Malcolm Gladwell is a right-wing | propagandist whose sole education in anything resembling an | accredited institution is an undergraduate in history. Not | psychology or any of the other bullshit he pontificates about. He | has, however, spent decades "studying" and working at right-wing | 'think tanks'. | | He's a shill for every shitty corporate institution and scandal | you can imagine. He's defended everything from the tobacco | industry to Enron to the mortgage crisis to Ford Pintos. | | https://shameproject.com/report/malcolm-gladwell-unmasked-li... | | He's not clever. He's not a free-thinker. He's not the | intellectual 'breath of fresh air' he's managed to portray | himself as. He's just a neoliberal think-tank parrot, and his | pop-psych books are designed to push thinking that makes people | more readily swallow corporate PR. | yesenadam wrote: | Fascinating expose, thank you, everything you say seems true. | Part 2 on this page: | | https://shameproject.com/report/malcolm-gladwell-emails-sham... | _dain_ wrote: | as a rightwing maniac myself, I'm insulted you lump malcolm | gladwell in with us | avg_dev wrote: | one thing i love about twitter is the brevity. | https://twitter.com/riverguardian/status/1556381516564922376 | alexmolas wrote: | a classic! every time I read it I like it more | bitwize wrote: | I'm also reminded of the title of Dorai Sitaram's book, _Teach | Yourself Scheme in Fixnum Days_. It 's a pretty good introduction | to Scheme, but the implication is that the concepts people work | with in Scheme are very deep, and the skill ceiling is | accordingly absurdly high. | forbiddenvoid wrote: | Not to be snarky, but there is a clear answer to the question | posed at the top of the page: "Why is everyone in such a rush?" | | No one likes being poor. | | The issue isn't about how long it takes to get good, but how long | it takes to extract economic value from the exercise. How good to | I have to be in order to make more money doing this than I make | right now? | | If it takes 10 years to get that value (it does not), then it | might not be worth the effort. But I don't think expertise is | binary, and the whole 10 years/10,000 hours thing can make people | feel like the effort isn't worth it. | | There is value to be gained during the 10 (or 50) years you spend | honing this craft. And 21 days can create value, if not | necessarily expertise. | thundergolfer wrote: | I'm very pro this 10 year timeline, but totally agree that most | people are in a rush because they need the money. | | Psychology, I had waayyy more time with and appreciation of the | fundamentals after establishing myself in a well paying grad | role. "Alright, so I'm definitely not going to be poor -- in | fact I'll be comfortable -- now let's focus on slowburn | mastery. | jspash wrote: | I suppose there is some truth in that. But 8 year old me hardly | knew the value of a dollar except how much sugar could be had | in exchange. But that didn't stop me from spending every waking | hour trying to get my Vic-20 to auto-generate dungeon mazes. | From running to the shop on the 1st of every month to pick up | the latest programming magazines, then running back home to | copy the arcane characters one by one into that Vic-20 in the | hopes that the mysterious incantation would run. I count myself | lucky to have learned to program before "growing up". An | especially before the internet. | | Sorry if I never really got to the point. Just wanted to say | that I was in a rush - but of a different sort back then. | neilv wrote: | > _" Why is everyone in such a rush?"_ | | Because of Google's hiring filters (which I suspect Norvig knew | something about), which tested for "Are you fresh out of | whatever undergrads were being told at Stanford?" rather than | the skills and experience development that Norvig talks about | here. ___________________________________________________________________ (page generated 2022-10-21 23:00 UTC)