25 ms·
Teach Yourself Programming in Ten Years (1998)
- cube2222 3y agoThis is marked as 1998, but includes mentions of e.g. Clojure and Go, so it's probably been updated since.
- ReleaseCandidat 3y agoAt the end of the page: Peter Norvig (Copyright 2001—2014)
- janchorowski 3y agoOriginally from 1998: https://web.archive.org/web/19980206223800/https://norvig.com/21-days.html https://web.archive.org/web/19980206223800/https://norvig.co... I didn't want to mislead with a newer date. Sorry if it confuses you.
- sandyarmstrong 3y agoI had no idea it was originally talking about a Pascal book, thanks for the link! Fun to read old versions and see what changed over time (language recommendations, for example).
- syndicatedjelly 3y agoGreat 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. Realistically, it takes closer to 10 years to achieve that goal.
- sonabinu 3y agoThis is true in any profession. Building intuition comes from doing more and more with incrementally difficult challenges. There comes a point at which one can make connections and apply what you know from one area into another, and creativity kicks in.
- monkeynotes 3y ago> At 8 hours a day, 40 hours a week - 10,000 hours of practice will take 250 full weeks to achieve. That’s about 5 years of nearly non-stop programming. Isn't this basically a software job? Like, get a junior role and work your way up over 5 years doing 40 hrs a week.
- throwawaaarrgh 3y agoIf the only programming you do is generic commercial work, you won't get very good, especially if it's at the same job or on the same kind of project. You can learn more about programming by giving yourself new and challenging projects at home. Doing both personal and professional work is the fastest way to progress while learning lessons from both. (commercial work teaches you the "professional" side of software engineering, which has almost nothing to do with programming)
- monkeynotes 3y ago> If the only programming you do is generic commercial work Congrats you've found an edge case. I've spent my whole life working in "commercial" settings, I've learned everything doing that, and it's all programming. I really don't know which places you work at where a software engineer doesn't do programming. That's the whole job, 8hrs a day. Fuck going home and slugging another 4hrs software, unless you have the energy in which case good for you, you can fast track.
- jesse__ 3y agoRealistically, it depends how much you enjoy programming. If you program a lot, you can easily hit 3k hours a year.. Most days I program 12 hours a day, most weeks 6 or 7 days a week. On a day I'm feeling very motivated I'll program for 18 hours. I've been doing this for close to 10 years. Occasionally I'll take a month 'off' and gear down to 3-4 days a week, still long days. By my conservative estimates, I hit about 3500h/year. I work this much because I fucking love programming, and there's nothing I'd rather do ( other than my daily surf in the mornings, of course :)
- syndicatedjelly 3y agoThat’s great to hear. I said “realistically” because most people don’t program for 12 hours a day. I love programming, but I love other hobbies too. Everyone has the same 24 hours in a day :)
- ska 3y agoThe 10,000 hour heuristic isn't particularly accurate, it's just popular. FWIW, 10 years professional experience seems to be about right, give or take, to make a solid developer. I don't think I've ever met anyone who really got there in 5. Some people shave a few years off by having done it obsessively as a teen also, but at some point that typically overlaps anyway. Of course there is also the old saw about 1 year, 10 times being a problem. I've met plenty of developers with >10 years experience that weren't that solid, too...
- pants2 3y agoI have a little over ten years experience, and when I read code that I wrote at 1-2 YoE it's shamefully bad, but after that it starts to get pretty good. I don't think anyone would notice a huge change between my code 5 years ago and today. I've moreso improved on soft skills. Though it probably helped that I had two mentors at a job 2 years in who were ruthless about reviewing my code.
- ska 3y ago> I've moreso improved on soft skills. Which, among other things, are also vital. Oversimplified: 1-2 years of not knowing what you don't know. Then 3-5 learning how to write code, then 3-5 learning how to really write software. Most of that last learning curve happens outside the editor. That's a little to linear and non-overlapping, but the essence is true I suspect.
- rmbyrro 3y agoAmazing how this aged so well. Perhaps the best validation of the quality of the advice.
- bluetomcat 3y ago[flagged]
- forgetfreeman 3y agoYou're most likely getting downvoted because the modern lets-hot-glue-a-bunch-of-dependencies-together approach notwithstanding programming has gotten significantly more complex over the years. Can you muddle through with youtube videos and SO? Sure, if you want the career equivalent of staggering around in the dark stepping on rakes.
- jebarker 3y agoExactly. The newer teaching materials and resources are great, but they don't change the advice in the article about how to learn programming. In fact, they might make it harder in some ways because of the temptation to take shortcuts.
- bluetomcat 3y agoThe idea that one needs MIT-level training with SICP and AOCP is elitist and sickening. You start by writing small and useful tools that help you explore the language features. You compare your code to other people's code solving a similar problem. You look for ways to make it shorter, more readable, more efficient by reading SO and watching YouTube.
- bborud 3y agoNobody says you do. In fact, I agree that a lot of the paths people who have never mentored a programmer their entire life think you have to take are bullshit. (Teaching is not mentoring. Mentoring is mentoring). However, that doesn't mean that it doesn't take a lot to become a decent programmer. It does. And not just in terms of time, but perhaps most importantly in terms of intellectual maturity.
- forgetfreeman 3y agoNobody said an Ivy League educations is (or should be) a requirement to write code. That said without some form of guidance a fledgling developer has no way to discern good code from bad or grasp the architectural or security implications of some random-ass code snippet they lifted off of SO. So again, unless your plan is to spend the bulk of your career repeating other people's mistakes in an effort to learn the hard way getting some kind of formal training should be a primary goal. I'm entirely self-taught and let me tell you from experience rediscovering a design pattern from first principles years after the book was published isn't as heroic as it sounds.
- lakomen 3y agoI've been at it for 20 years this year, professionally. For 38 years otherwise. I still haven't learned to do it right ;)
- forgetfreeman 3y agoNeither has anyone else ;)
- arman_hkh 3y ago[flagged]
- ricardo81 3y agoI can'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/web continually having a larger involvement in our lives. [0] https://youtu.be/ecIWPzGEbFc?si=A4qBR2YdX-0CV2bM https://youtu.be/ecIWPzGEbFc?si=A4qBR2YdX-0CV2bM thanks to comment by wild_egg Can safely say after 20 years that there's maybe a bunch of information I don't need to know anymore that people <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. And that there's plenty less experienced programmers than me that can do many things I can't even imagine. TBF it's a pretty wide field, this Turing complete stuff.
- wild_egg 3y ago> I can't source the video that I watched 5-6 years ago but it made a point about the increasing numbers of programmers and how the majority had less than 5 years of experience I believe that was in this Bob Martin talk — The Future of Programming https://youtu.be/ecIWPzGEbFc?si=A4qBR2YdX-0CV2bM https://youtu.be/ecIWPzGEbFc?si=A4qBR2YdX-0CV2bM
- ricardo81 3y agoYes! That's the one. Struggled to source it.
- bee_rider 3y agoIt is a rapidly advancing field because it is young, so it makes sense that we’d accumulate a lot of ephemeral information. It feels like we’re still in the alchemist days. Eventually the chemists will come along. They’ll systemize our ad-hoc observations and jettison a ton of them. Until then… Neuton was an alchemist and he still made some pretty big contributions.
- dasil003 3y agoI agree with the first part, but not sure about the second. I believe software is much more engineering than science. The challenge is in organizing the bits. Most of the things learn, debate and design in software are more less arbitrary structures created to facilitate our own cognition. The hard science behind computers is much more cleanly abstracted away, compared to, for example, chemical engineering. For that reason, I don't believe software advances in the same way that natural sciences do. It's much more social in the sense that groups rally around different ideas and implementations, and wherever that energy goes also shapes the new ideas to bloom on top. Put another way: I think almost everything in software is arbitrary. Certainly some ideas are better than others, but on balance everything is a tradeoff, and I don't really expect for some powerful new discoveries or ideas to reshape the industry towards more structure and efficiency. I think it's more likely that AI replaces human programming entirely (although I dont think that's likely either).
- teaearlgraycold 3y agoI’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. Or is there? Has anyone here done one of those 0 to 1 bootcamps with success?
- yonaguska 3y agoThe only people I've seen do the bootcamps with success were already very smart and/or coming from technical or heavy math backgrounds.
- skeeter2020 3y agoGlad to see at least another perspective more or less echo my experiences/observations. You can't discount motivation, and bootcamps are filled with either those chomping to learn and explore, or those looking for the next goldrush. Adding to the challenge of differentiating is sometimes they are the same person.
- bombcar 3y agoIf you're skilled/smart/whatever you're gonna be fine, usually, so let's discount those and set them aside. There's definitely a cohort of "moderately capable at plugging away" type developer that can successfully come out of a bootcamp, and it's usually something like this path: bootcamp - headhunter agency that needs bodies - develop familiarity/skill with the toolset - hired directly via some other company. Less "startup valley next great thing" and more "updating the Java application for a change in the tax code this year" style corporate programming (which is the vast majority of all programming).
- helboi4 3y agoI mean I think I'm sorta smart but nah I have a 0 to bootcamp success story and I studied languages at uni and didn't even pass A-level maths in high school. I did a 3 month bootcamp. I was determined to end it with a job so I studied 12 hours a day 6 days a week. By the end I couldn't walk down the road without being out of breath but I had a job. My first year of employment was terrible. I was bad at everything and my employer had agreed to take bootcampers without any preperation of how to deal with that so just kept keeping me away from tickets, stunting my growth. After I wasn't renewed I spent a further 2 months doing intense studying and portfolio building and applied for my current job. They've supported me a bit and now 8 months in I'm a pretty competent junior I'd say. I feel like this is the level I should've been at at my first job but as long as you're willing to work at shitty companies for a bit you can just go from bootcamp to employed immediately and then work up to being good from there. Edit: Whether I'm really worth the investment to these companies is another thing. I tend to think I'm not because I do sorta suck. But in terms of whether it's possible to go that path, be constantly employed and improve in time, yes it definitely is possible.
- archsurface 3y ago[flagged]
- frfl 3y ago> Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- archsurface 3y agoI don't think it needs spelling out. Make an effort if you must.
- deleted 3y ago[deleted]
- ilrwbwrkhv 3y agoI think you never learn programming as it becomes more of an art at the upper echelons. For the fundamentals I would say 2 - 3 years of dedicated work is enough.
- atticora 3y agoIt depends. I've been coding for a living for 41 years and have a feeling I'll get the hang of it real soon now.
- jesse__ 3y agoAmazing answer
- ilrwbwrkhv 3y ago[flagged]
- icepat 3y agoRight - because the entire point of learning to program is becoming Mr. Robot
- scrps 3y agoIt is possible you are not cut out for sarcasm? (Giving you the benefit of the doubt you may have taken the comment literally, if so I'd maybe apologize for insulting someone with 41 years of experience in a field that is still young whilst having no knowledge of exactly who you are talking to)
- atticora 3y agoI aim higher.
- bxparks 3y agoThen there's C++. After ~30 years of it, I realized that I don't know how to initialize an object anymore. So I've given up.
- calibas 3y ago> 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. I think this is the really important part, you have to challenge yourself and go outside of your comfort zones to keep learning.
- freedmand 3y agoI wonder how people’s learning habits will change with AI tools like GitHub Copilot. I used it for several months but randomly got logged out and am now finding myself valuing the slight inconvenience of looking up official documentation (and surprised how much more sluggish I felt for the first week). Going through extra steps to learn something through primary sources and valuing being uncomfortable at times are important for my evolution as a programmer.
- testcase_delta 3y agoI started learning to code this year, and I keep thinking that I would have thrown in the towel if not for ChatGPT. For better or for worse. The big difference for me is being able to struggle right up until I'm ready to give up, and then ask ChatGPT for insight. Usually my issue is a syntax one, and I have the concepts down (i.e. I was right to solve it using nested if statements, but I forgot I need to put a variable outside a function, for example). This way I get that dopamine hit of being mostly right, and quick feedback on what I need to improve. If not for ChatGPT, I'd be left feeling like I just failed entirely and I'm not getting it at all, which I don't think is the case. I think the same experience would be achieved with a good teacher, but then I'd need my schedule to overlap, and the feedback on problems would still be often be delayed instead of instant.
- voakbasda 3y agoUsing ChatCPT to help you after you have been stuck and struggled would be equivalent to asking a senior. A senior might hallucinate an answer too, but either way you will get pointed in a generally useful direction. That’s usually all it takes But as a senior, I can’t imagine using an LLM at this stage for solving anything meaningfully complex.
- wrsh07 3y agoI'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. I also think it's worth saying, "you don't need to be an expert in programming to try it! Start by tinkering!" (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) Ultimately, you'll become good if you do it a lot, and you'll do it a lot if you have one or more hobby projects that you're motivated to work on. I have a few friends who are completely self taught (one going the Arduino / electronics / 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've kept at it for years. They don't know everything, and they don't necessarily have great foundations, but it'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. 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're interested in (start by adding comments, fixing typos, or looking for a good "first timer" GitHub issue), do Recurse Center (although their job placement program may have limited options for junior / entry level engineers) At some point, you'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'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. 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've seen people go through bootcamps get a lot out of it, but I think the quality is highly variable [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)
- macjohnmcc 3y agoTeaching 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.
- dukeofdoom 3y agoIt's never been easier then now. For example, if you want to learn how to make games... There'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. The resources for learning are so much better. Socratic method of just asking questions is now possible with AI. I think Sam Altman said that he is seeing x3 productivity increase from AI helping out programmers.
- walthamstow 3y agoI agree there are many more great resources but also many more terrible ones which will take your money or attention and give you barely anything in return.
- jrpelkonen 3y agoPersonally, I’d like to see the data/research behind the “3x” claim to buy it. Especially when it is hard to imagine Sam Altman as an unbiased observer when it comes to benefits of AI.
- iskela 3y agoOne angle to these multipliers would be this: A generalist programmer can take other tasks of sw-engineering than just programming with the support of ChatGPT. Like DevOps, DBA and test-automation. For small team or company that is then actually saving or postponing FTE hires
- medler 3y agoThis 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. 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: https://web.archive.org/web/19980206223800/https://norvig.com/21-days.html https://web.archive.org/web/19980206223800/https://norvig.co... Respect to Peter Norvig for continuing to edit his posts over the years.
- ipnon 3y agoI can see myself now, reading this in the university library computer lab a decade ago. And now I've taught myself programming. The journey was much more difficult and winding than I was imagining it back then!
- Bagged2347 3y agoAs someone who doesn't have a traditional CS background and is on a similar journey, I'd love to know: do you have any advice or insights to share?
- ipnon 3y agoTo succeed takes 3,650 days. To give up only takes 1. Practice, practice, and practice some more.
- smburdick 3y agoI resent Gladwell to this day, possibly because I was assigned to read him in high school. He is quoted too much -- the 10,000 hours thing is just a meme at this point, for me anyway.
- peterfirefly 3y agoNot to mention the whole Igon Value Problem.
- revskill 3y agoI can verify this is true.
- m1117 3y ago[flagged]
- deleted 3y ago[deleted]
- dang 3y ago16 years' worth of threads: (edit: Reposts are fine after a year or so; links to past threads are just to satisfy extra-curious readers) Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=33287618 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 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 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 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 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 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 https://news.ycombinator.com/item?id=3439772 - Jan 2012 (29 comments) Teach Yourself Programming in 10 Years. - https://news.ycombinator.com/item?id=1060176 https://news.ycombinator.com/item?id=1060176 - Jan 2010 (32 comments) Teach Yourself Programming in Ten Years - https://news.ycombinator.com/item?id=191235 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 https://news.ycombinator.com/item?id=43243 - Aug 2007 (7 comments)
- jms703 3y agoIf only there was a way to let poster know about past threads before posting...
- dang 3y agoReposts are fine after a year or so! This is in the FAQ: https://news.ycombinator.com/newsfaq.html https://news.ycombinator.com/newsfaq.html. When a link has had significant discussion in the last year, the software will normally redirect the submitter to the previous thread rather than allow a repost through.
- dekhn 3y agoPeter 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. I guess I spontaneously picked up on the 'challenge yourself a little, improve, repeat' 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. For example, I'm building an automated microscope. I work with folks who buy $1M scopes just to speed up their science. I don't want a $1M scope- I want a $1K scope that does 30% of what the $1M scope does. To do this, i'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. 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. 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 "level up": 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/stupid question on reddit, which typically unblocks me. 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'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. At the end of all this, I'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've talked to the world's leading tardigrade researcher, who wants to incorporate my ideas into his research to make tardigrades a model organism. By the way, if I had stayed in academia, I would NEVER had the time, money, or energy to pursue this; I'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'll be ready to go play with the big boys and girls in the robot biotechnology labs with their $1M toys. 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 https://norvig.com/beal.html https://norvig.com/beal.html he wrote in the nicest possible way that I was wasting time and energy.
- NoraCodes 3y ago> Why is everyone in such a rush? Because we live under an economic system that says you must produce value for capital or die. 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.
- deleted 3y ago[deleted]
- bsdpufferfish 3y ago> you must produce value for capital or die. Can you name any social structure in which this is not true? Even medieval monks who are participating in a completely different society have to do the chores. > Knuths were spending eight to ten hours a day mopping floors I don't believe this happens and I know quite a few eccentric and unsocial smart people. Much more likely is them to spend the next 10 years at a relatives house speed running Mario.
- wizzwizz4 3y ago> and I know quite a few eccentric and unsocial smart people. Selection bias. People who have been able to distinguish themselves as “smart” are already a narrow sample, as the results of many UBI initiatives suggest. > I am, somehow, less interested in the weight and convolutions of Einstein’s brain than in the near certainty that people of equal talent have lived and died in cotton fields and sweatshops. — Stephen Jay Gould
- NoraCodes 3y ago> Can you name any social structure in which this is not true? That's a rather disingenuous framing; I think we could probably do quite a lot to reduce the extent to which it's true without any particularly radical changes to our society. When we do start talking about radical changes, there are a lot that are not just likely to work but actually pretty well proven, like a UBI, improved labor rights, well-regulated and well-supported unions, wealth taxes, and so forth. The possible alternatives are not "if you don't have a job you starve on the street" and "fully automated luxury gay space communism". > Much more likely is them to spend the next 10 years at a relatives house speed running Mario. Despite the disdain which you seem to hold for speedrunners (why?), a lot of really interesting hacking comes out of the speedrunning community. Some very interesting applications of deep learning had their start in the TAS community. I'd rather ten people "waste" my tax dollars on speedrunning or art I don't like than one person be prevented from making art that's important to me (or doing some cool math, or whatever) because their boss's boss wanted a percent of a percent towards another yacht.
- theyinwhy 3y agoOn the frontpage at the same time: Become a master in 1 year [1] 1: https://micromasters.mit.edu/ https://micromasters.mit.edu/
- justincredible 3y ago[dead]
- AidanSW 3y agoJust doing something for 10 years doesn'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.
- ipaddr 3y agoYou became an expert in learning a variety of topics
- thfuran 3y agoJust doing something for 10 years doesn't make you an expert.
- ipaddr 3y agoI think it does, just not in the things your measuring. Sitting on a couch for 10 years will make you an expert. Not an expert in sitting on couches in general but an expert in sitting on your couch during the period you were there.
- satellite2 3y agoPretty sure I got worst at it. 10 years later and now my back hurts.
- ya1sec 3y agoI like this sentiment. A Wittgenstein collection called “Philosophical Grammar” contains a lot of these kinds of thoughts.
- AidanSW 3y agoMaybe, or maybe I became used to and ossified in bad strategies. I hope not, but I think I have learned that learning has to be intentional. Meaning for me, writing stuff down, trying to find out other solutions to the same problem rather than just going with whatever my first idea is, etc.
- arp242 3y ago24 hours? Oceans of time! I had "Teach Yourself C++ in 10 minutes". I had done some MSX-BASIC, but after we got a "real" PC I wanted to learn a "real" and modern language. This is what they had at the local bookshop. The "10 minutes" is done by explaining what C++ is and then it declares "there, in the last 10 minutes I explained things and you now know what C++ is". Ehh... I didn't understand a lot of it. Chapter 5 or so is templates. It's pretty thin, and just rushes past things and never takes the time to really explain anything. It may be somewhat suitable if you're experienced in other languages, but it's absolutely not suitable for beginners. Visual Studio also didn't help (at the time I thought you needed VS to program on Windows – it was 1999, we didn't have internet, and I was 14, so what did I know?) 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't have what it takes. Wasn't until years later that I discovered this "Linux" and then "FreeBSD" thing that I discovered you can "just" write programs with "just" a text editor, and that things like Perl and Python and C exist. If you see one of these things at the bookshop you should steal it and throw it out. Haha, only serious.
- reactordev 3y agoReminds me a lot of when I was 13 and had learned Visual Basic 6 and wanted to make a game so my mother bought me a book on how to make games. “How to make games” she said excitedly as she handed me the book. “How to Make Games” it indeed did say. It also said under it “in C++ and OpenGL”. I had no idea what I was doing or what was going on. Enter high school. An elective called “Computer concepts and programming” was the only computer class outside of “Keyboarding”. It was taught by a female teacher who used to write punch cards for a living. She introduced us to C. All of the sudden, that book from a few years ago clicked in my brain and next thing I knew, I was writing games in C++. They were crap. Horrible performance. But I made them from scratch. Fast forward another decade and then a lot of these Packt publishing style books on making games and learning coding - except for the holy grail of book series - GPU Gems… if you ever want to feel stupid, go read some GPU Gems articles. Today there’s a lot of choices - PBR - Vulkan - anything Eric Lengyel. I still feel like it’s a trap. All these “Teach yourself…” should really be titled “Become obsessed with…”
- 3y ago
- smburdick 3y agoI 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/physics). A recent negative book example for me is the Quantum Programming book from O'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/Chuang now, which is very theoretical, but explains things very clearly) 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). 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. I know some people who won't open a book unless they know they can read the whole thing, which I think is a ludicrous attitude. I did just order O'Reilly'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. The least I can count on is that it will look nice on my shelf.
- sfn42 3y agoFundamentals don't change. Sure there's a new frontend framework every week but they're all just generating html.
- smburdick 3y ago+1. What are the fundamentals of CS? Algorithms?
- el_oni 3y agoand data structures. Theres a book called Algorithms + Datastructures = programs which i've heard good things about. I've also heard good things about 7 programming languages in 7 weeks, as well as crafting interpreters. The latter 2 I intend to pick up this year
- deleted 3y ago[deleted]
- miiiiiike 3y agoI bought a copy of "Sams Teach Yourself C++ in 24 Hours" at a CompUSA in 1999. The guy at the checkout looked at it, laughed, and told me about this article. When I was 16 I was looking at programming books at Borders and a guy handed me a copy of "The C Programming Language"; changed my life. So much of my career has been shaped by running into developers or just people interested in programming out in the world. Thanks.
- hinkley 3y agoI miss CompUSA. I still firmly believe that the move to transparent bags is what killed them. For me it ruined my annual tradition of buying Christmas presents while family was next door in another store, but I’m sure for others it was being treated like a criminal. Those magnetic readers aren’t great but they aren’t in your face. Once I stopped going in routinely I stopped going in at all.
- paulddraper 3y agoReally? It hasn't killed Costco yet.
- jjtheblunt 3y agoIs family ever in the store next to Costco (which is a null pointer exception), such that meeting on foot with clear bags holding presents is no longer secret? I think that’s the challenge he described.
- paulddraper 3y agoI'm talking about the other thing
- jjtheblunt 3y agoAh; makes sense
- 3y ago
- tempodox 3y agoYep, thats a reasonable time horizon. After 10 years you can call yourself a seasoned beginner.
- rudasn 3y agoI'm self taught, started with IRC bots in tcl in late 90s and making websites with netscape and frontpage in early 00s. Dreamworks and Fireworks too. Got business degrees by mid 00s, but making things with code kept me going. Got a US remote job early 10s (I'm in the EU), and by mid 10s I was called "software engineer" by my peers and bosses. I have just fairly recently upgraded my LinkedIn bio from "Web developer" to "software developer", as I can't even call myself an engineer. Honestly, I have no idea what I'm doing other than making a real effort not to do stupid shit (and RTFM).
- ResNet 3y agoI 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 Cool URIs don't change [1]. [0] http://www.amazon.com/gp/search/ref=sr_adv_b/?search-alias=stripbooks&unfiltered=1&field-keywords=&field-author=&field-title=teach+yourself+hours&field-isbn=&field-publisher=&node=&field-p_n_condition-type=&field-feature_browse-bin=&field-subject=&field-language=&field-dateop=After&field-datemod=&field-dateyear=2000&sort=relevanceexprank&Adv-Srch-Books-Submit.x=16&Adv-Srch-Books-Submit.y=5 http://www.amazon.com/gp/search/ref=sr_adv_b/?search-alias=s... [1] https://www.w3.org/Provider/Style/URI https://www.w3.org/Provider/Style/URI
- BossingAround 3y agoFunny, because the Amazon link returns an error for me.
- heyoni 3y agoThe first result is coding with Roblox Lua for me!
- BossingAround 3y agoOh I get the same now, perhaps a temporary failure?
- heyoni 3y agoHopefully? Are you able to send messages? And are things setup to "not" generate registration codes automatically?
- aldousd666 3y agoI have been dropping links to this article since 1998. Lol. It has definitely stood the test of time
- jdash99 3y agoheh... this article inspired me to start learning how to program. Around 12 years ago, I wrote this tweet https://twitter.com/Jdash99/status/285142421774405632 https://twitter.com/Jdash99/status/285142421774405632 so I didn't forget my goal. Still learning though. Thanks Peter Norvig.
- fallingfrog 3y agoGuess I should return my dog eared copy of “quantum physics for complete and total nincompoops” then.
- analog31 3y ago>>>> Why is everyone in such a rush? 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 "hump" and are still interested.
- lukeholder 3y agoThe book that changed my life was “The well grounded Rubyist”. Learning how objects and messages worked was so amazing.
- sirsinsalot 3y agoMy first learning exercise was using the tutorial system of the Turbo Pascal IDE. It taught me variables, expressions and how the tooling works. I was 6 years old and that was that. 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.
- PLenz 3y agoHow does a 1998 essay referrence a 2007 movie?
- arendtio 3y agoI like the timing 'Answers' very much. 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 or closer to the original wording: 'one day'.