
Will the Push for Coding Lead to ‘Technical Ghettos’? - rxaxm
http://www.theatlantic.com/education/archive/2016/02/will-the-push-for-coding-lead-to-technical-ghettos/471300/?single_page=true
======
danso
I know the reasons for teaching Java...but I really wish that when a coding
curriculum is decided upon, we go to something as close to the *nix-like shell
as possible. I'm teaching Python to non-CS college students right now, and it
never fails to amaze me how many times I have to remind them that we're
dealing with text and textfiles, whether it's web scraping or counting words
in Shakespeare or accessing an API. If they have any doubt what they just
opened and read into memory, or wrote to disk, just switch over to the GUI
(i.e. Finder on OS X) and inspect the file the "old fashioned way". The
students that get it are the ones who can use programming on a casual
basis...I don't attempt to teach the basics of comsci theory, but if someone
can see that a task is repeatable and abstractable into a for-loop, and then
apply that to something "real-world", even if it's just something like sending
or collecting tweets, or managing photos...that to me is what students in a
general curriculum should be learning: that the power of programming is the
ability to control a computer at the granular level that you need to do
exactly what you plan for. Not just learning how to push buttons on an
interface designed for general consumption.

The other stuff...algorithmic efficiency, recursion, design...can come later,
and are much easier to teach after you've appreciated the potential of
computing and computational thinking.

------
Spooky23
Maybe we shouldn't teach people how to write, as they may grow up to write
trite race baiting articles.

I was fortunate to have an uncle in IT who gifted me hand me down IBM PC
hardware that my parents could not afford in the 80s. I was making more money
in high school with stuff I was able to self teach than many of my "privleged"
relatives in real adult jobs.

These coding initiatives are great, as they introduce kids to a whole new
world of inspiration and discovery.

------
mpbm
Is it just me, or was the entire "question" in the article irrelevant? Like,
yes just "learning to code" doesn't make you a good programmer. But just
"learning to write" doesn't make you a good author either. You have to get an
introduction and basic skills somewhere, even if most people will never go on
to develop or profit from those skills.

~~~
armitron
This also assumes that __everyone __can become a good programmer, which is IMO
far from being the case.

Programming is an ART, not everyone can be Bach or Picasso even though most
can slap paint on canvas or hit keys on a piano. It's actually a lot worse
with software engineering because the end result doesn't __only __have
aesthetic value but is an interconnected system that in many cases subsumes
many facets of our everyday lives.

Software engineering is __hard __and requires intelligence, creativity and
experience. Pretending that everyone can be a good /effective software
engineer through training alone is supremely naive, actively __encouraging
__this sort of society is extremely dangerous.

TL;DR There is no room for egalitarianism in software, it should be a
meritocracy first and foremost, where the best are encouraged and those not
cut out for it swiftly dropped from further participation. We have experienced
what bad software engineers can do and the cost to society at large that they
are directly responsible for. Let's not pretend that this new populist push
will improve matters.

~~~
mfoy_
Because if you can't be the best, don't even try. Right?

Btw, ponus points for (in the context of this article) implying that Black and
Hispanic children aren't smart enough to be software engineers.

~~~
armitron
You can try all you want, and in fact I encourage everyone to do so.

Let's not have populists plant the seeds that all it takes is government
handouts (and also wave the carrot of future career ROI in front of people who
don't know better) though.

This is at best misdirection and manipulation by corrupt demagogues who know
nothing about software or engineering. Unless of course there are others,
besides hack job politicians, who are putting forth the same views?

~~~
mfoy_
All this program is doing is attempting to give exposure to programming to
young students who may not otherwise have an opportunity to do so. No matter
how naturally gifted a student may be, the tools to learn and grow have to be
put within their reach in the first place.

The criticism this article is levying is how it is threatening to produce code
monkeys instead of well-rounded software engineers. But that is because (I
believe) that they are suggesting "programming" credits could be used in lieu
of math/science credits to graduate. Which would create high school graduate
who can program tolerably but have little to no skill doing anything else...
aka a vocational training.

The criticisms aren't "Well they won't be any good at it anyways."

You're also making a very strong elitist stance on the matter. The tone of
your comments strongly imply "software engineers are better than other people,
only the chosen few may join our illustrious ranks!"

~~~
armitron
Disregarding your elitist stance comment (and your other race assertions --
SERIOUSLY?), which I thought were poor and totally mischaracterized what I
wrote, I think that you are choosing to discard a lot of what past years have
taught us about the American education system.

Where you see "attempting to give exposure to programming" I see students
being PUSHED by the environment (parents, teachers, peers) into doing
something that they may very well not enjoy or be good at, simply because it's
been reduced to a good CAREER. Is that something that we need to further
encourage?

Moreover, re: exposure to programming, I dare say that we don't need it _at
all_ these days since it's everywhere.

Knowing what we know about the American education system (ranked as among one
of the worst in the world, every year) I think my interpretation is a lot more
realistic than yours.

~~~
mfoy_
School is generally about pushing students to learn more about things they may
or may not be good at or interested in. Surely you've heard people complain
about math / chem / bio / physics and how it's hard and they don't care.
Programming will just join that list of "things you should generally be aware
of and have the opportunity to learn more about in high school".

As for exposure to programming: You say it's everywhere and we don't need it
in school at all? Would you say that to some poor kid who doesn't have the
environment at home that fosters self-teaching, or maybe even a computer at
all? You do realize that some of these kids literally struggle to have
breakfast each morning and here you are hand waving access to computing
resources and educational material as trivial...

------
empath75
I don't get the complaint that teaching Java and JavaScript puts them on the
bottom rung. You have to learn on some programming language and those are as
good as any, though starting on Java sounds painful.

~~~
mfoy_
I think he's implying that teaching them how to code and not how to design
programs will be the new "vocational" equivalent. Although this issue seems
like it just generally applies to the education system as a whole, not
specific at all to coding... unless I'm missing some key point.

Also, I think perhaps the issue is with allowing "coding" classes to qualify
as math/science credits may encourage some students to essentially come out of
highschool with a working knowledge of how to write java / javascript to
accomplish certain tasks but have little analytical training (ie the
scientific method, math beyond the basics, etc)

~~~
douche
Math as taught in US high schools has very little to do with anything of real
value. It's basically an SAT prep program, to push people through to calculus.

I could very nearly count on a railway brakeman's fingers the number of times
that high school math has been an asset in my software career. The three years
of computer programming electives I took were wildly more useful - and
actually taught me geometry...

~~~
mfoy_
I would argue that well-taught geometry and such will make learning
programming muuuch easier. Linear algebra has a lot of concepts that translate
quite neatly to programming. Set theory, functions, etc. Formal logic is also
a great asset for understanding branching logic.

Then again, learning how to program probably also makes learning those
concepts easier too, as it goes both ways...

~~~
fluxquanta
Not to disagree with the idea of their importance, but linear algebra, set
theory, and formal logic are things I had not even heard of in a relatively
impoverished public high school, much less had courses on.

Hell, I had to take the AP Calculus AB twice -- not because I did poorly the
first time, but because there was no other courses for me to take and I didn't
want to go a year without any math before college.

------
nmrm2
_> Offering a glimpse into the not-too-distant future, [Joseph Sweeney]
describes a day when... artificial-intelligence system will build the app...
Coding might then be nearly obsolete_

It's always cute to hear school administrators (or any non-technical policy
types) predict the future based upon superficial understanding of the
underlying science and technology.

Code synthesis for fully specified and very simple programs is still
considered a hard problem. Automating the entire software and product design
process is fully AI hard.

~~~
AnimalMuppet
To steal something I saw over the weekend: "Your [Sweeney's] position is like
a penguin, different, cute, and interesting... but it ain't gonna fly."

------
seltzered_
Could this also be confused with a less condescending term - like Anil Dash's
concept of "blue collar programmer"? ([http://anildash.com/2012/10/the-blue-
collar-coder.html](http://anildash.com/2012/10/the-blue-collar-coder.html) )

(Or Reginald Braythewathe's term of " Clerical engineering work" )

~~~
DawkinsGawd
I am very much torn between this on multiple levels. On the most superficial
level, I do not want development to become "blue collar" because I am a
developer and don't want to think of myself as blue collar. With my personal
bias out of the way:

Do you think it's possible for development to be the new manufacturing? I have
been saying that it is for years now - but I don't know if I truly believe it
or not. There is a large academic distinction between coding and
manufacturing. Solid middle class manufacturing jobs were mostly mindless
monkey work. Screw this on, put that in the hole it fits in, etc. The more I
work on this internal Java ERP/CRM sites the more I think it is monkey work
too, but when I take a step back I realize that I have been programming since
I was 10 (16 years), I have a bachelors degree in computer science, I have
several years of working experience and after work I go home and code. The
work generally seems like turn key work to me, but I'm not sure if that is
true. Basically I'm saying that I don't necessarily believe the masses are
smart enough to be developers even for shitty intranet applications

~~~
DawkinsGawd
P.S. The articles is beyond stupid. I use to love technology because it was
apolitical and was never muddled with things like "race" and "micro
aggression". It seems like every tech article I read now has something to say
about minorities or under represented youth or woman. Give it a rest already.
Anyone can start coding. All you need is notepad.

I do appreciate how the article makes a distinction between computer science
and programming. We already have a computer science education in school. Its
called math.

------
jMyles
I usually try to temper my judgments on these sorts of articles, but this is
patently ridiculous.

Is it the police and prison systems that are endangering another generation of
black and brown youth? Is it the lack of fresh, organic food in inner-cities?
Maybe it's the fact that black and brown parents have, at a disgustingly
disproportionate rate, been taken away from their families for possession of
plants and chemicals that are likely to be legal soon anyway?

No, no, it's not that stuff. It's the fact that kids are learning Java and
Javascript instead of Python and Go and Rust.

~~~
forgetsusername
> _No, no, it 's not that stuff_

Maybe it's the combination of many potential social problems, and the author
is writing about one specifically? I don't see anywhere it's stated that this
is _the_ biggest issue facing youth of colour.

~~~
jMyles
I'm disagreeing on both ends: 1) I don't think Java and Javascript are bad
languages to learn (nor even that the matter of _which_ languages to learn is
particularly important), and 2) I also think that systemic racism is a big
enough concern as to completely obfuscate any effect that learning Java and
Javascript (to the temporary exclusion of other languages) might have.

------
tzs
> Kamau Bobb, the program director in computer-science education at NSF and
> Brown’s colleague, notes that the dominant argument in support of youth of
> color learning to code is to “get a good job”—creating a stratified system
> where students from racial and ethnic groups, and lower socioeconomic
> backgrounds, are prepped for work as service technicians and helpdesk agents

How does learning to code prep one for work as a service technician or
helpdesk agent?

~~~
nmrm2
_> How does learning to code prep one for work as a service technician or
helpdesk agent?_

Because it's treated as an alternative to the main-line college preparedness
curriculum.

This isn't Algebra I + Programming I. It's Programming I instead of Algebra I.
Because if you're not good enough at math to do well on college entrance
exams, you might as well start your career readiness...

(This is _rally hard_ for us folk out in the real world to understand. We know
that programming is a high-demand field precisely because it requires a level
of intellectual preparedness similar to or sometimes even greater than that
obtained while successfully completing a college degree. But K-12 people in
the US tend to be idiotic about credentialism. So where we see "exceptional
self-learner with great work ethic can make it without a college degree in
software", they see "any schmuck who can't hack it at college can get a high
paying computer job")

------
jimbokun
Sounds more to me like a bunch of computer science professors trying to market
4 year degrees and 10s (or 100s) of thousands of dollars in debt to lower
income African Americans, with questionable benefits in terms of employment
outcomes.

~~~
nmrm2
_> computer science professors_

generally speaking couldn't care less about the marketability of their degree
programs among the general public, much less the lower income general public.
Enrollment numbers just aren't important enough currency in higher ed to
devote enough effort to get the president and a bunch of celebrities on board.

Deans, maybe. But not run-of-the-mill professors.

And even then, almost all CS programs have the exact opposite problem right
now -- too many people and too much hype so that it's hard to predict the
future and grow sustainably.

Besides, it is a very well-documented fact that the current push for STEM --
and specifically CS -- education is coming from political types and insdustry
folks.

~~~
cableshaft
I had a CS professor that said that during the dot com heyday they were seeing
hundreds of cs majors every year, and it was a mess as most of them didn't
belong and were just there because it was pretty much guaranteed work for high
pay and keeping up with everything was a pain in the ass.

But then the dot bust happened and enrollment went back down to much more
reasonable numbers, and she was a lot happier for it.

So yeah, I doubt professors are the ones pushing too hard for this.

------
spiralpolitik
Most intern resumes that I've seen recently have Java, Python, and Javascript
on them. A few add C/C++ to those. I've only seen one with anything
approaching a functional language (OCaml).

Personally I think Python, Java, or Javascript are good places to start
coding. Python has the slight edge because there are a lot of good educational
kits (Raspberry Pi as an example) that really make learning to code fun
although the whole 2.x/3.x mess muddies the water a bit.

I think once the tooling gets a little bit better then Haskell could easily be
added to that list. It's close but not quite there today.

~~~
cableshaft
I have some functional programming experience, but I've never put it on the
resume because I have never seen any company request experience in it, so it
seems like a waste of space to put it on there. So that could explain why you
never usually see it on a resume.

------
Theodores
I think this push for coding thing is great.

I see being able to code as a thing like literacy, either you have it or you
don't, and, if you don't have it, then you are going to be held back and not
reach your own potential. In the workplace I see a lot of people using 1990's
tools like Excel to create 'reports' of some sort, where the data in them is
as good as dead. Meanwhile, those of us that can do a database join or two and
get the results in some type of web page (or text file) don't have to keep
creating the same 'reports'. The computer just does it thereafter.

Companies that used to have a web page (and not much more) are now using
online tools for business, whether that is getting stuff out the door,
handling customer service, doing business intelligence things, in fact almost
everything gets touched on by this 'web' way of working. Doing things in
legacy tools (Excel spreadsheets, Word docs) just does not cut it anymore,
things now get done in a web-style way with some backend processes bespoke to
the given business smoothing things along. 'Let's go back to doing everything
in Excel' is the new 'let's go back to doing everything on paper'.

Even if one is not proficient at coding it is still important to be able to
work with those that are, to be able to describe processes in a way that can
be 'automated' to some extent, a 'systems approach' rather than hand-me-down
ways of working.

This automation does not necessarily put people out of work, it empowers
people to be able to do their actual work without the tedium of repetitive
tasks. They can be more customer focused, do better 'business intelligence' or
keep better tabs on getting stuff out the door.

There was a revolution in the 1990's when Word came along and replaced
Wordperfect. Suddenly people could type their own letters and memos, they did
not need to dictate to a secretary. Oddly nobody has gone back to the
'Wordperfect' ways of working. Code (particularly on the web, whether front or
backend) is like that, a game changer, and I want to see people coding, not
necessarily to do some SF next-unicorn thing but just to be able to be
participant in regular SME businesses.

~~~
DawkinsGawd
I know entire organizations that run off excel spreadsheets

------
bdcravens
I don't have a CS degree, let alone a bachelor's degree (I have a couple of
associates unrelated to my career). I'm principally self-taught, and while I
occasionally see gaps in my knowledge, I perform at a very high level: I've
been a tech editor on major publisher titles, run a user group, spoken at
conferences, and my current role is essentially CTO. I presume my technical
education is similar to someone learning just the job.

Counterpoints: I always excelled at math, and while I did grow up very poor, I
am a white male.

------
jcoffland
The article says over and over that learning to code is not CS. I fully agree
but then it goes on to imply that CS is really about problem solving skills
which is also inaccurate. CS is fundamentally about data structures and
algorithms and it branches off from there into many subtopics. People often
forget about the S in CS and mentally substitute a T for technology. Arguably
most employers these days really want software engineers not computer
scientists anyway.

------
jimbokun
Maybe the student has an inspiration for a business based on observations of
their friends, or to solve a business problem their parents have, and just
needs to learn enough to write an app to test out their hypothesis. Needing to
hire a developer to test even the simplest ideas presents a very high barrier
to entry.

If someone can code even a little bit, it really opens lots of opportunities,
even without data structures, algorithms, and the rest of the computer science
curriculum.

------
jkot
You dont need phd in mathematics to be a good software developer.

~~~
jcoffland
But it sure helps of you want to do any scientific computing.

------
ksoul1
Bottom rung is still 60k

Which is much higher than most Americans. You'd be in your tech ghetto making
more than your friends who went to a 4 year.

------
PaulHoule
Make 'em learn COBOL!

------
gexla
> Coding is one piece of computational literacy

Literacy is the wrong word to use here. It doesn't work to compare English
literacy with this sort of thing.

English literacy in school is gained by a lot of practice. Writing, even if
it's texting friends, is something you do daily and throughout the day. The
written language is in the same language (though there is some transformation
involved in turning words in the brain to symbols on paper) in which you think
and speak.

Doing something like computer programming is far different. You won't get
daily practice just by going through the norms of life. Even pushing yourself
to getting daily practice won't happen if you don't have something on your
plate which is interesting. People are lazy by default and just opening an
editor can be too much effort. I procrastinate bad enough on paid projects,
let alone things nobody is expecting me to do.

Just because people can read, doesn't mean they pick up books to better
themselves. People would much rather be spoon-fed entertainment through TV.

I don't see the point of learning to code beyond having some familiarity with
it. For this to be a useful skill you have to put a huge effort into keeping
up with it. Learning a different language is a huge barrier (not difficult,
but for surpasses the point of which most people are willing to go.)

Jobs aren't easy to land. There is no equivalent to manufacturing in tech
which can lead to an army of workers being employed. The tech rabbit hole
grows deeper each day as we add more tools and specialty areas in which we
need to be familiar with. Areas such as wrangling data has a daunting list of
pre-reqs and I imagine this will be a trend moving forward (programming paired
with knowledge of the domain you are building software for.)o

The sad fact is that technical knowledge doesn't take down the issues which
data shows to be a problem with people in ghettos.

People who live in a ghetto have a hard time moving. A life of poverty creates
huge issues which people who don't live in poverty don't understand. It's
called grinding poverty for a reason. The grinding is going on in your head
and that will drive you mad. For a long list of reasons, jumping past the most
bottom rung of the employment latter is something few people in this situation
will ever be able to do. A well paid programming job isn't a bottom rung job.

Well paid development jobs are well paid because they are hard to get and hard
to employ for. If it were easy, then they wouldn't be well paid. Teaching
people in the ghetto how to write code isn't going to help them get these jobs
and it isn't going to help employers in hiring.

Freelancing and the gig economy is even worse. You can make far more money
going solo by starting your own shop than by traditional employment. But the
same ratios work here as in the rest of the economy. You get 1% (or less) who
can figure out the game and thrive while everyone else just scrapes by.

------
VOYD
Yes.

