Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Stop patting yourself on the back. Seriously.

Because obviously, no other job requires critical thinking and learning continually. These are "skills" that are in no way related to programming, and do not explain an inclination towards CS rather than any other science or the myriad of other academic disciplines. And even outside academia, not every job is just that of the "sheeple" who "mindlessly" "slug away" in their "boring" and "thoughtless" jobs.

If you do a job for a long while, chances are you will have to adapt to new developments. Take craftsmen for example. Every year, new areas become part of their trade, from new building materials to new requirements, from new technologies to new standards. The electrician of today might also have to deal with laying network cables, with photovoltaics etc. Carpenters deal with new materials for insulation, new structural possibilities and requirements etc. etc. Secretaries and office workers moved from typewriters to PCs, from OS to OS and often from program to program.

I know it is particularly popular in IT to foam out of the mouth about the "clueless" average users who do not get the simple feature X or Y of a given software, but at the same time, the same people will happily admit their own inaptitude in many other professional areas.

There have been numerous threads on pg's "founders' accents" remarks, and there, all of a sudden, it is the most normal thing in the world that not everybody finds the same things equally easy, important or possible. Yet when it comes to programming, there obviously exists no such thing, rather, there are naturals, those gifted enough for this divine trade, and then there are all the others. The average user, with stress on the average as opposed to the extraordinary.

I am sorry that this rant is directed directly at you, but I find the sheer arrogance of your two one-line remarks baffling.



Arrogant, maybe, but there is at least a kernel of truth.

I've done a lot of trades. I'm not a master level craftsman or anything, but I can build a house to code using just my current knowledge. The only thing I've never done is masonry, but I'm told it's not too tough. So that includes carpentry, electric, plumbing, fine wood working if you want things like molding and wainscoting, and more. I'm a very good but not quite great artist as well.

None of those things is as difficult, conceptually, as programming is. You live in a bubble surrounded by very smart people, so I honestly think you overestimate people's capacity for abstract thought. I'm confident that pretty much any programmer could learn to be a plumber if they cared to, but the reverse is not true.

And I'll go a step farther and say that while "easy stuff" like basic web development is out of the range of most people, the harder stuff like algorithms, game engines, embedded systems, is in another universe. No amount of training could help for a very large proportion of the population.

It's not popular to say because we like to think everyone's a special snowflake with some predetermined number of "ability points," just allocated differently, but the bell curve is real and some people just can't do what we do.

The reason we are currently enjoying an alternative employment universe, insulated from the rest of the economy, is that the mass of unemployed people predominantly couldn't break into this field if they wanted to.

If they could, they damn well would.


>The only thing I've never done is masonry, but I'm told it's not too tough.

My wife paid a contractor to show her how to cap a foundation. He spent two hours with her, and we saved $50k+ by doing the rest of it ourselves. So no, not too hard.

We don't have enough of the rest of the skills you enumerate to think I could build an entire house to code, but your analysis is spot on.

As a game developer/embedded systems engineer, I also agree that there are tiers of development complexity. Even within these fields there are clear levels ability.

Some of the stuff I do on a daily basis is well beyond the typical HTML/JavaScript/PHP developer -- I spent years learning to be a good low-level developer and honing my skills, not just a few hours. And I've directly observed people who were plenty self-motivated who run into an "abstraction wall" that they can't get past; I've even spent hours with some people trying to come up with ways to help them understand, even though no one ever did that for me.

From the other side it's extremely clear that there are tiers of developer skill levels, and that even the bottom tier is out of reach to much of the population.

>It's not popular to say because we like to think everyone's a special snowflake with some predetermined number of "ability points," just allocated differently, but the bell curve is real and some people just can't do what we do.

I think the difference on "ability points" is that, by spending concentrated time on learning, you can actually earn extra ability points. Just like there aren't "muscle points" that are distributed differently between people: You exercise your muscles and they get stronger. "The brain is a muscle" isn't entirely a bogus concept.


Totally disagree with that.

As someone who was once a non-programmer but became one, and as someone who as taught and witnessed former 'dumb guys' as you're trying not to verbalize transform into productive programmers, I first-hand experience that contradicts what you're saying.

The data from Khan Academy also suggests there's no 'dumb people' out there. Time and again, they've found formerly incompetent learners to catch up and often exceed the class. (Salman Khan himself taught his niece from behind the average level grade 8 to university level within 2 years).

The real culprit is a bad education system, and we should applaud the pioneers attempting to destroy the failed system.


I get the point but then again is demand so high or just in SV and other tech hubs?

I travel a lot and the situation for devs can be very different depending of the context. In LATAM most devs are making less than other even simpler professions and chump change compared to the guys on the valley.

At the same time I meet devs in the midwest that don't get a lot of six-figure offers and have to compete for a good steady job.

99% of the IT industry in silicon valley are simple web apps that are becoming increasingly easy to develop due to better tools and standardization, is no longer like in the '70s and '80s when the actual silicon being made there couldn't be made anywhere else in the world.

But only in the valley, the alley and other such places you have investors putting the money that creates this unprecedented demand for IT workers, anywhere else its business as usual except in the third world where you have IT outsourcing companies popping up all over the place with the age-old business method of paying jack-shit to the local workers while billing first-world companies just a tad less than what first-world developers make.

If you were a developer in a third world country your only chance at a six-figure pay is to move to the first world where there are limitations due to visa and immigration problem, so for a lot of people its not about leaning how to code because they already can. Its about getting to the valley, and even for someone in the US moving to Nocal can be difficult depending on his/her situation.


My comment did not make a direct comparison between a craftsman and a programmer in terms of absolute difficulty and height of entrance, and neither do I claim an oblique equality in terms of capability for everybody. What I do question, however, is the grandparent's insistence that critical thinking and continues learning are what makes a programmer special.

I agree that more mathematically inclined people will be better programmers when it comes to harder areas, however, that is a question of ability and preference, like language or manual skills, not one of a fundamentally special disposition. Somebody who is mathematically inclined might become a banker, or a programmer, or a physicist or any other profession out of a myriad of possibilities. The same, however, goes for any other form of abilities and inclinations, somebody who is "good at languages" might become an author, PR person, translator or whatever else he/she wants. Somebody who is manually inclined equally has many different professions to choose from.

None of that is something I fundamentally question. The original article, however, makes a good point when it explains why developers are in a relatively good position: People will go were there is money to be made. That goes for language people (e.g. translation on a state-level), for manual people (e.g. mechanic on oil rigs or in mining) or mathematics people (e.g. programmers or finance).

Not everybody can or will become a developer, but there is no magical ingredient that keeps people from going into software who are capable to do so but might choose other jobs for a myriad of other reasons.


I'm not convinced by either side. But I find the article reasoning totally hilarious: be careful with that supply flooding that has never happened, even with monetary incentives, but that could happen any moment!

To be honest, I think (and that's a very personal belief based on personal anecdote) that more people can learn programming than it's thought. But it needs much hand-holding, determination and means than it's reasonably expected.

So (again: a gut feeling, so take it FWIW) the barriers might not be in people's brains, but do exist anyway. And the article does nothing to disprove the common wisdom (IIRC backed by some empirical evidence) that only so little people can learn programming.


Smarts required for trades IMO from top to bottom (source: finishing a new construction this week on time and on budget(ish) as project manager who knew nothing about building 8 months ago):

1. Carpenter/Sparky/Concretor/Plumber (different skill spaces, similar skill levels required, if anything electric is harder as it's the most likely to kill you and requires high level maths) 2. Tiler/plasterer/brickie/painter 3. Floor sander and other unpleasent menial trades.

So the biggest difference between construction and software eng is that for a construction project it's relatively easy to specify a project such that outcomes are deterministic. Any significant software project will have non-deterministic outcomes. Good tradies use the reduced cognitive load caused by certainty to be fast and efficient, and to have incredible levels of attention to detail. In software to achieve similar levels is either impossible, or requires two or three stabs at the same problem to get it right (and minor deviations from the problem space cause extra confusion).


> The reason we are currently enjoying an alternative employment universe, insulated from the rest of the economy, is that the mass of unemployed people predominantly couldn't break into this field if they wanted to.

Art major, advertising minor, employed as a Software Engineer right here.


That does not contradict his statement. The reality is that programmers need to have above average intelligence, at least if we expect something more than just formulaic approaches to software problems (and if history teaches us anything, it is that formulaic approaches will likely be automated at some point). What you choose to major in in college is not indicative of your intelligence.


> What you choose to major in in college is not indicative of your intelligence.

I agree with the sentiment you're trying to express, but there actually is a general correlation between intelligence and what one chooses to study in college. For example, it would be difficult to fault a spectrum of majors with physics on one end and psychology/sociology at the other.

Title: "IQ Estimates by College Major"

Link: http://www.statisticbrain.com/iq-estimates-by-intended-colle...


You aren't the mass of unemployed people.

I, too, find myself assuming that if something is easy/achievable for me, it would be easy/achievable for anyone.


> Stop patting yourself on the back. Seriously.

I'm not. You obviously have past bias that's caused you to read far too much into what I said.

> Because obviously, no other job requires critical thinking and learning continually.

Did I say that... NO. Your entire second paragraph is a nonsense rebuttal to things I never said.

> If you do a job for a long while, chances are you will have to adapt to new developments.

Very few traditional jobs, none of the ones you mentioned, are forced to obsolete their knowledge as quickly as programmers.

> I am sorry that this rant is directed directly at you, but I find the sheer arrogance of your two one-line remarks baffling.

I find your foaming at the mouth about things I didn't say equally baffling. Take a step back, calm down, and if you still feel it worth discussing, respond to what I actually said rather than what you feel I meant.

If programming is the new auto worker, and it can make so much money absent formal education and professional requirements/certifications, then there's obviously something different about it that prevents the masses from jumping into the field.

I've talked to and worked with many people outside the field in my life who'd love to make that kind of money and my personal experience leads me to two main answers. It's too f'ing hard, and I can't sit in front of a computer all day so I won't even try.

I'm not being arrogant, nor patting myself on the back. There are far harder jobs out there that require far more critical thinking, but those jobs in general aren't available to the typical person because they require very particular educational paths as they are not meritocracies. Anyone could potentially sit down and learn to program at home and enter the profession, it's very blue collar in that way. You don't need a degree or a license, you just need the skills.


What's your problem with his first one-line remark? Have you not looked at attrition rates for CS programs across North America? Missed all the professorial "why are all our students dropping/flunking out" laments?

We've seen the CS enrollment boom cycle repeat at least twice now. Graduating class sizes remain relatively constant while attrition rates skyrocket. Enrollment is pretty objectively a terrible measure of future software engineer/developer supply.


I do not disagree with you entirely, but I think what nuances the statement that 'programming is hard' is that this doesn't mean that other jobs aren't hard in other ways.

I believe programming does require above-average critical/logical thinking and continuous learning. On the other hand, it often requires less social thinking or management.

I have no problem saying that I'm a better programmer because most people are just sloppy and not as inherently curious and inclined to love clear, discrete problems and solving them. It doesn't make me arrogant, because I have huge amounts of respect for (some of) the project managers above me who have to deal with complicated schedules, higher-ups fucking up their shit, and managing prissy developers, designers, and whatnots who suck at communicating and collaborating.


I share your antipathy for the comment, but not bafflement. How long have you worked in software dev? So many devs are like that.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: