Hacker News new | ask | show | jobs
by matthias509 1544 days ago
High salaries for tech workers are not a new phenomenon. So if programming were truly a skill a large number of people could just “pick up”, it would have happened already.
1 comments

Yep. Programming is really hard.

The idea that anyone can "learn to code" is a work of fiction. Nobody says that anyone can learn to do surgery, become a fighter pilot or become a barrister. I couldn't do those jobs. And lots of people couldn't do my job.

Telling people that effort is the only thing stopping them getting a 6 figure software engineering salary does real harm. Its notable that most people who say this aren't themselves programmers.

Its even true amongst programmers. I've struggled to learn modern deep learning. And lots of people here on HN struggle with "leetcode problems" - which is the exact sort of work I can't get enough of.

We aren't made the same. Software has been a highly in-demand skill for the last 2 decades, and I bet it'll stay that way for at least the rest of my life. Well, at least until AI gets good enough.

I know people that transferred from psychology degrees to programming jobs strictly through being self taught and they're making just shy of six figures. I know people who got web development jobs right out of high school.

Programming is infinitely easier to get into than any other high paying field. There's no standardized exam or certification board keeping people out. The problem is people need time to study it, and a lot of big companies very much have old boys networks thriving within them. Look at how many people are handed money to make a startup a year or two into Stanford, then hire a bunch of people who also went to Stanford or MIT, then put up 8 stage interviews spread across weeks for anyone who tries joining the company later.

It's honestly weird how some programmers get uncomfortable when it's stated that, yes, loads of people are self-taught. HN has nearly daily blog posts about people who studied in middle school and started a small company in high school and did fine for life, or someone who did a coding boot camp at 30 and got a fine job in a couple months after having zero experience beforehand. I mean, HN even gets literal kids (14 year olds) posting their apps--and sometimes they're actually good.

Nobody is doing that with the medical field or flying. Not everyone is going to make a world-class search engine after a few weeks in their basement. But a low double digit percentage of people could do programming in a workplace setting with good management if they had the opportunity to study. I had friends who got straight Ds in high school who are doing just fine with programming. They won't top leetcode charts, but they can make stuff.

When you take an intro CS class, just like Chem 101, you see a huge separation of people who "get it" from those who don't in the midterm exam score distribution. I realize you may know some diamonds in the rough who emerged later, but if the average residential college student with the time, lack of other obligations, ability to pass admissions to the school, and the mental suppleness of his age can't learn this stuff like a breeze, I don't think you should so easily dismiss the difficulty barrier.

I think also if you could practice medicine without a license and call yourself "doctor", you'd see a LOT more self taught people doing that who have maybe the capacity of a medical assistant, the brighter ones perhaps performing as well as a junior PA.

> Programming is infinitely easier to get into than any other high paying field

Being an average programmer is indeed easy compared to many skilled jobs. In some areas people are called "senior" after doing a 6-months bootcamp and landing a job copypasting stack overflow for 3 years.

Being a good software engineer is a different thing and takes endless learning.

We aren't talking about what it takes to be a good one though, just to be one. Your last sentence is true of literally any work or skill one chooses to master. And choosing mastery isn't required in any of them, there are other optimizations available.
I would pick different examples. All the ones you mention require access to some special resource like an airplane or cadavers, so you basically can't learn anything until after you get past the gatekeeper.

Computers are cheap enough for far more people, and you can learn without someone's allowing you to.

Having said that you do get the sense that some people will not be able to code regardless of access. I even hear about CS graduates who basically decide having learned a bit that it's not for them. This is somewhere between "can't be done" and "don't want to".

We can flood the world with more literature graduates than will ever be needed, but it's not the same for tech skills, somehow. I'm not sure it's intelligence, that seems to just punt the issue into "what is intelligence". But it's definitely the case that you get this sense that some people reach a point where they can dive into technical issues without limit (you see their hobby projects here every few days) and those who either can't or won't.

If you work outside of the US you'd probably need to spend a decade or more to hit a six-figure salary; you certainly won't walk into it right off the bat as a junior developer. It will likely still be pretty well-paid compared to alternatives, but the expectations have to be managed and your options might be a bit more limited until you can look for senior positions.
Disagree. Not only can anyone program. But anyone can do surgery, become a fighter pilot and become a barrister.

It's the same thing as how anyone can learn mathematics, algebra, biology and any of the typical subjects you learn at school. You struggle with deep learning only because it's a paradigm shift. It's too different from traditional programming so the initial learning curve makes it seem like you're incapable. Given enough time anyone can surpass the hump and become good at deep learning.

That is not to say that these skills are trivial. There must be a lot of training time to achieve these skills. But make no mistake... anyone can do it.

Your comment is typical of people with an average or high IQ.

There are people whose IQ is so low they can't even be legally enlisted in the army (the ASVAB test the Army does correlates with IQ).

Some people won't have the same learning ability you have.

I also thought that everyone could learn to program and organised bootcamps and education for developers (for free) - it turned out only a fraction of the people I've met would actually manage to learn some basic programming and a fraction of those people would move on to become a programmer.

As a mostly private teacher of mathematics with 7 to 10 years experience for both, children at schools and adults at university, and both, individuals and groups, and both, those who struggle and those who do not, I'd like to share my narrow experience and disagree.

Most people I worked with struggled with something entirely different than the actual content they are trying or forced to learn. I am certain the biggest obsticles are stress, fear and and hopelessnes. And often not towards the methematics, but rather something entirely different. E.g. issues in the family, fear of the consequences of bad grades, and no hope regarding their own future, regardless of whether they learn or not.

I expierienced some challenges as ADHD and expierienced them as somewhat orthogonal. And definitely additionally challenging for me as a teacher. I also expierienced people who did struggle a lot, independent of anything I mentioned so far. So I am sure, there is differences among people (you may measure that in IQ or whatever, I prefer not to). But for most people I met they are not the problem.

Appreciate your insight. I believe you're speaking accurately from your own experiences, but I do have another anecdotal countering viewpoint.

Like many on HN I went to a top engineering school. there I saw about 2/3 of my colleagues drop out within the first two years. At least half of them worked tirelessly and efficiently to pursue their goal, and still failed. This was a large public school that will admit basically everyone with a pulse into engineering, with the expectation most will fail out as unfit and filter into some of the programs my college was less known for.

I did not have a particularly exceptional upbringing, and went to a middle of the road country school without any special preparations that would advantage myself over these other middle-class white people I saw. I'm not saying this to brag, because no doubt many of these people are far more successful than me in other fields (one I know went on to become a doctor for instance) but there is definitely something at play that different people are 'wired' for different tasks. I could almost sleep through much of the engineering curriculum and remain near the top while I saw many smarter people than me struggle tirelessly with engineering; something else was going on in our minds.

Engineering programs especially in top schools are way too hard for what's required to learn programming. And by top school I mean a top school that admits less than 10% of applicants. These programs are way more challenging than normal. Failing one of these programs does not mean you can program.

Also when I say anyone can do it, I mean anyone with around an average IQ or above. Obviously if you're mentally challenged it's a different story. Obviously new born babies don't have the IQ to learn programming.

I've went to schools where they admit anyone with a pulse and I've also been to actual top schools that are highly selective. I can tell you these programs that admit anyone feel significantly easier because they are. Doing well in one of these schools is not an achievement. I remember coming out top of the class at these schools simply studying for a test the night before.

But the reasoning as to why people fail in these "easy" schools is not what you think. It's exactly what the other replier said but more. Learning programming is not easy, and many people don't have the discipline or the study habits necessary to achieve it in a class room environment as well. They may look like they're studying hard... but a good number them aren't doing the necessary studying to succeed. They may not even be interested in programming. But make no mistake, if you make the curriculum longer and easier or if these people spend the time to grind, most people will succeed in learning programming.

This was my experience as well. Another interesting point here is that a top programmer can singlehandedly do tasks that would take a dozen or a hundred regular programmers working together.

I'm confident that if you took a super-rare race condition in a web service and set me to figuring it out in parallel with a team of a few dozen random web coders off Reddit, I'd figure it out first

With factors like that at play you really can't commoditize software engineering. If all the local companies decided to put the squeeze on workers, new companies would spring up, poach the best workers, and crush the old companies. It's happened before, it's happening now, and it'll happen again.

> But make no mistake... anyone can do it.

We have all seen the professionals in action…

There may be more people who can do it than one would instinctively think, but it doesn’t take long on a helpdesk or in any public facing role to conclude that many humans are maxed out with tasks that really aren’t that hard.

Maybe anyone is too broad. I mean anyone Normal can do it.
aptitude is a real thing and interest is another thing. Then there are other externalities like access to resource etc.

Not everyone can do everything, maybe due to lack of aptitude or interest.

So in essence, "anyone can do anything" is just an empty feel good mantra

No, not anyone can do anything. I never said that.

I said anyone can master the subjects mentioned above. Including programming.

These subjects are so easy that anyone can do it.

If I said anyone can master chess and play it on the level of a grandmaster, I'd be wrong. But for just learning to be an adequate programmer or playing chess adequately... anyone can do it.