Coding is a trade. We don't have plumbing bootcamps. I understand the tech literacy angle, but placing people in $200k developer jobs is very far away from tech literacy.
Coding is a trade. We don't have plumbing bootcamps. I understand the tech literacy angle, but placing people in $200k developer jobs is very far away from tech literacy.
The people that don't enjoy coding can still force themselves to do it... But they will find it lack luster. They are doing something they don't like, aren't too good at, for less money, at a job that took forever to find, etc etc. They won't have the same experience.
There are enough people that enjoy coding to tell everyone else "yeah this fucking rocks", and that certainly draws people in, but a lot of people will be disappointed with it.
There is a significant cohort of professional coders who enjoy the comfortable lifestyle who write very bad code. In fact, I'd venture to say there are far more of those than people who don't much enjoy the work but still do it well because they have other priorities and responsibilities in life that make it necessary to maintain a strong work ethic.
It's amazing how many people in tech can't imagine that the same people that can grind med school or IB or big4 accounting or white-shoe law somehow can't grind the same way in tech. Newsflash: the majority of people in FAANG are grinders not "passion coders".
Personally I hate this job but I'm very good at it and it was either law school with my 98% LSAT or tech. I picked tech because reading and writing briefs all day seemed somehow worse.
Who else would go to bat? Everyone can immediately tell who the grinders are, but you have to hire sometimes anyway.
i work on compilers+hardware so that's the backdrop here.
here's a real hypothetical for you (ie it happened but i'm not going to use specifics): our internal proprietary compiler is spitting out incorrect atomics instructions that deadlock our internal proprietary multi-core DNN accelerator. this incorrect code is downstream of a big, lucrative, customer's (you know which one) LLM model.
now the question: is it the "passion coder" that will solve this or the grinder?
Also in day-to-day work you don't really research the best solution for non-critical systems and instead implement the first solution that comes to mind. It will mostly never be touched once it is in production.
Over time seeing systems you implemented working is the largest reward for me. You have forgotten how they work anyway, so bad code is less of an issue then. And if you do look it up again, you might be angry about your stupid past self. Meh, at least it means you know better now.
IMO this is the natural mood of all industries. We don't seriously expect that accountants love doing tedious work over Excel? Telling people to fall in love with work is not a healthy attitude. Only a small subset of people in any profession can fall in love with work. Everyone else must make their lives outside of work.
I really hope this is true again later this year or next year but every junior developer I know has been unable to find any employment. From my network of people that have lost jobs over the last 6 months:
20+ years experience: found a job the same month 5 to 20 years experience: found a job within 4 months 0 to 5 years experience: have not been able to find an entry level position
Of course, this is anecdotal and my sample size is only my network. But I've also seen a lot of people sharing similar experiences here on HN, Reddit, and Blind.
Seniors' resume-driven-development is (even if unintentionally) making it much harder for any newcomers to break into the field.
I see this sentiment all of the time and it just doesn't register. What new "frameworks" have you had to learn in the past 10 years beyond React, Typescript, and maybe next?
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.
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.
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.
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.
... 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.
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.
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.
There are apprenticeships and accredited training programs. Just because they're not called "bootcamps" doesn't mean they aren't the same thing.
Maybe plumbing just has the advantage of time. Its lost any sexiness it once had, if ever. And plumbers make good money!
Apprentice plumbers (1) get paid and (2) typically spend years as an apprentice, not weeks or months. This is for a career averaging $60-80k.
Contrast that with tech bootcamps that often approximate the cost of computer science degrees and promise (or intimate) that students will jump into six figure salaries.
It's not the same at all.
Also important to note that if you get paid (a proper wage) while apprenticing, you're quite lucky already.
There are plenty of occupations with apprenticeships where you do not get paid until you've got your foot firmly in the hallway past the door. For example, anything related to becoming a chef: You're going to start by washing dishes for months if not years and no you will not get paid beyond maybe minimum wage.
washing dishes is a minimum wage job for people without any training, and they are not learning to cook while washing dishes either.
>There are plenty of occupations with apprenticeships where you do not get paid until you've got your foot firmly in the hallway past the door. For example, anything related
A good friend of mine was an apprentice union welder when we were younger. His hourly wage was quite good at that time, easily comparable to my tech wage with around the same experience. However, because of the union seniority, whenever there were work shortages, he was the first one cut. He'd regularly spend 1/4 to 1/3 of the year unemployed.
The reason why coding pays so well is because it's IQ-gated in a way that plumbing isn't. An 80 IQ person can be a competent plumber but couldn't do well in most coding jobs.
Uh, what? I was with you until that part. Coding pays so well because the operating costs are low and the returns/profits are enormous for companies. Tech companies are "cheap" in a way other companies can't be. IQ doesn't really have much to do with it. I know plumbers who are technically brilliant and I know very well paid coders who regularly say things that make me question their intelligence.
Unrelated. Coding pays well because of the tight labor supply compared to the demand. Companies NEVER direct excess value to labor. Extracting surplus value from labor is sorta the whole deal with capitalism.
> I know plumbers who are technically brilliant
Also not relevant. The argument is that it isn't necessary to be brilliant in order to be a competent plumber, not that it would actually preclude you.
> I know very well paid coders who regularly say things that make me question their intelligence.
Do you think that's actually a good measure of intelligence? How are you normalizing it against the population, people you don't work with, and/or plumbers generally?
The question to ask is, "taking a random sample of persons having 80 IQ, half of whom intend to pursue a career in software and half who intend to pursue a career in plumbing, what is the relative success rate (for some reasonable measure of 'success')?"
The plumber who works on my house is easily as smart as I am. A successful software engineering career has brought me financial independence but I'm not particularly brilliant. Most of the folks I've worked with in FAANG aren't either. We're just normal people making a living during a very lucky period for a specific type of nerd.
There are figures starting on page 80 in this document that support this claim: https://gwern.net/doc/iq/ses/2002-hauser.pdf
2. a job doesn’t necessarily pay well just because it does require a high IQ. Scientists in a research lab, professorships, academic research all likely have more intelligent people on average yet don’t pay as well as software engineering.
3. The study still shows a routine and reliable difference in average IQ between those who work in manual jobs/trades and those who work in science/engineering
Software engineering in the US is well paid, yes, partially due to economic effects and impact of software in and of itself, but it is, especially in FAANG, a profession with a very high concentration of people near the higher end of normal and above in the IQ spectrum, which leads to implicit selection criteria regarding intellectual capacities in employment.
In any event there is more recent data (1992-4) that confirms that the differential is still present. This is maybe unpleasant to confront because it's self-congratulatory and has obvious class implications, but it's also pretty obviously true.
See page 89 / figure 12:
https://users.ssc.wisc.edu/~hauser/merit_01_081502_complete....
Most of the work we do is mundane. Lets not be dishonest.
And not be called in the middle of the night to fix broken stuff?
That last item might not apply so well to plumbers specifically ("my shitter broke!"), but it does to most other trades. :)
That is wildly incorrect.
This kind of snobbery toward the skilled trades needs to stop.
Edit:
https://quizlet.com/test/journeymans-plumbing-practice-test-...
A person with an IQ of 80 is not going to pass that test. He might get a job as a gofer, cleaner, general dogsbody, and "dude who has to carry all the heavy shit" for a plumbing contractor, but that doesn't make him a plumber.
Look at the chart on page 85
An IQ of around 80 or a little more is around the 25th percentile for a large portion of trades jobs.
There again, you (and they) are making the mistake of lumping all of "those people" together.
Someone with an IQ of 80 could probably be a decent drywaller or roofer, maybe a mediocre framing carpenter or painter.
A good plumber or good electrician?
Not a chance in hell.
You will be in a world of shit.
The US Army currently rejects applicants who score lower than 31 on the ASVAB (roughly 92 on the IQ scale, about 30th percentile). I’m pretty sure there are Army jobs that can be done with less need for intellect than that needed to be a plumber.
I don’t think that the lowest 10% of the population is generally capable of being a plumber. They are capable of doing some of the work done by plumbing companies, but the plumbing code is lengthy, in large part because people’s lives are literally at stake and the actual plumber (the license-holder) has to keep that straight in their head, apply the relevant parts to the varied job site requirements, turn blueprints into working plumbing systems, etc.
Plumbing is a lot more than remembering “shit flows downhill, don’t lick your fingers, Friday is payday.”
Sample plumber exam: https://www.tests.com/practice/plumbing-practice-test
Pretty rich by someone with a comment history littered with AI delusions:
> AI will largely replace software developers very soon, along with most professions.*
That doesn't strike me as a very intelligent take.
My opinion is also shared by a lot of intelligent researchers (like Hinton). Is he deluded, as you put it?
No, they aren't.
> Is he deluded, as you put it?
I don't know what each for your apostles has said. But anyone who claims that with just a hyped up LLM behind them is.
- Writing a screen saver on Window NT 4. Starting the screen-saver blue-screens the computer. Rebooting + loading Visual Studio takes several minutes. After several days of this, it turned out I forgot to zero out the structure you pass into every Win32 Create function.
- Was assigned to modify some old Fortran code (never claimed to know Fortran, just got the assignment) a long time ago. Got weird compile errors, couldn't figure it out, finally just started taking things out of the line until it worked. Found out it failed if I had a line of over 70 characters. What?! Turns out some of those old things of Fortran were still around...
- Spent a week tracking down why my C++ code was my crashing, due to a variable magically changing values. I was using Curl, and one of the calls requires a pointer to long and I passed a pointer to int, and the compiler didn't complain. Got so frustrated I ended up stepping through the assembly code to see what was happening (which is how I discovered it). Not fun. (Also, the constant recompiling and dockerizing desoldered the nvidia chip on my 2012 MBP, so this bug cost me a lot of money for a new laptop, too.)
- 3D meshing algorithm isn't working. Narrow it down to a small enough mesh to print out vertices before and after in a tractable quantity. Stare at changing outputs long enough to identify the problem.
- Emscripten WASM wants to load async, but exported global function uses the WASM to do work and should not have to know the details of how the WASM gets loaded. Coerce that into working for the browser. Also needs to work on Node 20 (limitation of 3rd party package) which doesn't have fetch(). But webpack for the browser happens to convert modules that use a module with dynamic import to dynamic modules themselves, even if the import is never called due to a platform check, which leads to 'import { func } from "..." resulting in func = undefined. Aargh.
That's not even counting the reverse-engineering of OS function requirements due to incomplete documentation, API functions due to almost no documentation, and problems due to causes you didn't even know existed.
I wouldn't be surprised if actual software developers turned out to be a minority among the people who write code as part of their jobs.
If you are at all familiar with The Trades, you know that they have the apprenticeship system, which is a hell of a lot more intense than any bootcamp.
My plumber has a nicer house than I do.
The teach people to code movement, for whatever reason, portrays itself as being something everyone can and should "break into" in 10 weeks.
edit: Just realized the conflation between "get hired as a software developer for six-figures" vs literally "make learning how to code accessible for all". The latter makes way more honest sense.
I'm a big believer in the apprenticeship system, but I have found it to be profoundly unpopular, with software engineers (in the US), as can be noted by the reaction to my comment.
I consider my software engineering to be as much craft, as it is, vocation, and I had some good mentors.
He has his own business. He's a one-man shop, and damn good.
It is why we have chronic shortages of expertise in some software domains even though they are extremely well paid as specialties.
Take an intro course of classroom/lecture, then sign on as a paid apprentice and continue your classroom-style education alongside the practical/on-the-job training until you’re fully licensed.
Other trades have similar structures as well.
Low income neighbourhoods used to have a higher use of the Hays manuals for car repair. (this is something I read long ago and and I don't know if the manuals are still being published.)
Very few who learned to change their own oil and filters went on to become car mechanics.
I used to borrow them from the library when I was still working on my own car. I'm sure they were some of the most borrowed items.
This isn't a moral argument btw, i'm making sure of it because I used to be really into edtech [1]. There's no money in education, only its commercial outcomes. Education for learning is a public good.
bootcamps cannot deliver placement at scale because the premise is flawed. anyone and everyone cannot learn to be a professional coder in 10 weeks.
Anyway, so the coding bootcamps spread like wildfire because they implicitly or otherwise promise high paying careers that anyone can do, all over the internet, in 10 weeks, for a fraction of college tuition.
Not sure if Women who Code made any such promises. There are plenty of lower-paying coding jobs or jobs that involve coding as a useful skill, and a bootcamp can help with that. Or, maybe someone has the CS background but not the practical skills.
Anyone can cobble together more or less working instructions, but doing so correctly, eh.