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.
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".
Firstly, playing with others is great fun, and a great way to learn and improve. Not to mention a good motivator. Like you, most of my improvement has been in that context.
When I was just starting out we had "bands" of beginners (guitar, piano, bass etc) and there was a sense of progress learning just one chord or riff etc.
So -how- you learn matters. Equally "starting young" is a common wisdom, but most of the people I play with now "started old". They started because -they- wanted to play, not because someone else wanted to play.
I think method also matters. In school we "learnt" recorder, but it started with "reading music". That's like explaining virtual methods in object orientated design to someone who can't write a for loop.
For both activities we learn better when it's fun.
... 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
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.
I never said it did. I mean, where do you think years of expertise comes from? It’s built one day of programming at a time.
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.
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.
Regular, yeah, I'll give you that. Any skill gets better with practice.
I think it depends on the instrument, the type of music, and the ensemble.
Punk band? Sure. Symphony orchestra? Probably not.
Which isn't to say that one is objectively better or worse than the other. Lots of people enjoy both.
I view this thing as a "skill-reward" ratio. If you're a mediocre guitarist and your band has sold platinum records, you're a complete champion. You translated X mechanical skill to Y real-world impact and success.
If you're a superb technical guitarist and nobody listens to your music, you have nothing to contribute.
People over focus on the minutiae and lose sight of the thing itself. Musicianship over music.
I was one of those kids you’re talking about, who learned programming on my own from about the age of 9. That was 30 years ago, and I’ve gotten a lot better at it since then. Sometimes I talk to people who have less experience than I do, and I’ve seen the life go out of peoples eyes when they think they aren’t as “talented” as I am. Hah! You see me now, but you don’t see the 30 years of work I’ve put in to get here!
I think this whole “neophytes can do anything” philosophy of yours is toxic, because people assume that if you’re good at programming, you were born good at programming. If they weren’t born like that, they feel inadequate and attack themselves.
You’re wrong. That’s not how it works. It’s great that someone can throw together a website in your first week of a bootcamp. Welcome to the starting line. Maybe that’s enough to start a successful business. But that’s not a sign you’re an expert yet. And thank goodness for that! As piano is teaching me all over again, watching yourself improve slowly over years of practice is a truly wonderful experience.
An expert at programming can make a website - sure. Or they can edit the code in their web browser. Or write their own webpack, or react. Or invent a new programming language and compile it to webassembly. Or write an http2 proxy to make their page go faster. Or 1000 other weird things. How cool is that!
Why on earth would you make expertise into a dirty word? Seriously - what’s wrong with people.
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.