Settings

Theme

Will the Push for Coding Lead to ‘Technical Ghettos’?

theatlantic.com

47 points by rxaxm 10 years ago · 75 comments

Reader

danso 10 years ago

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 10 years ago

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 10 years ago

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.

  • tanker 10 years ago

    This is the only part I saw that directly addressed the question of "Will the Push for Coding Lead to ‘Technical Ghettos’?"

    >...for students of color in particular, whether the emphasis on knowing Java and JavaScript only puts them on the bottom rung of the tech workforce.

    The obvious follow-up question is, "Are there significant differences in the way coding is being introduced in schools based on the average income level of the area?"

    Yes --> Is there some reason for this? Does one method require more resources? Is one way actually better than the other?

    No --> Then, "Technical Ghettos" are not likely to result from the program.

    • true_religion 10 years ago

      I'm not understanding how Java---famed in Enterprise applications, and Javascript---famed in frontend development and now SPAs is going to put anyone on the bottom rung of the tech workforce in general.

      Ofcourse once you graduate whether it be a bachelors degree or a boot camp, you're at the bottom rung by default. Yet what's unexpected about new graduates doing entry level work?

  • blisterpeanuts 10 years ago

    A computer programming class in K-12, or at least 9-12 high school curriculum, should be thought of as an introduction and not an end unto itself, i.e. this is a little taste of computer programming to whet kids' appetites and possibly lure in some who otherwise would never be exposed to the topic.

    Similarly, art and music, science and mathematics. Everyone should get some of this, though not all of us will become artists or musicians or scientists or mathematicians.

    I think it's generally a good idea, though I wish they'd leave off the "of color" qualifier; there are plenty of white children from rural areas or working class communities who could also benefit from introductory coding.

    • armitron 10 years ago

      I agree with this, but that's not the gist of the linked article.

      In fact, it's quite obvious that the way it's being presented (by president Obama among others) is exactly the opposite. They also mention the MONEY angle FFS both in terms of government spending but also expected ROI in terms of future careers !!!

      On the other hand, not a word has been written on the points I brought up in my previous comment (checks and balances, inherent difficulty of the domain, requirements that have nothing to do with training).

  • armitron 10 years ago

    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_ 10 years ago

      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 10 years ago

        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_ 10 years ago

          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 10 years ago

            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_ 10 years ago

              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...

    • rileymat2 10 years ago

      My CRUD apps are super artful.

      • armitron 10 years ago

        Hopefully we don't end up relying on them for anything serious!

        All jokes aside, there is also the diluting factor to take into account. A lot of the mechanical/boring/repetitive software engineering type tasks (e.g. javascript/php/java code monkeys that spend half of their working hours looking up answers at stackoverflow.com and the other half trying to implement said answers by clumsily glueing together 3rd party code) can be expected to go away by automation in the not-too-distant future.

        Thus we end up with extreme dilution of the prime domain by substandard/incompetent coders.

empath75 10 years ago

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_ 10 years ago

    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 10 years ago

      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_ 10 years ago

        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 10 years ago

          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.

    • jimbokun 10 years ago

      And why take a vocational track, when you can get a 4 year comp sci degree and take on many more thousands of dollars in debt, to get the same job!

    • tanker 10 years ago

      Agreed, with the additional observation that this is just a reservation builder akin to a knowledge of Microsoft Office products from yesteryear.

  • vmorgulis 10 years ago

    Java jobs are well paid and Javascript is the new BASIC. It's not a bad choice.

    • tveita 10 years ago

      Nothing the majority of people learn in High School is well paid. If these programs are effective, entry-level programming jobs will drop to minimum wage from the increased supply.

      "Coding literacy" may or may not be a worthwhile goal with a net positive impact, but it is certainly not going to let everyone get in on the current tech salaries.

      • vmorgulis 10 years ago

        > If these programs are effective, entry-level programming jobs will drop to minimum wage from the increased supply.

        I think there not very effective but can give a bit of programming culture and maybe the real programming virus to few.

        This dicussion reminds my the personnal experience of "prog21" at school on a Apple ][:

        > One guy presented this amazing demo full of animation and shaded images. I'm talking crazy stuff, like a skull that dripped blood from its eye into a rising pool at the bottom of the screen. And that was just one segment of his project. I was stunned. Clearly I wasn't the hotshot programmer I thought was.

        http://prog21.dadgum.com/87.html

    • venomsnake 10 years ago

      And C and Haskell teach you how to pick up those two in less than a week when you have mastered them.

      If your goal is not to have codemonkeys - you need to give the people skills to develop themselves further - which means knowing how computers work.

  • kuschku 10 years ago

    > You have to learn on some programming language and those are as good as any, though starting on Java sounds painful.

    Not really – but I won’t make that argument myself, but instead link to pg’s "Blub Paradox": http://www.paulgraham.com/avg.html

nmrm2 10 years ago

> 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 10 years ago

    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."

  • DawkinsGawd 10 years ago

    AI-hard - nice. thanks for teaching me a new word.

seltzered_ 10 years ago

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 )

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

  • DawkinsGawd 10 years ago

    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 10 years ago

      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 10 years ago

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 10 years ago

    >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 10 years ago

      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 10 years ago

> 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 10 years ago

    > 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 10 years ago

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 10 years ago

    > 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 10 years ago

      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 10 years ago

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 10 years ago

    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 10 years ago

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.

bdcravens 10 years ago

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 10 years ago

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 10 years ago

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 10 years ago

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

ksoul1 10 years ago

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 10 years ago

Make 'em learn COBOL!

gexla 10 years ago

> 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 10 years ago

Yes.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection