
Ask HN: How to reconcile “teach everyone to code” and “only hire the top 1%”? - ern
The Brexit crisis has got me thinking about inequality more broadly.Technologists have politicians in their thrall, and are not afraid to throw their weight around promoting curriculum changes in areas like math, and to also push the concept of &quot;every child must code&quot;. Yet these same technologists claim that they hire a small percentage of job applicants for their companies.<p>It&#x27;s clear that cognitive ability correlates with coding ability, and the idea of the 10X developer is widely accepted in our world. As a broader industry, we practice shameless elitism and seem to be making real-world software development more inaccessible to non-experts (apart from child-level development environments). As professionals. we deride RAD tools and &quot;drag and drop&quot; development, and show geek love for ever-more abstract modes of thinking like Functional Programming that a small percentage of working developers, let alone the general public, will grasp.<p>What&#x27;s the end-game? Are we trying to create a new cognitive elite? Is it a labor lottery so that the small percentage of kids who are turn out to be good at coding will become professional programmers? Are we willfully blind to the fact that human talent is not evenly distributed? Or is the lack of accessibility (&quot;easiness&quot;) just a blind spot that we have yet to address?
======
mancerayder
I don't think those things need to be reconciled.

Not everyone hires the top 1%, only those that can afford it. And how many
people consider themselves in the top 1%, anyway? Do you? I don't. The hubris
of the idea of the 1%. That's what the hedge funds tell themselves when they
put you through an 8 hour-long interview where you're asked to code sorting
algorithms on a whiteboard. That they're seeking out that 1%. Larry Wall and
Bjarne Stroupstrup? Okay, 1%. 25 year old comp-sci / top of class engineer
student? I don't know, possibly? Okay, putting aside the snide remarks: 1%
selection is not scientific, as we all know from hiring interview experiences.
And moreover, are the people making the most money doing it writing software,
or are they somewhere else in the IT company?

But to answer you, why shouldn't kids learn coding, it's one more notch on the
belt. Takeaway: people have different interests, inclinations, talents and
thoughts. For a young kid, you teach them the basics, you see what sticks. No
reason why coding can't be taught young, even if it's part of a math
curriculum. To be honest with you, I sucked in math, but perhaps if I had math
in the context of a computer program, it wouldn't have been so bad.

Teach people coding. Also teach them to read the classics, do pullups, cook,
what happened in the past, how old the rocks in the Earth are, what's in the
oceans, what's outside of Earth's atmosphere, and everything else that we feel
is important for a human being - not a future worker - to learn.

~~~
michaelchisari
It's not about the companies that actually hire the 1%, it's a matter of how
many companies claim to hire the 1%.

And more importantly, how come those who claim to hire the 1% never pay
anywhere near what might be considered 1% salaries?

I've had small startups talk highly of how they only hire the best, the 1%,
the 10xers, etc., then put me through five or six interviews, including the
ever-so-common 8 hour white board algorithm test, only to make an offer only
marginally higher than I could make as a highly skilled blue collar tradesman.

It's fine if a very select few companies with lots of money decide to have
insanely high standards. The problem is when the industry thinks they all
deserve to emulate those companies hiring processes.

~~~
kooshball
There are certainly places that will pay top dollars to hire the absolute top
talent, think Putnam or acm winners. It just won't be a startup. It should be
obvious why: startups don't have the capital or need to hire absolute best. It
will more likely be a hedge fund.

As a whole these startups with ridiculous expectations will have to face
reality or suffer the consequences of slow hiring. They will lose in the long
run.

~~~
michaelchisari
Most likely they will. Maybe they won't, because part of the process is a
certain indoctrination that their employees are more than just talented or
clever, but are actually _special_. And you can convince an employee of a lot
of things if you start by convincing them that they're special.

Mostly, though, I worry about the ripple effect that's been on the industry. I
have friends who are in the medical field, dealing directly with surgeries,
childbirth, life-saving (or potentially ending) drugs, and they're taken aback
by the kind of interview requirements that so many tech companies have. A
Nurse Practitioner can get a job in an ER in a heartbeat, but a front-end
developer building React components needs a collective two full days of
interviews? Something about that just doesn't make sense to me.

~~~
PeterisP
A big difference is the amount of formal certification.

A diploma from a med school and associated residency is sufficient to expect
that the person knows their speciality and is able to treat people from day
one.

A CS diploma and related working experience is _some_ indication, but (sadly)
often doesn't ensure that the candidate is able to code their way out of a wet
paper bag and will be able to perform reasonably well (not 10x well but 1x or
even 80%) after a month or two of on-site adaptation.

Our industry, unlike many others, doesn't have a good (centralized?) way to
approve qualifications, so each company has to verify on their own, which
takes quite a lot of time and expense.

~~~
michaelchisari
I agree, that's a big difference.

That said, the dangers of hiring a medical professional who screws up, versus
an app/front-end/back-end developer whose code is sub-optimal, means that our
industry should hire a lot more easily than it does, and simply let go the
employees which underperform.

I think the problem actually doesn't start with hiring, it starts with the
kind of "workplace-as-family-and-friends" culture that makes firing so taboo.

~~~
PeterisP
Firing is a very important skill for any line manager or business owner. It's
not pleasant, and it's complicated in various ways, but not doing it properly,
not doing it as soon as appropriate or even not doing it at all is a very
expensive failure that hurts everyone involved. You either learn to do it
somewhat properly and timely, or you're not qualified for the job yourself.

------
danso
Why does teaching programming have to result in a programming-only job? That's
like saying the end goal of teaching literacy is for students to become
professional writers. Or that children should be taught to touch-type so that
they are eligible to work as transcribers.

~~~
ern
Because it's marketed to parents and governments as "skills for the future" or
"necessary for a modern workforce". Yet the "real-life" programming world in
its current form is both elitist in attitude and genuinely difficult, and a
miniscule percentage of kids will actually write code for work (barring a
genuine effort to make it easier, and for businesses, developers and
consultants to change their attitude to "amateur code").

Literacy is not vocational: it can be applied in many contexts-everyone uses
reading all the time. Arithmetic is also plenty useful.

 _Or that children should be taught to touch-type so that they are eligible to
work as transcribers._

Touch-typing isn't widely taught anymore, is it?

~~~
PhasmaFelis
> _Touch-typing isn 't widely taught anymore, is it?_

If true, that is deeply bizarre. Touch-typing, much more so than programming,
is actually useful in basically any non-menial job in the modern world. It
ought to be as basic to the curriculum as math and reading.

~~~
crgk
I think they just call it "typing" now. I had to look up what "touch typing"
means. There isn't really an alternative; a person has to know qwerty to type,
even swiping on a smartphone.

~~~
PhasmaFelis
The alternative is hunt-and-peck, aka "look down at the keyboard, find the key
you want, and poke it with your index finger." I started programming at age 7
and wasn't taught to touch-type until 11 or so; you definitely don't need
formal QWERTY training to input text at a pretty rapid rate. It's still not as
fast as touch-typing, though, and being able to type without looking at the
keyboard is a huge advantage.

------
Animats
_As a broader industry, we practice shameless elitism and seem to be making
real-world software development more inaccessible to non-experts. As
professionals. we deride RAD tools and "drag and drop" development, and show
geek love for ever-more abstract modes of thinking like Functional Programming
that a small percentage of working developers, let alone the general public,
will grasp._

Yes. Look at what happened to HTML, which was supposed to be simple. Up to
HTML 3.2, there were good WYSIWYG programs such as Dreamweaver which could do
a good job of page layout. Then came CSS, div/clear/float layout, vast amounts
of Javascript, and a mess so complex that HTML became only an output language
for content management systems. Yet most of the pages look about the same.

The complexity of simple business applications has increased substantially
since Visual Basic, yet most of them aren't doing anything that profound. (I
occasionally point a finger at Soylent, which built an elaborate IT
infrastructure for a site that averages about two sales a minute.)

The annual web infrastructure fads aren't helping. Some of the biggest sites
run on rather vanilla infrastructure. Instagram runs on Postgres. Wikipedia
runs on MySQL with Ngnix caches. Do you really need NoSQL?

~~~
reustle
> became only an output language for content management systems

Sure, if you want a complex website and crm. HTML is just as easy as it ever
was, if not easier with some of the cleaner html5 tags

> I occasionally point a finger at Soylent, which built an elaborate IT
> infrastructure for a site that averages about two sales a minute

Average isn't necessarily what matters, but peak. Do you think Amazon.c om
needs to design their systems around avg load, or potential load a few weeks
before Christmas?

Your complaints don't really hold water.

~~~
salemh
His complaints relate to non-technical folks learning to code. In this
respect, the HTML note is valid. You, a technical person, understand the
nuance, but "easier then it ever was with cleaner html5 tags" won't resonate
for folks trying to learn.

------
devastator38
I think the end goal is to get more programmers out there so they can bring
hiring costs down. That's what happened to other well paid professions (ie law
and pharmacy). The other strategy is to bring in more immigrants.

------
corysama
It's easy to get cynical about business and politics. But, sometimes people
push for ideas _not only_ because they can exploit the results, but also
because they might be good ideas for lots of people in general.

1) It is generally expected that the skills involved in software development
will be increasingly important for high paying employment and the general
advancement of the state of the world. That's not a claim that being
specifically a "Software Engineer" is important. But, that already "Nearly
half (49%) of all jobs that pay more than $58,000 require some coding skills"
[1] The kid might grow up to have a job that involves analyzing a lot of data,
or running a lot of simulations, or designing something that requires more aid
than a pen and paper can provide (ex: synthetic biology). Either way, that kid
is going to end up doing a lot of work that looks a lot like software
engineering in practice --even if it doesn't say "That Kid - Software
Engineer" on that kid's business card.

Even beyond "some coding skills", it is recognized that the systems thinking,
systems design and systems architecture that is inherent in software
engineering is increasingly important for highly-paid technical work moving
forward.

2) Very few actually "hire only the top 1%". If that actually was the case,
99% of software engineers would already be unemployed. The "hire only the
top!" meme is more of a reminder that it's not often a good idea to go cheap
and hire lots of low-cost warm bodies to fill out your project. Hiring cheap
is the natural tendency of all management. So, they need a catch phrase to
knock themselves out of that norm.

[1] [http://www.content-loop.com/why-coding-is-still-the-most-
imp...](http://www.content-loop.com/why-coding-is-still-the-most-important-
job-skill-of-the-future/)

~~~
fapjacks
Huh, that's an interesting way to look at it. You've convinced me not to
deride people saying that.

------
cperciva
The larger the number of programmers in the world, the larger the number of
programmers in the top 1%.

------
lucb1e
I'm just a student but as I see it, two things: enough companies don't hire
only the top of the top; and most people fit in the top 10% for one company or
another. One might not be a good fit in one place, but in another fit really
well and coincidentally have the right technology stack background.

And besides, someone who can code is (in my programmer's opinion) more self-
reliant than someone who can't. You can start your own company doing something
small that still helps a bunch of people.

------
escap
Do you reconcile “Teach everyone to read and write English” and “Only hire the
best writers”?

No because you write: >Literacy is not vocational: it can be applied in many
contexts-everyone uses reading all the time. Arithmetic is also plenty useful.

So the question is more: "is coding vocational" ?

------
schlumpf
Rephrase that juxtaposition as "teach everyone to read" and "only admit the
top 1% [to elite universities]". Now you have gone from potentially
contradictory normative statements to an uncontroversial description of the
educational systems in most countries today.

Public education was a bastion of American liberal democracy [0]. But adult
literacy is not merely an egalitarian project. It was and is an important
source of _average_ labor productivity gains. At the same time businesses
practice elitism where it, too, is consistent with the profit motive.

I'm not sure what's to be gained from hiring C+ English graduates to staff the
New York Times, nor from hiring 55th percentile CS grads to bootstrap your
next startup. Let a business hire the best employees for the job to maximize
marginal productivity, and by all means keep teaching people to code where it
can raise average productivity.

[0]([http://tjrs.monticello.org/letter/334](http://tjrs.monticello.org/letter/334))

------
imsofuture
There is no objective top 1%. 99th percentile for one job might be 9th
percentile for another.

Also teaching programming is more about technical skills and literacy than
making literally everyone employed as a programmer.

------
SFJulie
I can teach someone litterate in math and one language how to code, but I
cannot do the opposite.

Coding out of industry is less a usable skill than knowing how to make bread,
alcohol, building, mechanic, filling your taxes, reading the laws for an
individual.

Sacrificing generic skills that makes citizens more independent compared to
«ready to use» skills for the industry is a sacrifice the nations are doing I
don't grok.

------
dunkelheit
What I see discussed much less than inequality is social mobility. Why
precisely is inequality bad? I'd argue that it is bad in large part because it
implies lack of social mobility - when top 1% consists of the children of the
top 1% of the previous generation while everybody else is stuck trying to make
rent, something is wrong with the society.

In this light more equal access to knowledge and education is a step in the
right direction. And elitism, impenetrable jargon, arbitrary barriers to entry
etc. are not. But, you imply that who gets past the barriers is determined
only by "cognitive ability". What if it is not the case and the structure of
society is responsible too? When your "cognitive elite" consists mostly of
white males with specific backgrounds who went to specific colleges that's
suspicious.

Now when someone with a lot of money is out of investment opportunities with
acceptable ROI and seeks for someone to create these opportunities for them,
that kind of promotes social mobility but only up to a certain level.

------
sokoloff
Others have commented that basic coding education is akin to literacy or
mathematical literacy. I agree, but also observe:

Coding teaches structured thinking. Basic coding (like lightbot-level or the
Frozen/Minecraft hour of code exercises, which is where my 5 & 7 year old are)
teaches skills every bit as valuable as thinking board games. We don't play
Rat-a-tat-cat, Monopoly, checkers, chess, and go with our kids in hopes that
they'll become grandmasters or even employable in the field. We do it because
the elements of strategy, planning, adaptation, hard work, and overcoming
initial obstacles are valuable thinking skills. As my kids get older, they'll
progress into "harder" coding exercises, still not with a vocational angle.
Even if they end up in a non-programmer job, "programming" is going to become
an ever-increasing important part of most white-collar jobs in the future. VBA
is programming. Excel macros is programming. Writing rules to filter your
email is programming. I'd rather that not be mysterious to future generations,
and I'll see to it that it's not to my kids.

"Only Hire the Top 1%" is something that I'd love to do, having seen the
results possible when you get a dozen or so of the actual top 1% together. As
it's practiced, most companies that think they are hiring the top 1% are
probably hiring the top 3-5% and are hiring that not from the overall pool,
but from the pool of people that walk through their door. That can quickly get
you to "we're hiring from the top half of the pool, but we say we hire from
the top 1%".

Imagine a pool of 1000 candidates and 26 companies with a divinely perfect
interview system and rigorous "top 1%" standards. 10 will be hired by company
A. 990 will be joined by 10 more applicants who left their job for whatever
reason and apply to company B. 10 will be hired by company B. Lather, rinse,
and repeat, and the top 250 (or ~25%) will have been culled from the pool
before company Z even starts their process, yet company Z will still hire "the
top 1 percent [of people they see]" The example is simplistic, but company A
will get a much higher caliber workforce than company Z.

That's why retention of strong employees (with financial and work/colleague
means) is so critical, IMO. If you can keep your top employees from leaving
and have a decent interview process, you'll end up with a good team. If you
have constant churn, you'll have an awful team almost regardless of anything
else you do.

------
zAy0LfpBZLC8mAC
How to reconcile "teach everyone to write" and "only give the top 1% a book
deal"?

Just as everything in the school curriculum, everyone should learn it because
it is a useful way of thinking and a useful tool to know, and an important
perspective if you want to understand the modern world, and to give everyone a
chance to discover their talent at it/their particular interest in it in case
they have it, in which case it might then lead some to choose it as a career.

Just because your todo list is not world literature, doesn't mean that your
ability to write is useless, and just because your little VBA script (or
whatever) is not a distributed fault-tolerant system that can process billions
of transactions a second, doesn't mean that your ability to write programs is
useless.

------
MrManatee
One aspect of teaching everyone to code is what Seymour Papert talked about in
Mindstorms: it can be used as a medium for carrying ideas. For example, I
think Mindstorms had this anecdote about a child who previously had trouble
grasping the idea of classifying parts of speech (nouns, verbs, etc.). Later,
she was writing a program for creating random nonsensical sentences, when
suddenly it clicked, and it all made sense to her.

The point of this anecdote is not that every child should write such a program
to understand parts of speech. It's about something much more general, but I
have no idea how to express it briefly. I'm not even sure if I fully
understand it. So, unfortunately, this idea might just be too subtle to be
properly executed on a national scale.

------
fsloth
Personally, I don't think those two statements are linked. The first is about
education on general.

Yes, it's nice to have a one more tool in ones cognitive toolbox. Like, it's
nice to know some maths despite not using it professionally.

The second is just about hiring publicity. Given free choice, the top
professionals often seek the hardest challenge in town. It's just a
recruitment honeypot. There is no hiring methodology to actually figure out
the productivity of a hire - but, you can affect the population of hires. 8
hours at a whiteboard _in itself_ is not that necessary except to maintain the
image of a worthy challenge, thus calling in a population with it's siren
song. It's not personal, it's just statistics.

------
lacker
We are not remotely close to teaching everyone to code. Only about 5% of high
schools teach AP computer science.

[http://www.exploringcs.org/resources/cs-
statistics](http://www.exploringcs.org/resources/cs-statistics)

20 times as many students take the US History exam. And you probably have to
be even _better_ than top-1-percent to get a job as a historian.

I'm not saying that everyone should turn into a software engineer, I just
think programming is a very relevant subject to the modern world, and a
curriculum in which everyone took computer science classes would be superior
to the status quo curriculum.

------
SerLava
I don't know that it can be reconciled, at least not without roughly defining
a boundary between what "everyone coders" are supposed to do, versus what
"real programmers" do.

------
andrewfromx
Learning to code is all about picking up a shovel and help your tribe
accomplish something. What else are you going to do? Your tribe needs you to
be 21st century literate. Learning the basics of shoveling is not hard. But if
you refuse to even pick up a shovel there will be a problem. Not everyone that
picks up a shovel will go on to become master coders. But the ones that don't
even try? There are no jobs left for non-technical people. It's the shovel
or... what?

------
hboon
It expands their horizon.

Think of it like children learning a musical instrument (or taking up ballet
lessons). Not every one of them would turn out to be musicians.

Hopefully, they grow up to have an appreciation for programming and
things/fields related to it, as well as develop an additional perspective.
They don't need to become programmers, or even continue to program as a hobby.

This is why I believe programming should be taught in school, early, much like
art and music.

------
menage
Perhaps some of the 1% might not realize they have an aptitude and passion for
programming if they're not encouraged to try it properly?

------
AndreyErmakov
Software engineering is genuinely hard. There's no need to add elitism to it.
This choice of vocation is already highly selective towards everyone who tries
to enter that field.

I'll share some numbers from my academic days pursuing a CS course. From an
average group of say 100 students to graduate with a CS degree only about 3-4
actually had an aptitude to become a serious and wise professional. And even
those would not necessarily take a programming job in the end. Some didn't see
good career perspectives in it. The rest of the group would come to a
conclusion it's just too hard and would spread out to whatever alternative
jobs they can find, either IT-related or not.

The amount of computer-engineering talent is pretty constant and very low. You
can encourage the general population to try it but that won't accomplish
anything. Anyone with genuine abilities and an inclination towards this line
of work already goes into that industry.

What is possible is that through inconsiderate encouragement of large masses
to enter IT you eventually get crowds willing to perform unqualified tasks for
pennies, like building trivial smartphone apps, performing WordPress
installations etc. In fact, this already is a reality. I see people around me
abandoning their careers and moving into IT. This is in part caused by the
economic crisis in my country (Russia) which devalued salaries almost three
times, and lately everyone's been thinking about getting into IT to improve
their earnings. I also see that people just stumble at the basics. As soon as
they realize programming is not about dragging & dropping objects in a visual
editor and you have to actually perform some intensive thinking, people just
give up that idea and quit.

Ultimately, it will just make it more difficult to distinguish a professional
in a larger crowd, but it will not make his/her services cheaper. In fact, it
will probably cause more people to be burned by amateurs posing as
professionals and eventually they'll be more ready to pay the premium in order
not to have to deal with amateurs and risk their projects ruined. Software
engineering services will then become more expensive in general.

Software engineering is hard and will remain hard. The amount of talent will
also remain pretty small and launching a thousand of new programming schools
is not going to change that. Smart people don't need any schools at all. For
those who aren't smart, schools won't help them much.

As to what the end game might be, it's just too early to say. The society is
transforming into a different community. Right now it looks like people with
average abilities will have tough times landing a job as those become
automated and replaced by computer systems of some kind, whereas it will be
easier for the unqualified folks and for the highly qualified ones. The middle
might just see some very rough times. We'll just have to wait and see which
way it goes.

~~~
dgacmu
I'm sorry, but this is simply not correct that "anyone with genuine abilities
.. already goes into that industry."

Last year, I had the delightful experience of teaching a primarily non-majors
intro to CS course. The top 10-15% of that class (of FOUR HUNDRED STUDENTS)
could easily compete with our majors. Here's a bit of what they did, after one
semester, with no prior programming experience:

[https://www.cs.cmu.edu/~112/gallery.html](https://www.cs.cmu.edu/~112/gallery.html)

There were a lot of students in that class who could become first-class
computer scientists if they chose to. And they probably won't - they have
other things they want to do.

But what a lot of them will do, now, is integrate programming into their
careers as engineers, artists, scientists, and everything else, when it makes
sense to do so. And they'll get a huge leg up on their competitors in doing so
as computing continues to expand more widely into our digital and physical
lives.

Add to this the huge number of people who don't have the opportunity to learn
to program in the first place. This is a very US-centric view, but our high
schools, by and large, are absolutely garbage at teaching CS. There are some
stand-out exceptions, but most of our high schools do a great job of
convincing most students, particularly those not of the "geeky young white
male" persuasion, to stay the hell away from CS. (I say this as a formerly
young geeky white male who was actually convinced by his HS experience not to
go into CS, until switching back into it late in college. I finished a biology
degree in the meantime until I realized that CS was far more awesome than my
abysmal high school experience had suggested.)

The combination of deep domain-specific expertise with reasonable programming
abilities is very powerful, because for the right problems, it acts as a huge
force multiplier and/or eliminator-of-tedious-crap.

Together with the fact that it's a useful mode of thinking, _this_ is why we
should be teaching more people to program.

~~~
AndreyErmakov
You are quite correct on all your points and I agree with you.

I suppose I could have expressed my idea better. What I meant is that for
people with a programming aptitude there are no barriers these days. Whether
they want to jump directly into software engineering or pursue another field
and use their knowledge of programming as an asset, for the both choices the
road is open. There are tons of information freely available for those who
wish to learn. If one wanted to get an official CS degree it's also easily
arranged, university chairs of that specialization are under-filled. At least
that is so in Europe. For some reason the locals prefer
economic/legal/business degrees and engineering isn't terribly popular. Can't
say anything about the situation in the US though.

------
ksou32
You don't even need to be a good programmer to make 70-80k

You can be a really bad one, that's still upper middle class in much of
America , and not to shabby even in high price cities like LA

------
Klockan3
> How to reconcile “teach everyone to code” and “only hire the top 1%”?

The logic is simple: Everyone needs to be a coder if you want to fill all
coding jobs with top 1% coders.

------
DanBC
Teach everyone to code is to help the people who use a spreadsheet for
everything.

Letting them know a bit of databasing would avoid some scary uses of
spreadsheets.

------
kazinator
Coding is a great hobby. Not everyone has to do it as a job.

------
e12e
Many good comments here already. One thing about the "computer literacy"-thing
-- I think that's elevating the standard a bit. I prefer "computer use", as in
"we need to enable people to use computers". Sure, "computer literacy" covers
that, but I think it obscures how bad people are at using computers. Even
young people that have grown up in a world surrounded by them.

I routinely work with people that can't leverage a spreadsheet as a better
calculator - and prefer the "calculator app" for help with arithmetic. Now, I
know that it's easy to fall back to using the first thing/tool we know - a
hammer for every screw, so to speak.

But I think part of teaching how to actually use computers, should also be
teaching people to look for the better tool, or to be able to make one. Much
like how Bram Moolenaar, creator of the vim editor, talks about constantly
looking for things we do while editing that is repetitive, and probably could
be improved (either by discovering/looking up functions that are there, but we
don't use day-to-day, or by scripting) - so it is with _all_ things we do on a
computer. It's in many ways the ultimate tool for data and information -
_everything_ can be (more) automated. If we have the right mindset, and mental
tools.

In my mind, that's what "computer literacy" is about, and basic programming is
absolutely a part of that. While I'd prefer to see people know how to write a
python script to find their way out of a wet paper bag, even if we just enable
80% to actually automate spreadsheets, that could have a huge impact on
overall productivity. Because despite the horrors many hn'ers probably have
encountered in terms of visual basic, access and excel -- still far too few
people are able to make such horrors in order to do everyday tasks, like sane
shift scheduling.

I think we need a bit of a revival of the ugly, everyday scripting and maybe
even so called "4gl" languages -- because while they often are the wrong tool
when you want to make a shrink-wrapped tool for others to use (maybe even
something you could sell), I think it is often very much the right tool for
thinking, experimenting and making certain tasks easier and less error prone.

As a side note, a sane spreadsheet-like interface with a sane programming
language would probably be a good idea. R does this to a certain extent, but
I'm not sure I'd want to try to use R to plan shifts, or do a number of
arithmetic things like manage my budget or calculate material use for a
circular stair case and so on. I'd probably prefer something like Python or
Ruby coupled with something a little snazzier than a CSV-file (ok, _I_ would
totally prefer grep, awk and a text-file -- but I think we should be able to
do _better_ ).

------
khattam
>The Brexit crisis

It's not a crisis. They didn't want to be a part of bureaucratic corrupt
system which never gets anything done for them, takes from the poor of the
rich countries and gives it to the rich of the poor countries. They became
independent of it now. It's best for everyone, except for the very few who are
leeching off of it.

>every child must code

Yes, it's in their interests to have more coders in the market so that they
can pay them less... and also in the interest of the government if they don't
have to depend on foreign manpower. You don't need to fall for it.

>they hire a small percentage of job applicants for their companies

Why should they hire anyone who is not the best? Specially when hiring the
best is not a lot more expensive than hiring an average developer? Let's say
you set out to make a new product. Why would you not hire anyone who is the
best among the people who are willing to work for you? Also, the world doesn't
need everyone to be developers. At some point market will be saturated enough
to not be able to pay even the good developers... which is exactly what the
tech industry wants and for good reason.

>seem to be making real-world software development more inaccessible to non-
experts

No, we don't do that. It is more accessible than ever to non-experts... be it
with PaaS or plethora of tools and tutorials and books and other resources
available.

>we deride RAD tools and "drag and drop" development

We definitely don't do that without a reason. They have been tried and tested
and have failed to deliver in the long term. Changes are difficult to track
and building on top of someone else's work is painful.

>ever-more abstract modes of thinking like Functional Programming that a small
percentage of working developers, let alone the general public, will grasp

To a non-programmer, Functional Programming makes WAY MORE sense than
assignments and looping. Also, we didn't decide to use Functional Programming
to exclude out people who have been trained otherwise. We did it because it
makes code easier to reason about and scale.

>Is it a labor lottery so that the small percentage of kids who are turn out
to be good at coding will become professional programmers?

Yes. A small percent of children who turn out to be good at science class will
become professional mathematicians. A small percent of children who turn out
to be good at sports will become professional sportsmen. A small percent of
children who are good at cooking turn out to become professional chefs. Same
with everything. Why should it be different when it comes to programming?

The ONLY thing you need to do is make yourself valuable for someone else so
that they are willing to share a part of their income with you. If everyone
did the same for themselves, everyone would create value for each other.
Unfortunately, people are so much focused on fixing others that they end up
harming everyone's lives.

