4 ms·
Sort of. There are relatively short-term training programs that open the doors to many trades, but they're usually followed by some kind of ongoing and often ye
by swatcoder 2y ago
Sort of. There are relatively short-term training programs that open the doors to many trades, but they're usually followed by some kind of ongoing and often years-long apprenticeship process where further skills are gradually developed on the job with the support (nominally) of responsible mentors.
The issues with bootcamps in our industry was that there's not really a mature apprenticeship program to follow them up. Eight-week bootcampers who'd never seen a for loop before starting learn a few leetcode solutions and are invited into interviews alongside people with much more training and much more experience. And many parties, not the least of which being the leetcode-focused interviewers, are responsible for that dubious process taking shape.
- josephg 2y agoI really think our industry - and maybe culture at large - is plagued by a sort of anti-expertise philosophy at the moment. I’ve been learning the piano lately. In music it’s widely accepted that it takes years of practice to become skilled with an instrument. People talk about practice constantly. But it’s strange - nobody talks about that with programming. Instead we say “anyone can code!” “Just do some Python tutorials on YouTube!”. Nobody seems to want to talk about how much effort it takes to get good. We just don’t talk about practice like musicians do - and we should. Dismissing the work it takes is harmful. We relegate practice problems (advent of code, toy projects) into some silly side thing that you would only do for fun. But it’s only through practice that we build expertise. And we systematically dismiss people who are really skilled, and burn the bridge to get that good ourselves. Nobody seems interested in the answer of how Jeff Dean or Carmack gained their skill. When we devalue expertise, we burn the ladder we would need to climb to get there ourselves. I think we need to take seriously how hard it is to do good programming work. Algorithms, data structures, math, performance optimisation, distributed systems, graphics & shaders, large system design - any one of these skills takes years to properly master. Learning can be incredibly rewarding. But it doesn’t happen without work. We should talk about that work.
- musicale 2y ago"Teach Yourself Programming in Ten Years" https://www.norvig.com/21-days.html https://www.norvig.com/21-days.html
- rufus_foreman 2y ago>> In music it’s widely accepted that it takes years of practice to become skilled with an instrument Some of the music I listened to growing up, that I still listen to, was made by people who were complete neophytes with their instruments. So I reject your premise, and I reject your attempt at gatekeeping. >> I think we need to take seriously how hard it is to do good programming work. Algorithms, data structures, math, performance optimisation, distributed systems, graphics & shaders, large system design - any one of these skills takes years to properly master If there are any programmer kids out there, don't listen to this stuff. I mean that seriously. This is just gatekeeping. If you're a smart kid who wants to learn to code, you can do that, and you can be writing code in no time. If you're a smart kid who wants to play music, you can do that in no time. Don't listen to the gatekeepers. They are compromised. They have conflicts of interest.
- swatcoder 2y agoI'm not sure that saying a world of sophistication and capability opens up with practice, or that people have broadly lost sight of it, is the same as gatekeeping. I was one of those kids you're calling out to and I'm glad I had the opportunity to just dig in, but I'm far better at what I do after decades of practice. The same is true in each of the numerous other skills and crafts I've pursued in that time. You can write code in no time, but you really are going to only become continually better at it if you embrace organized, reflective, and regular practice of some kind.
- int_19h 2y agoSpeaking as another one of "those kids", I disagree. I became better by doing things, sure, but it was not in any sense an "organized and reflective" practice. It was... just doing things and reading about things because it was fun and interesting (and, eventually, because it paid). But not by deliberately exercising. Regular, yeah, I'll give you that. Any skill gets better with practice.
- josephg 2y agoNobody is claiming that practice needs to be boring. “Practice” is just a name for the time you spend playing around at the edge of your ability.
- em-bee 2y agoit takes years of practice to become skilled with an instrument that may be true. but it doesn't take years before you can write code. sure, you don't know everything at the beginning, but you can apply what you learned as soon as you learned it, and you don't have to practice it over a long period before you can use it. learning a music instrument takes comparatively more practice before you sound good. (unless it's a rhythm instrument. you can play a simple drum rhythm after your first lesson. you may take years to master drumming, just like to may take years to master programming, but you can be productive very early.
- swatcoder 2y ago> unless it's a rhythm instrument ... or a drone instrument, or an electronic instrument with a rich timbre and an accessible interface, or most idiophones, or a harmonica, (I could go on for a while) :) I think the OP's point was that you can't do cool things when you first start coding or even that you might have employable value early on in your journey, but that practice and experience do pay real dividends and that the field as a whole has lost some appreciation for the transformation that comes from it
- em-bee 2y agoI could go on for a while please do, i am curious. i read OP more as you can't do anything until you practiced a certain amount, which i think is more like you won't likely get a job until then but not that you can't build something for yourself. music does not get interesting until you can play in front of or with other people.
- bruce511 2y agoAs a drummer who codes (or coder who drums), I feel qualified to comment on your analogy. Firstly, you can be productive -very- quickly on other instruments too. Guitar and piano are both "good enough" even if you can only play 3 chords. You can then learn more as you go. Secondly, being productive in coding from very early should be qualified with "for some definition of productive". Yes, you can write code, yes it meets the spec, but usually there's also an element of feedback in code review. Sometimes a lot of feedback. I concur with the grand parent, we get -better- at coding with practice and experience. As long as you are getting feedback in some way. The "practice" part might be in challenging your own solution. Rewrite it to go twice as fast. Or in half the code. Or not using that convenient language-provided data structure, or whatever. For the record I'd describe myself as an "excellent" coder (in my field) but my drumming as "enthusiastic". Competent amateur maybe, but far from "professional".