top | item 10442024

Coding academies are nonsense

75 points| _zie | 10 years ago |techcrunch.com | reply

61 comments

order
[+] slavik81|10 years ago|reply
> Visual content creation tools such as Scratch, DWNLD and Telerik will continue to improve until all functionality required to build apps is available to consumers — without having to write a line of code.

> Who needs to code when you can use visual building blocks or even plain English to describe intent? Advances in natural-language processing and conceptual modeling will remove the need for traditional coding from app development.

Seriously? This dream died long, long ago. The hard part of software development is not the syntax; it's deciding exactly what you want to happen for every possible input or event.

[+] yason|10 years ago|reply
until all functionality required to build apps is available to consumers — without having to write a line of code.

All functionality required to build old apps, that is.

This is nothing new: most people can build a website these days without understanding anything about HTML. I suppose Graham's Viaweb was similar in its user experience. You can probably write simple games without writing code by weaving together parts, objects and modules graphically and wiring up some logical connections between them from a pool of supported interactions.

But the thing is that all those are just using the machine. Programming is, by definition, creating and writing something that is new. If it wasn't new, it would've been written already and could be reused with minimal effort. Programming is about building that machine.

Thus, programming is at the edge of new, and you can never automate that. However, the edge of new might certainly change, and also change bias.

In the future, there might be less of the "new" that we do now (figuring out how to load and store data to physical devices) and more of the "new" that only a few people do now (for example, programming a deep neural network to do new things).

Yet as long as humans and computers are inherently physical, someone has to care about the lowest level of new (where the bits go) and about all the intermediate levels up to the highest level of new (someone dumping his brain into a cloud computer). You can not free a human from having to deal with bits――or qubits, or whatever we will have――as much as you can not free a human from his physical existence.

[+] _fizz_buzz_|10 years ago|reply
This is very true. The idea of visual programming has been around forever and there is nothing wrong with it inherently. It certainly hasn't quite delivered as expected. But even established visual programming environments (e.g. LabView) are a skill itself now.
[+] rubenbos|10 years ago|reply
It's true that the 'dream' has been here for ages, but I do think that automation might force us to rethink our job in the digital industry.

I recently published an extensive article about the current state of these 'code machines', if developers might lose their job to them and what our options are. If you're interested, you can read it here: https://medium.com/design-and-develop/code-machines-29b066b6...

Bottom line is that I don't think that developers should feel intimidated by machines right now, but not be surprised by their rise either. Not your coding skills, but your business will define if you’re still needed. If you’re coding basic low-cost websites at a high pace, you might run out of business faster than you might expect. If you can do it by repetition, a machine certainly can do that too. If you’re building crucial online services with a lot of custom functionality, the machines will have a harder time to keep up. Don’t worry about the need for your skills, worry about the need for your current business.

[+] wturner|10 years ago|reply
The way I like to phrase it is that humans are in a perpetual loop of creating things that make life easier in one way yet inherently more complicated in others. Then the cycle repeats to compensate for the new situation. The more granular your understanding of this in a particular discipline ( it doesn't have to be programming but it can be ) the more valuable you will be. :)
[+] lordnacho|10 years ago|reply
Coding is translation as much as translation is translation. That is to say, it isn't.

People who translate are trying to convey meaning. They are not just converting instructions from one language to another. There is intent, emotion, connotation. And you have to do this elegantly. (Everyone who grew up bilingual has spotted clumsy translations.)

I think this article takes a very narrow view of coding. Yet also a fairly common one. If you're one of the people who just wants a machine to do as you tell it, you'll be about as good as coding as someone who cooks in order to not die of starvation.

In order to really master it, just like in any other walk of life, you need passion. You need to have an aesthetic experience, an appreciation for both function and elegance.

You need to find yourself interested in topics that are not directly to hand. You may never need a Bloom Filter or Erlang, but you'll have heard of them and at least placed them on your map of the field.

Getting back to the article and the cooking analogy, better tools will not replace chefs. We have better cooking utensils and machines than 100 years ago. And yes, you need less effort than before to microwave a meal. But chefs still serve a purpose, and you would never mistake a meal made by a guy at home with what a professional chef makes.

[+] vegabook|10 years ago|reply
+1 on the idea that you may never use something but you will at least have heard about it, know it exists and know where to look, in the future if/when you suspect you might need it.

Wasn't a huge fan of applied maths during my CS degree more than a decade ago, but am very thankful these days that I had an inkling of an idea about FFTs, PCA, and stochastic calculus, all of which I have had to brush up on and use in recent years.

[+] captn3m0|10 years ago|reply
While I agree with some of the premise of the article (you can't become a great developer in a few weeks), it tries almost too hard to scare people away from programming.

>Would I like to type text files for hours a day?

The bulk of my time is spent thinking, not typing.

>Am I comfortable being a digital construction worker?

Programming is a creative job that the author is trying to sound so mundane and boring. Yes, it might not be for everyone, but showing people screenshots of GameSalad Creator, which looks quite scary is not really representative of the vast number of easy-to-use game creators we have today [0].

The fact is that programming is a highly rewarding job (both financially and mentally). As long as there is a demand-supply gap in the industry, people will try to bridge that gap, by whatever methods. Coding academies are just one such method.

If we ever reach parity on the demand/supply situation (or if Universities start training students better), these will be left redundant and new methods would evolve.

[0]: http://www.pixelsham.com/wp-content/uploads/2014/04/indie-ga...

[+] bjwbell|10 years ago|reply
I like to think programming is about being creative...but reality has stared at me too long. The large majority of it IS mundane and boring.

I just looked at the commit log for my current project, https://github.com/bjwbell/gensimd/commits/master (SIMD in Go), and ~90% of the commits are boring. I still feel very excited about it, perhaps I'm unbalanced.

[+] SneakerXZ|10 years ago|reply
We are digital construction workers because only a few of us are in a position of designers. Most of us are told by product teams what to do and if we have leads and architects in the hiearchy we are limited even more.

If you find that creative then you can find anything in your life creative, even shopping.

And I must agree 90% time tasks are mundane but for the 10%, it is worth doing.

[+] JDiculous|10 years ago|reply
Programming by and large is NOT creative. As a software engineer, I don't understand where this idea comes from.

Sure if you're coming up with cutting edge machine algorithms or coming up with the product features or designs that you're then going to implement, there might be a great deal of creativity involved. But most programmers are simply solving technical problems assigned to them by a product manager. There is nothing "creative" about fixing a bug, adding a new feature to a website (that you didn't design yourself), streamlining your deployment process, or reducing the latency on your server.

As a software engineer, the one thing I dislike about my job is the lack of creativity, which is why I find myself pursuing arts in my free time (eg. video game design, music).

[+] jseliger|10 years ago|reply
While I agree with some of the premise of the article (you can't become a great developer in a few weeks),

I don't think coding academies or the people in them would argue that you could become a great developer in a few weeks or even a year.

The other day I was talking to a friend who is doing one of the better reputation coding academies in NYC. She's learned a lot but also realizes how much more there is to learn, and she's also gone from knowing very little to understanding that coding academies operate primarily in one, high-level part of the tech stack. Over time she'll keep learning but she does have a job as a junior developer—which means someone, somewhere thinks she knows enough to be productive. AFAICT, that's what coding academies offer.

Which is, I suppose, what you say here:

The fact is that programming is a highly rewarding job (both financially and mentally). As long as there is a demand-supply gap in the industry, people will try to bridge that gap, by whatever methods. Coding academies are just one such method.

[+] discordance|10 years ago|reply
Agreed. Also, if a code academy is that stepping stone that provides enough impetus or motivation for someone to take their development efforts further, then I can't see how that as a bad thing.
[+] phpnode|10 years ago|reply
> Who needs to code when you can use visual building blocks or even plain English to describe intent?

Stopped reading there, despite predictions this has not happened in the last 20 years and I see no evidence that it will happen in the next 20.

[+] gaius|10 years ago|reply
Back in the day I worked with a project manager who would edit a spec in Word and save it, not tell anyone she'd done it, then be angry the next day when she launched the software and it hadn't changed. Because that's how plain English programming works: magic elves.
[+] scotty79|10 years ago|reply
Like good enough voice recognition? The fact that we dreamed about computers and robots since first mechanical automatons, perhaps earlier and for many years we couldn't crack it doesn't mean that we haven't and we won't.

I think the author is wrong but not because we won't have visual building blocks and flexible language interfaces. Rather because event if you try to describe what you induction cooking plate does for you using visual building blocks and English language you still end up with pretty tangled mess that only real programmer could have patience for.

[+] bilch|10 years ago|reply
More like the last 50 or 60 years: "the programming occupation will become extinct (through the further development of self-programming techniques)" (Herbert A. Simon, 1961, and the notion seems to be even older, cf. Janet Abbate's "Re-Coding Gender", page 74-75)

From the same book (p. 84): "Stephanie Shirley, who started a contract programming company in the early 1960s, later recalled: 'When COBOL was introduced, we thought that would be the end of the company, that nobody would be buying software anymore – programming – because it was just so easy.'"

[+] apitaru|10 years ago|reply
The author neglects to mention the wonderful feeling of having your code successfully compile and come to life. For some it is a special kind of high that makes all the 'construction work' worth while.

There's also no mention of the thrill of the hunt for the right abstractions - which can be both intellectually and emotionally stimulating.

The less these two factors come into play, the less motivated one would be to sit in front of a computer and click those keys all day long.

If you're set on finding out, and if you require the structure that an academy provides, and you understand the financial implicatios, then don't let this article dissuade you from trying.

Discslaimer: I'm co-founder of http://kitchentablecoders.com and http://sfpc.io

[+] marvel_boy|10 years ago|reply
I worked in a programming bootcamp and I can tell you that is a complete scam. Yes, everybody knows the wonderful feeling of having your code.... but this is related with a marketing scam where students pay thousands of dollars for nothing.
[+] calcsam|10 years ago|reply
Everything he says about programmers is also applicable to lawyers.

* Would I like to type text files for hours a day? Check.

* Do I enjoy decomposing problems into detailed lists of instructions? Lines of reasoning, but check.

* Am I good at abstract conceptual thinking? Check.

The pool of potential programmers is a lot larger than we might think.

[+] eru|10 years ago|reply
Also: spreadsheets. The world's most popular (zero-th order) functional programming language.

Legions of `normal' people wrestle spreadsheets every day. It's a brilliant model to get people started. Even better than PHP. (Only partially joking.)

[+] yojo|10 years ago|reply
I agree that there are a limited number of people that are excited about the types of thinking and problem solving that comprise typical coding. But not all of those people are already coders. 9 weeks of intensive training can get someone with the right mindset in shape to make useful contributions as part of a team.

You can self teach (I did), but having structured guidance and someone to answer your questions can get you there faster. I watched my cousin move from novice to gainfully employed via boot camp in a tenth of the time that it took me drilling with a friend nights and weekends.

Even if we take the author's dubious claim that the skills have a shelf life, it's going to be years at minimum before the demand slacks. Plenty of time to earn back the cost of admission with a significantly higher salary.

[+] asdfzxc|10 years ago|reply
Writer quotes Scratch and NLTK, as state-of-the-art tools which will take my coding jobs way... How afraid should I be?
[+] AlbertoGP|10 years ago|reply
:-) I know that's a rhetorical question, but I can say that I tried Scratch briefly on a Raspberry Pi and not the slightest worry about keeping my job ever crossed my mind, and that from using NLTK the following blog post is spot on: http://spacy.io/blog/dead-code-should-be-buried/

I've tried teaching programming to friends with STEM university degrees that were doing it as part of their jobs, and the results are in almost all cases dismal. Maybe I'm a bad teacher, but otherwise it seems that indeed a tiny percentage of the population has talent for (or maybe interest in?) programming.

More and more substandard code is and will be written; the more people writes code the more work there will be for me to clean the mess at consultancy rates. I'm not afraid at all of losing my job, and welcome any and all interested learners into programming.

[+] stlHusker|10 years ago|reply
"Do I enjoy decomposing problems into detailed lists of instructions? Am I good at abstract conceptual thinking? Am I comfortable being a digital construction worker?"

It is funny that these three questions appear one after the other in the article yet the author doesn't seem to understand the connection or the fallacy of the analogy.

Construction workers don't have to define what a 2x4 is, it simply exists. Translators don't create a new words. The developer has to work simultaneously in the world of the abstract and the concrete; the 2x4 doesn't actually exist in his world, he needs an abstraction to stand in for reality.

Very few people are able to simultaneously juggle both the abstract and the concrete. Which is why the majority of people quit; they do not have a mechanism for these mappings; how to take a requirement, represent it as a series of instructions, through the abstraction of a language.

So yes, academies are nonsense, but by using poor analogies, we simply reinforce the notion that predicated them in the first place.

[+] trowawee|10 years ago|reply
>In 15 years, those hard-won skills will be obsolete — if they ever stuck in the first place.

Whoa, holy shit, if you don't learn new things, you'll stagnate? Who could have guessed? Good point, bro, no one has made that observation ever before and it totally only applies to people who graduate from bootcamps, not to, oh, I dunno, literally any coder in the world.

Know why I like coding bootcamps? Because I left teaching, went to a bootcamp, and doubled my salary. And my job's fun and rewarding and I get to learn stuff constantly and then go home and put that stuff to use on projects that I do for myself.

[+] andretti1977|10 years ago|reply
I agree with the premise you won't be a great programmer in week or even months. This is a truth for any skill, job, passion.

I think there is a common wrong way of considering programming among non-programmers: customers and people thinks programming is easy, extremely easy but the truth is the opposite. Just try to think how much time does it require to build a simple mobile app or a webapp and how many different knowledges you have to master to do that (front vs server programming languages and frameworks, persistence technologies, deploy tools and so on). And i'm not talking about the complexity of an "enterprise application".

I think this common and misleading sense of easiness is due to the fact that people thinks that you have a lot of work already done thanks to all those opensource libraries, thanks to the ready-to-go tools like wordpress, thanks to all those beautiful and simple programming languages that every child can learn...come on, there is always an easy "build a twitter like app tutorial" so it obviously can't be that complicated thing :D

The truth is that like any other job, you must love programming to do it very well, because programming requires a lot of thinking, designing, studying, patience and perseverance and all these skills are not for everybody.

[+] nsmalch|10 years ago|reply
I call this 'inventor syndrome' because innately people want to better the world in some way, instead of just leech from technology.

MY only issue with that approach is people re-inventing the wheel. There is more code on Github than one could imagine, and not enough people evangelizing for Less-lines-of-code.

Of course it may take a programmer two decades to realize this, but what's the phrase:

"In the beginner's mind there are many possibilities, in the expert's mind there are few"

[+] WalterSear|10 years ago|reply
I stopped reading when I realized that the author was putting down more than one unsubstantiated claim per sentence.

I work with code school grads. A perfectly fine set of junior engineers.

[+] j1z0|10 years ago|reply
this is an extremely self serving article given that the author sells a tool (for $29/ month no less) that writes the code for you. Wonder why he doesn't like code academy's. There is some truth to the fact that a lot of people don't make it through code academy, but I would take this article with a grain of salt.
[+] anotherhostname|10 years ago|reply
i really didn't like the arrogant tone and the misleading content of this article. the author discourages curious people and potential talents with uncertain future self replicating apps that will replace programmers (anyway, aren't this apps made of code as well?) and shows his huge-complicated-6M-lines-of-code to cut enthusiasm once for all, forgetting to describe a process that take years and involves loads of people to end up with so much code in a complex application.

if you want to programm pick something you would like to build and work hard. the author of this article did exactly the same, the difference is that he did it long before you.

[+] dudul|10 years ago|reply
I thought I would completely agree with this post (since I do believe that coding academies are indeed nonsense), but it's so full of stupid comments.

The author seems to not understand what coding is (despite his 15 years of experience as being repeated several time, as if to make it true maybe). Coding is not just building a stupid app, coding is not translating English into some weird language. The language of choice in programming is just a detail, anyone can learn a syntax in a couple days. The real challenge is in the understanding and the modeling of the problems, the design of the solution to have all the pieces fit together.

[+] fsloth|10 years ago|reply
While I appreciate the intent - to warn people about a scam - I find the content lacking in both insight of software engineering history as well as practice.

1. The message that automated tools will replace text based coding has been repeated every decade since text based programming languages were invented. Visual programming has found it's niches https://en.wikipedia.org/wiki/Visual_programming_language but somehow I'm still producing new code in C++ - and not only due to historical baggage of large organizations (while it does have a considerable part to play as well)

2. The view that visual programming will take the hard parts away from coding is highly misleading. It applies only to the stupid parts were one needs to connect input to output b as nauseam. On the large scale it will still be about systems design, and on the individual operand level about understanding, designing and debugging algorithms.

I understood the last point very strongly when observing my 8 year old progressing with his hobby programming in Scratch. At first he was quite flabbergasted at what to do with all of the blocks - then he followed some examples, but was still baffled. After a while when my wife found a book about Scratch programming for him (we're not native english speakers so it's not as trivial as it sounds) he was extatic that he found all these examples that finally explained to him how he could implement things.

But the thing is - he's not copying the examples verbatim, he parses the examples in his head, then figures out a new interesting variation of the technique with his own art and then implements it.

Clearly he has skills far beyond simply "connecting wires". The blocks take the tedium of parsing and compiler errors away but the algorithms he needs to still implement himself.

And the familiar categories of bugs are present there still. "Why is not my spaceship moving - Oh, I'm initializing this variable inside the loop and not just before it" - a simple mouse drag - and suddenly the space ship he drew is flying across the screen.

[+] franciscop|10 years ago|reply
This article is plain nonsense amd I'm surprised it was published in Techcrunch. Saying this about programming: "Would I like to type text files for hours a day?" is like saying that writing a techcrunch article is pressing keys thousands of times. I have no idea why this article is so (negatively) opinionated, but as someone who learned programming because I love it, this strikes me as someone talking about something they have no idea about...