
An unapology - lifeisstillgood
http://oss4gov.org/unapology
======
vezzy-fnord
The metaphor of software being like literature is flawed. It is more apt to
deem it an edifice. Buildings, much like software, are absolutely ubiquitous.
Chances are on average you don't intimately understand the workings of
contemporary civil engineering.

And, while you should absolutely be able to modify your house, the reality is
a lot of other buildings are off-limits to you or purpose-built for a specific
recipient or cause. Indeed, a huge amount of software is designed to be sold
to specific contractors and not to the public at large. Nor will the public
realistically have the chance to modify most of the software they interact
with, either because they're just circuits, dumb terminals or another reason.

Thirdly, software is permanent, modulo bit rot. That is to say most people can
be satisfied entirely by existing written solutions. Simple task automation,
scripts and macros can be self-taught if the person sees an opportunity.
Actually creating legitimately new things requires a deep proficiency in a
problem domain that a pedestrian knowledge of programming will not satisfy.

Also, if you're going to promote ideals for governments, I strongly suggest
you promote free software, not open source.

~~~
adpirz
Couldn't this same rationale be applied to high-school level math? It's one of
the biggest excuses made about learning anything beyond arithmetic -- unless
I'm pursuing engineering or some computation-heavy career, when will I need to
care about calculus? Or for that matter, why ever learn about cell biology in
elementary school? Not everyone is going to be a geneticist, and most pharma
patents are completely off limits, so why bother?

Yet it's important that we learn all these pieces because we expect a
fundamental level of understanding about the world we live in, including how
that world and what we know about it is changing. Without an informed
electorate and a labor force primed with the skillset necessary for the
current job market, not one that's passed, we suffer collectively. Thirty
years ago, it wouldn't have made sense to make something like computer
literacy or computer science a compulsory subject, but considering just how
much it touches every aspect of the world and our lives today, it seems remiss
to not empower students with the knowledge and skills to interact with and
change that world for themselves.

~~~
mikeash
A lot of high school math is pretty pointless for most people, though. It
doesn't even help people understand the world, because they don't understand
the math, they just do it by rote. I think we'd be a lot better off if we
taught high schoolers some basic statistics and finance rather than fourteen
different ways to solve a quadratic equation.

~~~
kazinator
> _It doesn 't even help people understand the world, because they don't
> understand the math, they just do it by rote._

And thereby, ironically, they are, in a way, getting a certain type of
computing education in computing! For instance, doing pencil and paper
arithmetic by rote is nothing more than executing algorithms. The algorithms
work on an input representation, and contain various cases to be considered,
terminating conditions, and outputs produced in the appropriate areas of the
paper.

------
biot
Everyone should be a surgeon and be able to perform surgical operations on
their family and friends.

Everyone should be an auto mechanic and be able to assemble new vehicles out
of an engine and other parts.

Everyone should be an electronics engineer and be able to construct their own
novel devices out of raw circuits.

Everyone should be a chemical engineer and be able to formulate their own
novel chemicals.

Everyone should be a biologist and be able to construct their own novel DNA
and RNA sequences, splice multiple organisms together to create new life.

Everyone should be a physicist and be able to explain the practical and
theoretical principles underlying all the above principles.

Everyone should be an advanced mathematician and be able to derive from first
principles the laws governing everything in the universe.

... or you can just do your own thing, grok how to use the things other people
have dedicated their lives to understanding and building, and focus on
mastering your own profession.

~~~
pault
A human being should be able to change a diaper, plan an invasion, butcher a
hog, conn a ship, design a building, write a sonnet, balance accounts, build a
wall, set a bone, comfort the dying, take orders, give orders, cooperate, act
alone, solve equations, analyze a new problem, pitch manure, program a
computer, cook a tasty meal, fight efficiently, die gallantly. Specialization
is for insects.

-Robert A. Heinlein

;)

Edit: I sort of meant this tongue in cheek, but I do look forward to the day
when cheap energy and life extension give bright people the opportunity to do
all of the things in the parent post. Until then, yes, it's probably better to
do one thing masterfully than many things poorly. I wish I had more time for
learning for learning's sake, but I've only been playing this game for a few
decades and I don't want to nerf my character.

~~~
GFK_of_xmaspast
> Specialization is for insects.

The single most successful clade in the history of this earth.

~~~
AnimalMuppet
Numerically, yes. I aspire to be something more, however.

------
hyperion2010
Programmers are the 21st century's clergy. Only we can read and speak to the
great digital gods in the clouds and our institutions (though rarely we
ourselves) derive great power from their position between the layman and the
benevolent providers of addictive flash games and digital watches. Hopefully
it won't take ten centuries this time.

edit: please bring on the downvotes without replies, or did being compared to
celibate white males hit too close to home?

~~~
stvswn
People aren't taking offense to the comparison to clergy, they're amazed at
the hubris.

~~~
vezzy-fnord
I interpreted the statement, with "addictive flash games and digital watches",
as actually being opposed to the aforementioned programming clergy.

Perhaps they're serious.

~~~
hyperion2010
Yes, in case it was not clear, this was intended as a cautionary statement
about the impact of having literate and illiterate classes where the literate
class constructs a world that keeps the illiterate oppressed by limiting and
sanctioning their access to power (and tools).

------
stvswn
A command line used to be the primary UI, and thank God we don't have to do
that anymore. The iOS UI makes computing way more accessible to everyone.

Programming is certainly going to be an increasingly valuable skill. But it is
not the same as reading and writing -- those skills are about communicating
with other humans. Programming is about giving instructions with machines.
Only one is critical in order to contribute to society.

Programming is a valuable skill, but it does not make one an ubermensch, and
many people will continue to live their lives without being one of the few who
can design software. They will definitely operate software, and it's the job
of the engineer to let them do that without any special skills.

We always talk about more programming education -- which is fantastic, because
more kids need an opportunity to get started in a valuable skill with which
they can do great things for society. But it isn't reading. Not everyone wants
to do it, and it's not as if 25 years from now a law degree is going to
require coding. It isn't. Maybe, just maybe, it will require operating a new
intelligent software system that can do legal analysis. But if operating that
software requires programming, we've screwed up.

~~~
kazinator
What the iOS GUI makes accessible to everyone is something other than
computing.

~~~
stvswn
OK, then, what is instant access to all of wikipedia, and to Google's entire
search index, inside your pocket at all times? It is what computers have
wrought. If you don't think "computing" means "using a computer," then fine.
But at a higher level, my point is this: if I were master of the universe, I'd
pick millions of people with iPhones over millions of people writing their own
programs. For those who love programming, coding is an ends to itself. But in
the real world it's not -- people don't care about the code, they just want to
see pictures of their grandkids. The pictures of their grandkids are really
making their life better in a way that shouldn't be dismissed as frivolous and
"not real computing." If we don't make software for people to use in the real
world, why do it at all?

~~~
kazinator
Instant access to vast resources and being able to instantly take pictures and
send them to people are ... _other than_ computing (not less than, or not
real, or frivolous).

Google's search index, by the way, is accessed via a _de facto_ command line
(having nothing to do with iOS). That command line has some very rudimentary
computing built in: like if you type 2 + 2 and hit Enter, a calculator UI
comes up.

------
TheGRS
I'm reminded of a TED talk I went to that proclaimed all code is art and
everyone should code. I'm just not convinced. When you _are_ coding I get it,
coding is awesome and it can be an art, but I don't always see coding to be an
integral part of every day life for most people in the same way that reading
and writing is.

Most people do use a computer every day however, so there is an argument to be
made that people should learn it at some point to unlock the potential of
their machines. But the problem you run into here is that coding is not the
same today as it was 10 years ago, and much different than it was 20 years
ago. I'm still reading and writing and typing pretty much the same way that I
was after learning it for the first time (with minor improvements in speed and
legibility). In 10 years though, I'm pretty sure I'll be coding in something
else entirely different and in a totally different style. And I also have many
devices that I don't bother to code on or interact with in an advanced way,
such as my smartphone.

We should teach kids code at an early age, agreed, but we also shouldn't
expect them to stick with it for the rest of their lives like they would
reading and writing.

~~~
0xdeadbeefbabe
> with it for the rest of their lives like they would reading and writing.

I'd say most do not stick with writing.

> I'm reminded of a TED talk I went to that proclaimed all code is art and
> everyone should code.

I'd agree the side effects are art, but the code? Maybe in that loose artsy
sense of the word art. Is every email also literature because it is writing?

~~~
TheGRS
That was my impression coming away from that talk, I don't agree all code is
art in the same way that I don't think all forms of expression are art. They
_can_ be art, but they certainly are not _always_ art. I also thought it was
just another hackneyed way of labeling whatever profession someone is doing as
artistic.

------
kazinator
Before computers and software, we had technology already. People used tube
radios without being able to read schematics. They watched TV without
understanding how the YUV signal got hacked in as a sub-carrier of the black
and white signal, and drove cars without being able to tune a carburetor.
Being able to grok engineering specifications or blueprints, let alone produce
them (software or otherwise), isn't really analogous to basic literacy.

------
harigov
If being able to interact with computer is modern age definition of literacy
similar to how it was with reading a book, why is it a bad thing to be able to
use someones apps? Isn't it same as reading books written by others? I do
agree that being able to program a computer is an important knowledge to have,
just like it is important to be able to write, but that doesn't imply that
using others software/apps is any inferior. Also, how we program computers
might be drastically different 10 years down the line, with ML getting into
the mix. Learners are to compilers what compilers were to assemblers.

~~~
kazinator
Not only that, but it's a false premise that if you dabble in programming, you
will be an expert in security and privacy issues, and be immune to problems
like phishing, malware and so on.

But that's the primary rationale behind this "everyone must program": that
those who don't know code will be at the mercy of some bogey man bad guys who
_do_ know how to code, from the perspective of security and privacy.

------
Camillo
First off, the title is horribly clickbaity.

Second, we've been getting a lot of links on HN lately where someone blurts
out some thoughts on a complex subject and is done in less than a page, with
no depth at all. I really don't care for them. They may be short, but the
insight density is far lower than that of a real article, so they end up being
a worse way to spend my time.

Third, I disagree that programming literacy needs to be taught to everyone.
The OP does not bother to provide any specific reason, but let's consider two.

One reason may be for the sake of future employment opportunities. The
argument is ridiculous on the face of it, but it's one you see politicians
make. It should be obvious that we are not going to need everyone to be a
professional programmer. It should also be obvious that the trend is of
programming skills becoming _less_ necessary for jobs involving computers, and
not more. This trend has been largely driven by UI improvements in the past,
but AI is poised to give it a second boost.

Another reason could be for the sake of developing a more rational mindset, or
some other skills or attitudes that are beneficial for citizens in general.
This is an argument I would take more seriously, but I still have to counter
that there are more urgently and universally needed things. Basic numeracy is
the obvious one, and in particular statistics. Logic is another.

Programming may be a way to exercise these skills, but it is not necessarily
the best way to acquire them. I would argue that people find success in
programming because of their existing knack for logical reasoning, rather than
gaining it because they decided to go into programming. And if you've ever
tried to interview professional programmers for a job, you'd know how many of
them can make a living in this field without having developed the problem
solving skills you'd like to see.

In fact, focusing on programming per se as a skill to acquire may well (read:
would definitely, in the American school system) lead to reducing focus on the
basic reasoning skills that are more universally useful, in favor of learning
how to cobble an app or a website together.

Finally, it is very dubious that the population at large would be able to
learn how to program at a reasonable level. You may say that people used to
say the same about literacy, which is now universal; but if you look at it
more carefully, you'll notice that a non-negligible amount of people never
reaches the level of reading and writing skills you would expect from an
adult, and even more people see those skills decay once they leave school.

------
jordanpg
How bold.

Maybe the author could provide some use cases describing how the digital
literati of the future will be reading and writing software for themselves, in
analogy to the written word?

I'd love to hear about how those with basic "literacy" will be reading/writing
anything more complicated than FizzBuzz, much less reading/improving/writing
high-quality software in the public domain.

------
draw_down
I worked at a place that outsourced writing, in part. It's a financial news
site and some portion of the articles are written by a computer. So,
outsourcing those things is less outrageous than it may first seem.

------
fnordprefect
It's rather ironic that the article misspells 'privileged'

