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