8 ms·
The title is a bit misleading to me. 10 years is not to "teach yourself programming," it's to "become an expert in programming." Most people do not want to le
by BossingAround 5y ago
The title is a bit misleading to me.
10 years is not to "teach yourself programming," it's to "become an expert in programming."
Most people do not want to learn programming to become experts, most people want to learn programming to get a job. After getting a job, some will plateau right away, others will plateau after some time, and others still will keep learning even after years and years.
The problem is "how long until I become employable," not "how long until I become an expert".
The answer to the former is months of deliberate practice.
The answer to the latter is [tens of] years of deliberate practice.
Books with titles like "learn C++ in 24 hours" target the former. And, I would say that the number of jobs that require the mastery of the craft is not large.
- herodoturtle 5y agoI agree with everything you said. Not sure about this though: > I would say that the number of jobs that require the mastery of the craft is not large. Perhaps the number of jobs that require mastery is less well known? i.e. Not advertised as often / not vacant as often. I suppose I'm splitting hairs here in one's definition of "not large", by in my circles (~25 years of dev working experience) there are quite a lot of "jobs" requiring mastery, but they certainly do become available less often (or rather, they're usually quietly filled without much public notice).
- BossingAround 5y agoWhat are some of the jobs that require mastery in your mind? I suspect we'll diverge in that opinion, hence our different conclusions.
- gombosg 5y agoAlso, the number of developers is increasing exponentially over time. There are maybe a hundred thousand people out there who have >25 years of dev experience, and millions who have <5. E.g. see [1] - 16 times more engineers filling the SO survey with <5 years of experience compared to >25. The job market has to roughly follow this demographic trend, otherwise companies would fall behind competitors. [1] https://insights.stackoverflow.com/survey/2020#developer-profile-years-coding-professionally https://insights.stackoverflow.com/survey/2020#developer-pro...
- Aeolun 5y ago> the number of jobs that require the mastery of the craft is not large The number of jobs that benefit from mastery of the craft is essentially equal to the number of jobs. I do not enjoy finding the work of a bunch of people that studied enough to get hired and no more.
- kbmunchkin 5y agoThey may benefit from it, but they won't pay more if it's not required. So if you expect more compensation for your mastery, you may get passed over for someone with less skill, but the required skill.
- Aeolun 5y agoI was mostly trying to say that you shouldn’t stop trying to learn just because you got hired :)
- BossingAround 5y ago> The number of jobs that benefit from mastery of the craft is essentially equal to the number of jobs. I think this is true. Nobody disputes that. Imagine you'd hire Torvalds to debug and fix why your Wordpress does not work. I truly think he'd do an excellent job figuring out that AWS has a firewall that's blocking the connection from your WP node to your MySQL node... Somehow, the example above feels bizarre and yet these are the types of issues a lot of architects, consultants, and other highly-paid job positions deal with on a daily basis. > I do not enjoy finding the work of a bunch of people that studied enough to get hired and no more. This sentence makes no sense to me. I'd say you "find the work of people that studied enough to get hired and no more" possibly just slightly more often as you "find work of people who never wrote anything public until they mastered everything they could, from building computers from NAND gates up to AI/ML".
- opan 5y agoTorvalds had trouble installing Debian, IIRC. Your wordpress scenario sounds more like basic IT / sysadmin stuff, which he likely never does himself. Same deal with Stallman (he gets others to set up his computers). These guys seem ultra-specialized to the point you could argue they don't know how to use a computer that well, even if they're fine programmers.
- vladharbuz 5y agoEverything you say is true, and leads to the oft-repeated "why would I want to learn this complicated programming concept, when my job doesn't require it?". That is, it encourages the idea that employment is the yardstick. The rub is that this all depends on what you find personally rewarding. If what leads to a rewarding life to you is having a good job, then absolutely, you probably don't need more than a certain amount of depth and knowledge on the subject. But if depth and knowledge on the subject is what you find personally rewarding, then suddenly putting in all this work makes sense. For many, lifelong learning is what is most rewarding and brings most joy, which one might argue is the most important thing as long as you have a sufficient income. If you do want to frame it in terms of achievement, it's also obvious that many prolific people in their fields were driven by a passion for what they do — the playful nature of Feynman, Shannon and others comes to mind.
- yosito 5y agoAgreed. I can teach my 12 year old cousin how to program in half an hour. This isn't about simply knowing the basic starting point. It's about becoming an expert.
- opan 5y agoIn this case, what does it mean to know how to program? Assuming you succeed in teaching your cousin, what did they do, or what can they now do? I would not say "hello world" is enough, but I don't know where I'd draw the line. It's easy to go through a tutorial and still not be able to actually do anything, I think.
- Hendrikto 5y ago> And, I would say that the number of jobs that require the mastery of the craft is not large. This mindset is how we end up with layers upon layers of badly designed and buggy software that underpins almost every aspect of modern life. Just apply the same reasoning to other areas: Would you want to drive in a bus with a bus driver who just barely got his driver's license? Would you want to use a bridge designed by an architect who knows just enough to complete the job and does not care a bit for more? It does not take mastery to write one-off scripts that "get the job done". However, they will probably not be a general purpose solution of the problem at hand, ignore corner cases, contain bugs… and the real test comes when requirements inevitably change. If you want to write dependable, high-quality, maintainable, reusable software you better know more than the bare minimum.
- Yiin 5y agonot all code is life threatening in worst case scenario. Better comparison would be "would you like to be served by first time waiter or rather expert one?". In most cases it doesn't matter, and when it does, the price point of the service is significantly higher.
- Dah00n 5y agoThis is mostly just a rant not directed at you but on the state of software... The Colonial Pipeline ransomware wasn't life threatening. These things happen because of bad* developers and zero accountability from developers over publishers to software owners. As it is now pretty much all commercial software is "first time waiter" quality. Granted it isn't all on the actual developers but on the whole pipeline(!). Most software is on the "let's use an anchor to stop our newly developed car because we have used anchors for decades and understand them better than drum brakes" level of quality. * Bad code because of a lack of understanding and/or time constraints. But developers don't mind coding bad code (not enough to refuse at least). Developers need to be more like doctors and engineers. Accountability and proven skill matters and would force managements hand like at hospitals and building projects.
- 5y ago
- lmilcin 5y ago> Most people do not want to learn programming to become experts, most people want to learn programming to get a job. No, I think it is little bit different. "Most people think they will get a job and then will become experts after some time of performing the job" And they are right. But they are mistaken what kind of expert they become -- they are becoming experts at what they are doing which means, if they are mindlessly repeating same things they are becoming experts at mindlessly repeating same things.
- Dah00n 5y ago>they are becoming experts at what they are doing which means, if they are mindlessly repeating same things they are becoming experts at mindlessly repeating same things. That's a great way to explain it. Totally stealing that!
- skohan 5y agoI don't think the title is misleading, it's deliberately placing itself in contrast to the glut of content that is already out there geared towards people who want to become programmers as fast as possible to get a job. Programming may be a job, but it's also a craft, and I'm happy to see content in that direction. Also as someone who has had to hire a team of programmers in the last 18 months, it's clear there's an industry of snake-oil salesmen willing to promise to teach you to be employable in 3 months or less, and they're not benefitting the industry in need of good programmers, or the people paying them thousands of dollars in hopes of improving their employment prospects. A 4 year degree is not necessary to become an employable programmer, but imho what we need more of are 2-year programs which properly teach the fundamentals of computer science alongside practical skills, not 6 week or 3 month bootcamps which only teach the bare minimum.
- einpoklum 5y ago> 10 years is not to "teach yourself programming," it's to "become an expert in programming." I've been programming for a lot more than 10 years, and would barely call myself an expert on anything. 10 years is a decent amount of time to learn to be a decent programmer. As a rule of thumb at least.