5 ms·
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 c
by pmichaud 13y ago
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.
- rmk2 13y agoMy 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.
- narag 13y agoI'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.
- unono 13y agoTotally 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.
- SomeCallMeTim 13y ago>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.
- bennyg 13y ago> 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.
- WalterSear 13y agoYou 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.
- betterunix 13y agoThat 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.
- lutusp 13y ago> 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-college-major/ http://www.statisticbrain.com/iq-estimates-by-intended-colle...
- JVIDEL 13y agoI 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.
- singingfish 13y agoSmarts 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).