TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Teach Yourself Programming in Ten Years (1998)

586 pointsby janchorowskiover 1 year ago

31 comments

miiiiiikeover 1 year ago
I bought a copy of &quot;Sams Teach Yourself C++ in 24 Hours&quot; at a CompUSA in 1999. The guy at the checkout looked at it, laughed, and told me about this article.<p>When I was 16 I was looking at programming books at Borders and a guy handed me a copy of &quot;The C Programming Language&quot;; changed my life.<p>So much of my career has been shaped by running into developers or just people interested in programming out in the world.<p>Thanks.
评论 #39006681 未加载
评论 #39011672 未加载
评论 #39006905 未加载
评论 #39008076 未加载
评论 #39006884 未加载
评论 #39007772 未加载
评论 #39005898 未加载
评论 #39007968 未加载
评论 #39007084 未加载
评论 #39006446 未加载
评论 #39016036 未加载
评论 #39010567 未加载
评论 #39006783 未加载
评论 #39006737 未加载
评论 #39008919 未加载
评论 #39006910 未加载
评论 #39006685 未加载
评论 #39007278 未加载
评论 #39006883 未加载
评论 #39009767 未加载
评论 #39010001 未加载
评论 #39011307 未加载
medlerover 1 year ago
This essay holds a special place in my heart, since I first read it as a teenager when I was just starting to learn to code.<p>Re-reading it now, I was surprised to see references to Malcom Gladwell, since I didn’t remember Outliers becoming a thing until much later. Then when I saw the reference to Ratatouille, I realized the article had been updated since its posting in 1998. The original is still available on archive and is significantly shorter: <a href="https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;19980206223800&#x2F;https:&#x2F;&#x2F;norvig.com&#x2F;21-days.html" rel="nofollow">https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;19980206223800&#x2F;https:&#x2F;&#x2F;norvig.co...</a> Respect to Peter Norvig for continuing to edit his posts over the years.
评论 #39006399 未加载
评论 #39004477 未加载
评论 #39006583 未加载
smburdickover 1 year ago
I am at times more of a book learner, but find that attitude is often more helpful for non-CS disciplines that change slower (eg, math&#x2F;physics).<p>A recent negative book example for me is the Quantum Programming book from O&#x27;Reilly. I found that it did not discuss quantum circuits in a detail that helped me really understand what I was doing -- though I suppose that is a conceit of quantum computing. Perhaps I will return to it later (I am working through Nielsen&#x2F;Chuang now, which is very theoretical, but explains things very clearly)<p>My policy is that a book is nothing more than a learning tool, which a hobby project can also be (perhaps more effectively due to the experience gained).<p>Then again, knowledge is power, and books are great at pointing you in the right direction -- assuming you found the right one for your needs, of course.<p>I know some people who won&#x27;t open a book unless they know they can read the whole thing, which I think is a ludicrous attitude.<p>I did just order O&#x27;Reilly&#x27;s Generative Deep Learning book, and am hoping to get something out of that, and if I only retain a handful of snippets to use in my career, that is profitable for me.<p>The least I can count on is that it will look nice on my shelf.
评论 #39005573 未加载
dangover 1 year ago
16 years&#x27; worth of threads:<p>(edit: Reposts are fine after a year or so; links to past threads are just to satisfy extra-curious readers)<p><i>Teach Yourself Programming in Ten Years (1998)</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=33287618">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=33287618</a> - Oct 2022 (112 comments)<p><i>Teach Yourself Programming in Ten Years (1998)</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27411276">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=27411276</a> - June 2021 (115 comments)<p><i>Teach Yourself Programming in Ten Years (1998)</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20543495">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=20543495</a> - July 2019 (87 comments)<p><i>Teach Yourself Programming in Ten Years (1998)</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16574248">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=16574248</a> - March 2018 (51 comments)<p><i>Teach Yourself Programming in Ten Years (1998)</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9395284">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=9395284</a> - April 2015 (61 comments)<p><i>Teach Yourself Programming in Ten Years (1998)</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=5519158">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=5519158</a> - April 2013 (86 comments)<p><i>Teach Yourself Programming in Ten Years by Peter Norvig (2001)</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=3439772">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=3439772</a> - Jan 2012 (29 comments)<p><i>Teach Yourself Programming in 10 Years.</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=1060176">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=1060176</a> - Jan 2010 (32 comments)<p><i>Teach Yourself Programming in Ten Years</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=191235">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=191235</a> - May 2008 (19 comments)<p><i>Norvig: Teach Yourself Programming in Ten Years</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43243">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=43243</a> - Aug 2007 (7 comments)
评论 #39004296 未加载
评论 #39012897 未加载
评论 #39004155 未加载
评论 #39004156 未加载
ResNetover 1 year ago
I am quite impressed that the ancient Amazon.com link [0] on the page (with quite a few non-trivial query params) still returns relevant results today. A good case of <i>Cool URIs don&#x27;t change</i> [1].<p>[0] <a href="http:&#x2F;&#x2F;www.amazon.com&#x2F;gp&#x2F;search&#x2F;ref=sr_adv_b&#x2F;?search-alias=stripbooks&amp;unfiltered=1&amp;field-keywords=&amp;field-author=&amp;field-title=teach+yourself+hours&amp;field-isbn=&amp;field-publisher=&amp;node=&amp;field-p_n_condition-type=&amp;field-feature_browse-bin=&amp;field-subject=&amp;field-language=&amp;field-dateop=After&amp;field-datemod=&amp;field-dateyear=2000&amp;sort=relevanceexprank&amp;Adv-Srch-Books-Submit.x=16&amp;Adv-Srch-Books-Submit.y=5" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;gp&#x2F;search&#x2F;ref=sr_adv_b&#x2F;?search-alias=s...</a><p>[1] <a href="https:&#x2F;&#x2F;www.w3.org&#x2F;Provider&#x2F;Style&#x2F;URI" rel="nofollow">https:&#x2F;&#x2F;www.w3.org&#x2F;Provider&#x2F;Style&#x2F;URI</a>
评论 #39011071 未加载
teaearlgraycoldover 1 year ago
I’ve had a number of people approach me, at work and elsewhere, asking how they too can get one of those programming jobs. I always mention the timeline I was on, having started learning as a kid, making it a major hobby, getting a CS degree, internships, etc. and people are surprised and disappointed there’s no quick path.<p>Or is there? Has anyone here done one of those 0 to 1 bootcamps with success?
评论 #39002609 未加载
评论 #39002428 未加载
评论 #39002976 未加载
评论 #39002462 未加载
评论 #39002582 未加载
评论 #39002741 未加载
评论 #39005098 未加载
评论 #39002576 未加载
评论 #39002672 未加载
评论 #39003341 未加载
calibasover 1 year ago
&gt; The key is deliberative practice: not just doing it again and again, but challenging yourself with a task that is just beyond your current ability, trying it, analyzing your performance while and after doing it, and correcting any mistakes. Then repeat. And repeat again.<p>I think this is the really important part, you have to challenge yourself and go outside of your comfort zones to keep learning.
评论 #39002805 未加载
评论 #39006464 未加载
评论 #39003162 未加载
评论 #39002949 未加载
评论 #39003329 未加载
评论 #39003276 未加载
评论 #39002809 未加载
评论 #39007377 未加载
评论 #39003323 未加载
评论 #39004071 未加载
cube2222over 1 year ago
This is marked as 1998, but includes mentions of e.g. Clojure and Go, so it&#x27;s <i>probably</i> been updated since.
评论 #39002119 未加载
syndicatedjellyover 1 year ago
Great article. At 8 hours a day, 40 hours a week - 10,000 hours of practice will take 250 work weeks to achieve. That’s about 5 years of nearly non-stop programming.<p>Realistically, it takes closer to 10 years to achieve that goal.
评论 #39003181 未加载
评论 #39004611 未加载
评论 #39002701 未加载
评论 #39002461 未加载
ricardo81over 1 year ago
I can&#x27;t source the video that I watched 5-6 years ago [0] but it made a point about the increasing numbers of programmers and how the majority had less than 5 years of experience. It made sense in the context of IT&#x2F;web continually having a larger involvement in our lives.<p>[0] <a href="https:&#x2F;&#x2F;youtu.be&#x2F;ecIWPzGEbFc?si=A4qBR2YdX-0CV2bM" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;ecIWPzGEbFc?si=A4qBR2YdX-0CV2bM</a> thanks to comment by wild_egg<p>Can safely say after 20 years that there&#x27;s maybe a bunch of information I don&#x27;t need to know anymore that people &lt;5 years experience probably would never need. OTOH experience is experience and knowing the constructs of things and their reason for being is always helpful.<p>And that there&#x27;s plenty less experienced programmers than me that can do many things I can&#x27;t even imagine.<p>TBF it&#x27;s a pretty wide field, this Turing complete stuff.
评论 #39004181 未加载
评论 #39002498 未加载
评论 #39002710 未加载
analog31over 1 year ago
&gt;&gt;&gt;&gt; Why is everyone in such a rush?<p>Because programming can be a means to an end. You can do both: Learn enough programming to do useful things for yourself -- maybe not in 24 hours, but 24 weeks is not unthinkable. And spend longer to learn it as an art if you manage to get over the initial &quot;hump&quot; and are still interested.
ilrwbwrkhvover 1 year ago
I think you never learn programming as it becomes more of an art at the upper echelons.<p>For the fundamentals I would say 2 - 3 years of dedicated work is enough.
评论 #39002786 未加载
macjohnmccover 1 year ago
Teaching yourself programming is important on many levels as the job is a continual learning type of job. What you learned 5 years ago might apply today or you may have to learn something completely new to stay on top.
lakomenover 1 year ago
I&#x27;ve been at it for 20 years this year, professionally. For 38 years otherwise. I still haven&#x27;t learned to do it right ;)
评论 #39002278 未加载
dukeofdoomover 1 year ago
It&#x27;s never been easier then now. For example, if you want to learn how to make games...<p>There&#x27;s a guy on youtube called clearcode. He will teach you how to make games, in a Bob Ross voice...pretty much from scratch. You can also use ChatGPT to help you out.<p>The resources for learning are so much better. Socratic method of just asking questions is now possible with AI.<p>I think Sam Altman said that he is seeing x3 productivity increase from AI helping out programmers.
评论 #39004703 未加载
评论 #39003843 未加载
wrsh07over 1 year ago
I&#x27;ve always been fond of this advice. I think it correctly describes some of the activities I would expect you to do and experience before you will feel like a deep expert in programming.<p>I also think it&#x27;s worth saying, &quot;you don&#x27;t need to be an expert in programming to try it! Start by tinkering!&quot; (Other comments have been downvoted for describing what tinkering might look like, but any tinkering is valid! Try running llama.cc on your MacBook! Quantize a model yourself)<p>Ultimately, you&#x27;ll become good if you do it a lot, and you&#x27;ll do it a lot if you have one or more hobby projects that you&#x27;re motivated to work on. I have a few friends who are completely self taught (one going the Arduino &#x2F; electronics &#x2F; hardware route, the other going the web app and tools for personal use route), and the keys to their success is that they have projects they like working on. And they&#x27;ve kept at it for years.<p>They don&#x27;t know everything, and they don&#x27;t necessarily have great foundations, but it&#x27;s not too hard to learn things on an as-needed basis these days. Both of them find information very differently than I do, which is also valuable for me to learn and see.<p>There are other ways to motivate yourself: taking a class with homework that gets you coding (the success of this strategy depends on the person!), finding an accountability buddy who you discuss your projects with, finding an open source project you&#x27;re interested in (start by adding comments, fixing typos, or looking for a good &quot;first timer&quot; GitHub issue), do Recurse Center (although their job placement program may have limited options for junior &#x2F; entry level engineers)<p>At some point, you&#x27;ll have beaten your head against a problem (how can I order these things correctly? How do I get this interaction to work correctly? Why is my component re rendering in an infinite loop?) and you&#x27;ll watch a video or read a blog post explaining it and you will truly understand the issue. It will be common, and you might have encountered it in a 201 class, but your first-hand experience will help it stick.<p>Another totally valid way to learn programming is to be good enough to get a job [1] and then be paid to figure it out day after day, and ideally have experienced programmers mentoring you. I&#x27;ve seen people go through bootcamps get a lot out of it, but I think the quality is highly variable<p>[1] unfortunately, while I think this was a really good path ten years ago, the bar continues to be raised (new grads with internship experience can be very good, companies are not hiring as aggressively today as they did in the world of zero percent interest rates)
sirsinsalotover 1 year ago
My first learning exercise was using the tutorial system of the Turbo Pascal IDE.<p>It taught me variables, expressions and how the tooling works.<p>I was 6 years old and that was that.<p>That was 31 years ago and I still feel like I know only a tiny tiny fraction of my field. It is terrifyingly awesome. I hope I always feel this way.
tempodoxover 1 year ago
Yep, thats a reasonable time horizon. After 10 years you can call yourself a seasoned beginner.
评论 #39007903 未加载
arendtioover 1 year ago
I like the timing &#x27;Answers&#x27; very much.<p>And then again you ask the run-of-the-mill SAP consultant how long it takes until an updated data record is available to a connected system and the answer will be something like 86.400.000.000.000ns<p>or closer to the original wording: &#x27;one day&#x27;.
theyinwhyover 1 year ago
On the frontpage at the same time: Become a master in 1 year [1]<p>1: <a href="https:&#x2F;&#x2F;micromasters.mit.edu&#x2F;" rel="nofollow">https:&#x2F;&#x2F;micromasters.mit.edu&#x2F;</a>
jdash99over 1 year ago
heh... this article inspired me to start learning how to program. Around 12 years ago, I wrote this tweet <a href="https:&#x2F;&#x2F;twitter.com&#x2F;Jdash99&#x2F;status&#x2F;285142421774405632" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;Jdash99&#x2F;status&#x2F;285142421774405632</a> so I didn&#x27;t forget my goal. Still learning though.<p>Thanks Peter Norvig.
dekhnover 1 year ago
Peter is a gem who really seems to understand the structure of reality slightly better than just about anybody, and is a nice person to boot.<p>I guess I spontaneously picked up on the &#x27;challenge yourself a little, improve, repeat&#x27; strategy a long time ago. I often implement things over decade or more, through a series of small increments. I also decompose many problems recursively and use a sort of A* approach to make progress, sometimes revelling in some detail for months or more at a time before solving it, then backing up the stack to the larger problem I was working on.<p>For example, I&#x27;m building an automated microscope. I work with folks who buy $1M scopes just to speed up their science. I don&#x27;t want a $1M scope- I want a $1K scope that does 30% of what the $1M scope does. To do this, i&#x27;ve learned how to design and 3d print components, integrate motors, controller boards, etc. Eventually I reached a point where improving the illuminator (the LED light that provides the light to the sample, which is then picked up by the camera) was the most important step and so I took a deep dive into LEDs, and the electronics required to support them.<p>This has meant putting the scope down and instead creating a series of designs for PCBs that incorporate increasingly sophisticated electronics and higher power LEDs. I set a challenge for myself that is beyond my ability: design and have manufactured, a working constant current driver and assemble the PCB myself using surface mount components. When I started, I knew nothing about constant current, or SMD, or designing PCBs. I started with the simplest possible designs- copying a reference design for ac ontroller, cloning a board I already have, incorporating low-power LEDs onto a board. Each step along the way, adding something slightly more challenging.<p>When I do this I fail a lot. Some days I get a PCB made to my design after a week of waiting (JLCPCB is AMAZING) and within 5 minutes realize I made a fundamental mistake. Other times, a board works perfectly and I &quot;level up&quot;: I can now take everything I learned in the process, and use it to pick up the next challenge. Sometimes I get frustrated and depressed- not being able to figure out something that should be straightforward, and then I either rubber duck it, or ask a simple&#x2F;stupid question on reddit, which typically unblocks me.<p>Today, I expect to receive my next constant current board design. If I assemble that and it works, I can then proceed to building a board to host a high power LED. That will introduce all sorts of new problems (heat management) that involve going into Kicad, thinking about stuff, making some experiments, sending a design to JLCPCB, waiting a week, and then assembling a bunch of boards, most of which will burn out (high power LEDs are tricky, if they got hot they fail faster). There&#x27;s an opportuntity to buy some thermistors (little temperature measuring devices) and put them on the board to see how well my design for heat spreading it.<p>At the end of all this, I&#x27;ll have a world-class transmission light microscope that can track tardigrades for hours at a time (itself an enjoyable delve into modern computer vision techniques), and I&#x27;ve talked to the world&#x27;s leading tardigrade researcher, who wants to incorporate my ideas into his research to make tardigrades a model organism.<p>By the way, if I had stayed in academia, I would NEVER had the time, money, or energy to pursue this; I&#x27;d be stuck working on my funded research. NOBODY wants to give me money to design scopes that are roughly where state of the art was in the 1970s. But if I keep this up, in a few years I&#x27;ll be ready to go play with the big boys and girls in the robot biotechnology labs with their $1M toys.<p>Bringing this back to Peter, I had the chance to work with him on a project (attempting to disprove the Beal conjecture by finding a counterexample). He did all the brilliant math and we wasted a bunch of CPU (and I mean A BUNCH) trying to find counterexamples. I like how when he wrote <a href="https:&#x2F;&#x2F;norvig.com&#x2F;beal.html" rel="nofollow">https:&#x2F;&#x2F;norvig.com&#x2F;beal.html</a> he wrote in the nicest possible way that I was wasting time and energy.
AidanSWover 1 year ago
Just doing something for 10 years doesn&#x27;t make you an expert, I started coding 11 years ago- as a kid. But my knowledge became so diffuse across topics I was interested in that I never really became an expert in any of it.
评论 #39005180 未加载
评论 #39005298 未加载
评论 #39005147 未加载
评论 #39004968 未加载
lukeholderover 1 year ago
The book that changed my life was “The well grounded Rubyist”. Learning how objects and messages worked was so amazing.
fallingfrogover 1 year ago
Guess I should return my dog eared copy of “quantum physics for complete and total nincompoops” then.
aldousd666over 1 year ago
I have been dropping links to this article since 1998. Lol. It has definitely stood the test of time
rmbyrroover 1 year ago
Amazing how this aged so well. Perhaps the best validation of the quality of the advice.
arp242over 1 year ago
24 hours? Oceans of time! I had &quot;Teach Yourself C++ in 10 minutes&quot;.<p>I had done some MSX-BASIC, but after we got a &quot;real&quot; PC I wanted to learn a &quot;real&quot; and modern language. This is what they had at the local bookshop.<p>The &quot;10 minutes&quot; is done by explaining what C++ is and then it declares &quot;there, in the last 10 minutes I explained things and you now know what C++ is&quot;. Ehh...<p>I didn&#x27;t understand a lot of it. Chapter 5 or so is templates. It&#x27;s pretty thin, and just rushes past things and never takes the time to really explain anything. It may be somewhat suitable if you&#x27;re experienced in other languages, but it&#x27;s absolutely not suitable for beginners. Visual Studio also didn&#x27;t help (at the time I thought you <i>needed</i> VS to program on Windows – it was 1999, we didn&#x27;t have internet, and I was 14, so what did I know?)<p>Aside from being a border-line scam, these books are worse than useless and actively harmful. As a result of this book I gave up programming for years, thinking I just didn&#x27;t have what it takes. Wasn&#x27;t until years later that I discovered this &quot;Linux&quot; and then &quot;FreeBSD&quot; thing that I discovered you can &quot;just&quot; write programs with &quot;just&quot; a text editor, and that things like Perl and Python and C exist.<p>If you see one of these things at the bookshop you should steal it and throw it out. Haha, only serious.
评论 #39005321 未加载
评论 #39006868 未加载
PLenzover 1 year ago
How does a 1998 essay referrence a 2007 movie?
NoraCodesover 1 year ago
&gt; Why is everyone in such a rush?<p>Because we live under an economic system that says you must produce value for capital or die.<p>This is all very good advice. AND, I think we would have many fewer bad programmers and many more good ones if fewer Knuths were spending eight to ten hours a day mopping floors at fast food restaurants for $7.25 an hour, or writing garbage JavaScript for fly-by-night startups for $65,000 a year.
评论 #39007371 未加载
评论 #39004412 未加载
revskillover 1 year ago
I can verify this is true.