Related:<p><i>Teach Yourself Programming in Ten Years (1998)</i> - <a href="https://news.ycombinator.com/item?id=27411276" rel="nofollow">https://news.ycombinator.com/item?id=27411276</a> - June 2021 (115 comments)<p><i>Teach Yourself Programming in Ten Years (1998)</i> - <a href="https://news.ycombinator.com/item?id=20543495" rel="nofollow">https://news.ycombinator.com/item?id=20543495</a> - July 2019 (87 comments)<p><i>Teach Yourself Programming in Ten Years (1998)</i> - <a href="https://news.ycombinator.com/item?id=16574248" rel="nofollow">https://news.ycombinator.com/item?id=16574248</a> - March 2018 (51 comments)<p><i>Teach Yourself Programming in Ten Years (1998)</i> - <a href="https://news.ycombinator.com/item?id=9395284" rel="nofollow">https://news.ycombinator.com/item?id=9395284</a> - April 2015 (61 comments)<p><i>Teach Yourself Programming in Ten Years (1998)</i> - <a href="https://news.ycombinator.com/item?id=5519158" rel="nofollow">https://news.ycombinator.com/item?id=5519158</a> - April 2013 (86 comments)<p><i>Teach Yourself Programming in Ten Years by Peter Norvig (2001)</i> - <a href="https://news.ycombinator.com/item?id=3439772" rel="nofollow">https://news.ycombinator.com/item?id=3439772</a> - Jan 2012 (29 comments)<p><i>Teach Yourself Programming in Ten Years</i> - <a href="https://news.ycombinator.com/item?id=191235" rel="nofollow">https://news.ycombinator.com/item?id=191235</a> - May 2008 (19 comments)<p><i>Norvig: Teach Yourself Programming in Ten Years</i> - <a href="https://news.ycombinator.com/item?id=43243" rel="nofollow">https://news.ycombinator.com/item?id=43243</a> - Aug 2007 (7 comments)
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.<p>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.<p>i <i>did</i> 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.<p>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.
That's somehow the time it's been taking me and I had the basics of coding.<p>Coding can be learnt more or less fast.<p>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)
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."<p><a href="https://youtu.be/I0Pt9Lf9JzQ" rel="nofollow">https://youtu.be/I0Pt9Lf9JzQ</a>
Much like his AI textbook, this post was well written.<p>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.
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?"<p>No one likes being poor.<p>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?<p>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.<p>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.
I tought myself programming in over 20 years and still haven't finished.<p>However, I think that learning a particular programming language is not a tremendous task. And I don't mean only syntax but the general ideeas and concepts flowing around that language.<p>I see many language as families. After I learnt Pascal it was easy to learn C. Then C++ (sort of, because no mortal being can claim mastership of C++). Then C#. Then Python and Go.<p>F# was a bit different thing, but once in my pocket, I am not afraid of Haskell or ML(not that I do wish to learn them).<p>Apart from syntax, which is easy, libraries and frameworks, you have to learn different ways to do things, but those might apply to families.<p>So things like interfaces, over abstracting, GoF patterns, Uncle Bob teachings, clean coding, DDD design, SOLID and other stuff which mostly mean bad design and bad coding but you need to master if you want to land a job, once learnt for Java, it will apply for most languages from the family like C++, C# and even Python.
> As Auguste Gusteau (the fictional chef in Ratatouille) puts it, "anyone can cook, but only the fearless can be great."<p>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?
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.
I'm also reminded of the title of Dorai Sitaram's book, <i>Teach Yourself Scheme in Fixnum Days</i>. 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.
First you learn to write code. Then you learn to debug it. Then you learn to read other peoples code. Then you learn to debug their code. Then you learn to improve their code. Then you’re a programmer.
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.<p>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.
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.
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.<p>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?