Coding Academies -- Useful Or Nonsense? (techcrunch.com)
An anonymous reader writes: Stephen Nichols, CEO of a platform that helps non-coders create simple video games, thinks that so-called coding academies are essentially snake oil. "In 20+ years of professional coding, I've never seen someone go from novice to full-fledged programmer in a matter of weeks, yet that seems to be what coding academies are promising, alongside instant employment, a salary big enough to afford a Tesla and the ability to change lives." His point is reminiscent of Peter Norvig's in "Teach Yourself Programming in Ten Years."
Nichols also thinks coding tools will become powerful enough in the next decade that the demand for actual, dedicated coders will diminish (perhaps not surprising, given his business). But he's probably right that the people likely to go to a coding academy are likely to be the ones using those tools, when they arrive. "Put succinctly, coding is writing text files in foreign languages containing instructions suitable for an absolute idiot to follow. ... For a little while, spending tens of thousands of dollars on a coding academy might feel like a good way to surmount the intimidation. ... More likely, it is just a new pathway into debt."
Nichols also thinks coding tools will become powerful enough in the next decade that the demand for actual, dedicated coders will diminish (perhaps not surprising, given his business). But he's probably right that the people likely to go to a coding academy are likely to be the ones using those tools, when they arrive. "Put succinctly, coding is writing text files in foreign languages containing instructions suitable for an absolute idiot to follow. ... For a little while, spending tens of thousands of dollars on a coding academy might feel like a good way to surmount the intimidation. ... More likely, it is just a new pathway into debt."
Coding academies are nonsense and attract the kind of mind that becomes a lawyer because they want money, or becomes a doctor because they want money. Real programmers have gravitated towards their field long before ever having a formal education in it. Also, I highly doubt you can teach the computer science concepts that back up this field in a few weeks. Really, these places just produce code monkeys who don't really understand what they're doing but glue pieces of code from Stack Overflow together.
Teach them math and critial thinking... Coding is just a translation level. ie human "compilers". Taking one language and encoding in another. As C++ is converted to binary (or P-code to bin).
Writing code easy ANYONE can do it. Understanding what you are writing is meaningful, actaully does what you want? That is crital thinking.
"Cram courses" that teach a programmer how to use a totally-new language, totally-new development environment, or even totally-new paradigm are probably useful and worth the time, but they may or may not be worth the money.
Ditto if the student is someone who has many years of experience thinking in logical terms that "map well" to the kinds of thinking that good programmers use every day. The 4 questions at the end of the article are a good ones anyone going this route should ask before they invest the time and money. Another good question is "is there a cheaper/faster/better way for me to learn what I want to learn besides going to a cram-course or coding academy?"
(warning - off-topic material head)
Then there are the "academies" that are designed to give you "more than passing familiarity" with programming but aren't designed to make you "job-ready." I'm thinking mainly summer camps for children and teenagers but also non-credit "life enrichment" courses for adults that teach basically the same skills you can learn in a "teach yourself FOO in N days" or "COMPLEX_TOPIC_FOO for dummies" books.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
coding is writing text files in foreign languages containing instructions suitable for an absolute idiot to follow
The hard part isn't writing code. The hard part is knowing what code to write.
It's called attrition rate. For any profession there's a relatively small amount that stay within that profession for 10, 20, 30 years. The counterexamples to this rule are the professions that tend to be taken by people that wanted to be in that profession for all of their lives. i.e. an MD or a lawyer. I'm sure coding academies will attract a high amount of novices. But from that influx there will still be some percent - perhaps even 0.001% - that just springboard after it.
Is it enough to call it not snakeoil? Probably not. In my totally unscientific and personal experience, programming languages and frameworks usually have sufficient information for me to figure them out and know how to use them. That includes the very basic stuff of learning java, for example. If you name a programming language there's a way to teach yourself it for free. So the coding academies are vying for a portion of a market with a "free" and viable enough alternative. I'd call THAT snakeoil.
PS: I don't reply to ACs.
I work with people who graduated with bachelors or masters degrees in CS programs from prominent US universities and even they don't know how to code very well.
Maybe a minority of students can learn the basics from a bootcamp but that's about the most of my expectations.
Everyone I work with is completely self-taught. Yes, people do courses and obtain certs so they're noticed by HR when they submit the resume.
I've never seen any of these courses or even formal CS education produce a John Carmack, ever.
Over 40+ years of professional coding, I've been hearing that coders will be unnecessary any day now. Still waiting.
More to the actual point, no, a 10-week boot camp can't create an effective developer (I agree with Norvig, mostly). A boot camp can help someone get past that initial barrier to decide if they a) like coding and b) have any talent for it. I think the biggest weakness of the bootcamp approach is that, to be effective, they need to be highly structured. Like training wheels, eventually the structure falls away and then what? If the companies looking for developers really do need armies of the coding equivalent of ditch diggers, bootcamps might work. If you look at the bootcamps as a sieve that finds the small fraction that will become proficient, that's a different proposition and one that's harder to sell to the students.
I've been programming since I was very young, before i could even read, code games as an indie and went to Carnegie Mellon for Scientific Computing, and I have a hard time finding any work at all. I can't imagine someone finding work in this economical climate without at least 5-10 years experience. Part of me suspects the jobs aren't even real jobs, but just fakeouts to petition Congress for more offshoring.
We saw this with Visual basic and the PC boom in the early 90's. Give any kid a PC and copy of VB and he will grow up to be a super rich tech mogul and make a million bucks selling his ingenious software. If it turns out your kid does really like the computer no problem he'll probably become a doctor or something because hey growing up with a computer in the home will make him super smart so med school will be a breeze.
Its the same false promise sales pitch with a new twist. Rather than selling it to parents they are selling to under employed folks looking to catch a break themselves. I actually think code academies are great but not for the folks they target them at.
You can't give someone tools however powerful and bit of quick instruction and expect them to be an expert. A lot of what makes a good programmer is, experience. You don't really understand how to design software, until you make some design mistakes in projects that are larger and longer lived than a class room exercises or been forced to live with and maintain software by others who have made those mistakes. The tool box and language I don't think matter or not. Its not like your program is Object Oriented because you typed 'class' somewhere. Knowing how to define a class in $language does not mean you know what belongs in it. Even procedural programing has to be learned in that way. Coupling and Cohesion being done right mean the difference between a maintainable extensible C program and some soup that only the compiler understands and you won't ever be able to alter or extend let alone anyone else.
On the other hand I went to college and learned all the theory spent some time in industry and wanted to get up to speed writing Android apps quickly. Already being comfortable in Java and already understanding software design principles beyond some memorized definitions. It was a great way to get familiar with the API and the specific technologies. Faster than just reading the documentation and sample apps anyway, and it was great to have someone with a degree of expertise to ask questions that was paid to answer them. So for me it was great. The non programers who showed up on the other hand I really wonder what they got out of it. They learned to create a project in the IDE, the can add some to the per-canned sample activities but I don't many of them know what a class is and none understand at all what the anonymous classes are doing, to them its some stuff you paste to catch the event. They can't really develop for the platform having completed the course. They can produce something with the functionality of a web form, with less portability and inferior performance; not money well spent.
I don't know what this "Coding" stuff is that seems to have popped up in the last 5 years or so, but it seems to be some sort of watered down, hiptserized version of programming.
If someone has the ambition and aptitude to learn how to code they'll find a way to do so, with or without specialized schools. All those schools will serve to accomplish is to spit out borderline engineers who never should have entered the field in the first place.
All these Learn to Code academies remind me of the Learn C++ (or Java) In 21 Days books that crammed the tech bookshelves in the 90s.
Not needing coders has the same track record as cold fusion. Any decade now!
Nichols also thinks coding tools will become powerful enough in the next decade that the demand for actual, dedicated coders will diminish
Just because there are more and more powerful tools does not mean that the need for people to understand how to use them will diminish, any more than cheaper and better hammers have led to a decline in architects.
What it WILL mean is more and more custom and tailored software being built, which is great.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
You are WAY too generous with the term "Engineer". I would describe them as low quality code-monkeys. I consider a 4 year BS in CS from a state school held by someone who studied CS because they wanted to build video games an average quality code-monkey. "Engineer" to their face if I want something from them.
The old school system needs some change but what is the best way to go?
The University system now days costs to much and some case all the required classes can push it out to 5 years.
Well rounded is nice to have but now days lot's of people will be better learn more skills and not PE classes that cost more then a 2 year gym / club membership for just 1 class. Some still have the swim test. I say just by cutting the filler / fluff classes we can get it down to 2-3 years.
The tech / trade schools are more hands on (still 2-4 years) and they have less theory classes. Some theory is good but at some University they trun out people who have very little hands on skills / are not ready for real work.
The old on idea of your on your own needs to go. There have been cases of people getting in trouble for reusing old work / doing group work in class. also classes that are about cramming for the test need to change as well.
They used to have these so called coding schools back in the 60's. I went on an interview with one and after they gave me a test that was supposed to show that I had what it took to learn COBOL, they gave me a double A on the paper. A few days I got a job at a major software company. They said that they didn't hire people who went to those schools because it showed them that that person was stupid for having gone to one. They said (rightfully) that everyone who too the coding schools test always passed it. I self taught myself COBOL and assembler while working as an operator and enjoyed a career as a software engineer afterwards. Coding schools are nothing more than another tech school ripoff in my opinion. They wanted $500 for the training back then. I am sure that it is thousands of dollars today.
Maybe America just needs to reform its post-secondary school system, the rest of the world doesn't cost nearly as much.
to be willing to take the least money, know enough not to answer a few questions vague during the tech interview and the willingness to lie like heck on your resume.
Oblig http://www.abstrusegoose.com/249
You left out
* Teach Yourself Time Travel in 21 Days!
'Cause you're gonna need it if you hope to do the others in 3 weeks each.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
* Some countries excepted. Have you seen the cost of tuition in the UK recently?
The real "Libtards" are the Libertarians!
For example, ITT Technical Schools is the latest in a string of disasters in privatized for profit education. They got caught lying to pretty much everyone: state and federal authorities, investors, and students. Here's an example of how these scumsuckers operate.
This comes on the heels of Corinthian Colleges declaring bankruptcy. Goldman-Sachs owned a large stake in them before they went under. "In 2010, CCi reported that it received 81.9% of revenue from Title IV federal student aid programs." Corinthian is also now the target of multiple civil suits and criminal investigations.
All the money that went down these rat holes would have been better spent on existing public education institutions, like community colleges and four year degree schools. This is just another painful example of how the private sector fails at some tasks and that many activities are best left to the government.
Why is Snark Required?
https://www.youtube.com/watch?v=kNm1WL89JSc
Write in Bernie Sanders 2016. Defeat the coronation of Grand Duchess Clinton.
Everyone can code, feh! Only some of us can code. I wish everyone could code. It's up to us architects of automation to look out for our brothers and sisters who cannot code.
I hope you've remembered your spare gas can. The walk to the gas station will be for your own good. Stay away from major cities in 2019.
UNLESS
Lot is? Lot was? Something belongs to the lot?
> Nichols also thinks coding tools will become powerful enough in the next decade that the demand for actual, dedicated coders will diminish
For those who might not know, this has been predicted for decades.
Here is the cover of PC Magazine, February, 1981:
http://it-careers.pbworks.com/f/1192117231/tlo.gif
The actual solution to Higher education is really just two systems. Tafe and University. In Australia we have private for-profit colleges. They are shit. Full stop. Tafe is basically a trade college. You get your CCNA Routing/Switching over two years, your CCNA Security, and your MCP, and Novell CNA. You also have to install Linux and Windows server and client operating systems. the total cost? $3750 for three years of tuition. Fees were capped to $1250/year, and *surprise* there's work straight out of school with recruiters beating down the door to get Cisco/Linux/Windows server certified graduates.
University courses are very theoretical and I would argue that there are many predatory University degrees. They advertise things that students want to hear such as multimedia, and game programming. Then they teach Java and 13 weeks of Maya. Hell, Australia doesn't even have a games industry. We have maybe 50 profitable indie studios and 0 major studios. Every time a large gaming house starts in Australia such as 2K Aus, or Ratbag Games, they get bought out, stripped of IP, and closed by a major US publisher within 3-5 years. The local industry and prospects for working in the industry is a joke. Our lecturer straight up told us that after 13 weeks none of us would be 3D artists and none of us would know even 10% of Maya's features. Combine this with a $15,000 debt for a 3 year degree (as of 10 years ago). Yeah I don't think university is worth it unless you're going to become an engineer/lawyer/doctor.
Nichols also thinks coding tools will become powerful enough in the next decade that the demand for actual, dedicated coders will diminish
That's what they said when they created Cobol.
Seriously I've seen this same pattern over and over. Some company comes up with a "power user" development tool which is seen as the best thing ever because it will allow business users (who have business knowledge) to do everything themselves. But unfortunately the tool never does exactly what is needed and it proves a bit too tricky to configure so either the thing is shelved or it's passed on to a team of "real" developers so they can integrate in-house tools with this piece of shit and work around the bugs. It's a nightmare because the tool is too high-level and limited for a programmer to easily sets his hooks in, so rockstars run away from that project (or company). That team becomes a dark pit where only lifers and quota employees are thrown in, and they are miserable and the whole thing sucks and there's champagne for everyone whenever a ridiculously low hanging fruit goal is achieved.
A power user development tool is even worse than an in-house "framework" designed by some dude who left two years ago to do whitewater rafting in South America and never came back.
lucm, indeed.
I first heard (a variant of) this idea in 1981. Don't hold your breath waiting for it to happen
Requiem for the American Dream
I have hired a number of 6 weeks immersive course graduates for our development team. Although skills and aptitude is certainly variable several have shown themselves to be excellent engineers, in some cases outpacing their traditionally educated team members.
That said there are certainly gaps in their education and general understanding of the field but that does not preclude them from making a general contribution.
It seems people have very short memories and don't recall Bubble 1.0. The only difference between "coder bootcamps" and "MCSE bootcamps" is what's hot now. In the late 90s, if you weren't an HTML, Java or CGi guy, there was a huge market for system admins as well. Now there's less systems focus because of "the cloud" but there sure are a lot of phone apps to be written. The result is the same -- less-than-honest training companies selling the dream of being a hotshot app developer in just a few short weeks.
I'm not a developer, I'm a systems guy with 20+ years of experience. Back in the late 90s, I graduated with a non-CS bachelor's degree, got a help desk job and taught myself the fundamentals of the network ecosystems back then (NetWare, OS/2, Windows NT, etc.) As part of the self-teaching, I took the Windows NT MCSE exam track. Slow going, but I learned a lot, including the fundamentals not covered by the exams themselves. A few years later, I had a good solid system admin job and my company sent me to one of the MCSE bootcamps for an upgrade cert. I wish I had saved some of the ads for these places from back then. They were doing what ITT Tech, University of Phoenix, etc. are doing now -- selling completely green newbies on a 2 week course to get them their MCSE for some ongodly sum. I am not kidding when I say we're still working through managing out some of these paper MCSEs from the systems world in 2015. I sound like an old stick in the mud, but these shortcuts around the fundamentals produce some really screwed up employees. There are still people who can't use the Windows command line, can't script/automate anything, and have no basic troubleshooting skills. And sometimes, employers who have been burned paint us all with the same brush.
If you're just reviewing material for a certification, or need to learn a new language in an intensive environment, these bootcamps are fine as long as you have some fundamentals to fall back on. They are not a substitute for learning a subject in more depth.
"Software development tools will soon understand what you mean versus what you say". Ok, so we are going to get better results from writing vaguer instructions and putting it into smarter tools? Hasn't he been in a corporate environment where people every day request one thing and expect the program to do something different because what they mean is not what they wrote? Ever since Babbage, people have expected computers to read their mind, and there's no magical method of doing so that's around the corner.
You can get from novice to a full fledged programmer in a couple of weeks. Back when I started college, I felt that I was a dismal programmer and my teacher suggested I should look at the (now legendary) book "Thinking in C++ "by Bruce Eckel (he was the one that inspired a lot of "Thinking in" copy-cats). So I did - I went through all the content and did all the exercises suggested. It took a couple of weeks of long hours since it's like 1000 pages long, but at the end I felt I understood programming to an acceptable degree.
The 20 years that followed just validated my experience - while I had to learn some specific areas of computing for specific projects, like WinSock (hey, it was the 90's), or parallel programming (which admittedly took another similar learning session), I was always head and shoulders above the average corporate developer.
I've also seen a lot of other people do it in a similar way - a relatively shor burst (like up to two months) of concentrated learning and self-training. On the other hand I've never seen a shitty programmer become a good programmer slowly over the course of 4 years. That just does not happen - either you put the effor in and become better rapidly, or you half-ass it and learn very little.
The problem with the coding academies is that they have low standards and they don't push people. A lot of folks don't have the patience necessary and should be failing these courses, but they are handed the certificate anyway. That's just the way it is with diploma mills.
What, when you want to be raped in the butt?
... throwing it all up against a wall and seeing what sticks.
Or... infinite monkeys.
They figure they run enough people through, eventually they'll run across some talent they can use, of course taking in a lot of money in the meantime.
It's a low-risk, high-profit model that will quietly churn away and generate money while occasionally producing a brilliant yet unsavvy programmer who will work for less than they are worth.
There are fundamental capabilities involved in developing appplications that involve the process of logic, scientific method that all come from a structured STEM education. Learning syntax and best practices for developers can only be useful when layered on top of a structured STEM education. Some of the capabilities that come out of that STEM education are the proper use of logic, scientific method and one of the most important items: knowing what you don't know. How many of us have worked with that self taught programmer running around acting like they are the be all end all when they don't know their head from a hole in the ground? When you work towards that degree in STEM you get a sense of humility from having to work so hard to get decent grades in those classes. Science, math and engineering is f'ing hard. You have an appreciation of the science, math and physics that go into developing something that the self taught programmer with the HS diploma simply doesn't have. Further, you can be d*mn sure that HS grad/self taught programmer wasn't taking AP calc and physics in HS otherwise they surely would have moved on to getting at least an undergrad degree in some STEM discipline. I did a lot of work with rules engine deployments in the late 90's/early 2000's with large financial organizations. The selling point of these rules engines was that you could take your business people and have them build the rules that were fed into the engines. It went poorly. The fundamental reason was the business people simply had no good base in logic to string together their rules so they actually worked. You end up with having a bunch of engineers having to support the business people because of all the logic errors/incompatibility of the rules built by the business people. And when the rules engine would choke on their rules the biz people had a difficult time figuring out the problem(s). These tools that are being created to allow anyone to create apps are certain to face the same fate as the rules engine. Fundamentally, an app needs logic, loops and blocks and that's where the breakdown will occur for the non-programmer building the app. You will always need the trained engineer for app development. All these tools can do is reduce the amount of grunt work necessary to build the apps. You will need fewer programmers to do app development and that's a win. And the developers that will be cut off the payroll because of these tools are those self taught ones that really don't know what they are doing anyway.
Let's start an academy to teach students to become teachers in Japan by teaching them Japanese. The students initially know almost nothing about developing courses, lesson plans, etc. or teaching anything in any language. The academy does a fine job of teaching them the Japanese language and they get diplomas. They now have the useful skill of knowing the Japanese language. They still don't know how to teach.
I started programming in the 1960s and have written software in over two dozen programming languages on many systems, most of them now obsolete. (I'm a retired old fart.) The hard part isn't learning a programming language, it's understanding how to formulate a logical approach to constructing a program that will perform the job it was built to do.
Mastering heuristic skills and effective processes to get from initial concept to final program is about 90% of the work. Languages, development environments, and methodologies are simply the tools, so the best programmers consistently add more tools to their toolkits.
The focus on coding (at most 10-15% of the whole job) is a disservice to the students. It's like a flight school whose students never get to fly a plane, despite promising to qualify them as pilots.
It was more like 2 years rather than three months. They didnt have IDEs then, so it more tedious writing code.
This trade school taint cause some reluctance for big name schools like MIT and Stanford to delay creating CS departments and offering programming classes. Sort felt like teaching typing, something they should not offer credit classes in. MIT didnt have a formal CS degree until 1980, several years after I went through. You could minor in CS in EE, business, or math.
"Just around the corner" since the 1950s. COBOL and FORTRAN were touted in this vein when created. At least compared to Asembly, they were more productive. Graphical programming environments, UML, IDEs where all touted and practically automatically coding.
As an eigth grader, I went to the local library and got a Borland book to teach yourself C++ in 24 hours. Over the course of a week (2-3 hours a day) I learned numbering systems, data structures, structured programming, and object oriented programming. I also had a nice little program to solve triangles for my Geometry class. I struggled with recursion because the Towers of Hanoi example is stupid... but I had all of the core concepts down.
So anyone who says you can't learn to code in 24 hours is wrong. Period. I did it at age 14 in about 20 hours using a book from the local library and without anyone prompting me to do it or helping me in my effort. It's not my fault if other people are stupid... but don't try to tell me it can't be done.
I find this a bit of a straw man argument. Its not as if Colleges and Universities that have 4 year degrees in CS, Math, etc are teaching all that a person will need in the field. This is knowledge work, you have to learn constantly, and if you don't you're at risk of obsolescence. A University degree doesn't make you a full fledged programmer either, because often you have catchup learning on that first entry level job.
Only if you live in it.
SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
I use sites like codecademy quite often, but I already have a degree. Great for learning the basic syntax of a new language or framework, or for getting a quick refresher for something I haven't used in a while. Can't say I know how successful it is for new programmers.
Nichols also thinks coding tools will become powerful enough in the next decade that the demand for actual, dedicated coders will diminish
Then, we will tackle more difficult programming problems, like we always have.
This whole "learn to code" craze misses the whole point. If you are taught to just code you will start by banging away at the keyboard. "Learn-To-Coders" will generate a whole lot of unstructured, bug-ridden, unmaintainable code that will haunt real programmers for years. We should be encouraging software design, good architecture, and how to build maintainable well structured code--with maybe even unit testing.
Related to what you are saying, I have a revised maxim:
Those who can, do. Those who can't, move into management.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I say just by cutting the filler / fluff classes we can get it down to 2-3 years.
Those filler / fluff classes provide the only opportunity most engineers / computer scientists / IT professionals will ever have to learn to be competent writers (and thus able to document their designs), or competent thinkers with respect to any subject other than engineering (such as history, philosophy, economics, or the other social sciences).
Motivated people can study these things after graduating (the Teaching Company has some good video lecturers, and there are lots of good books out there), but only a tiny percentage will ever make the time. Even then, without an useful feedback process, learning will be limited.
Given the current obesity epidemic, it should be clear that every adult needs to be trained to exercise on a regular basis as well. Why should the rest of us pay for the massively inflated medical costs of the obese?
In short, grade school and college are the sole chance society has to help grow the majority of its children into competent adult citizens. Current grade school doesn't come close, which means the burden has to be pushed off to college.
Unfortunately, the publish or perish system tends to make a lot of potentially valuable courses useless. Of course, if more people understood ethics, this system wouldn't be permitted to continue (and we would have massive reform of the legal system with respect to legal ethics, which would fix a lot of the patent / copyright / trademark / contract law issues we love to discus here).
Large class sizes are also a problem, since nobody learns as well without useful feedback as they do with it. Of course, that's also the case for the technical classes, but it does contribute to a misconception (common among Slashdot posters) that the humanities and social sciences are fluff.
No doubt the large numbers of unethical lawyers and corrupt politicians out there are very happy to see suggestions like yours; that is, suggestions to the effect that we reduce the course load in the subjects that actually let people realize how badly they are being routinely screwed by both groups. Maybe you didn't realize this was happening? Perhaps you took the wrong classes.
I'm a network engineer: do some systems stuff too: and as such, I dabble in some scripting, and have some very basic fundamentals in programming. but if I were to start looking to build or contribute to an existing application - even simple things like a jeapordy board, I'd find a way to do it that is more manual and/or without any randomization.. or it would take me way longer than I know it would take even a not-so-skilled guy.
I've been looking at code academies to help give me some skills as a garnish to my current skill set / make my life easier. Is it as useless in this context?
If it had been invented by a man you'd be saying it was the best thing ever.
What is the point of learning to program if you are an American or other Westerner? These companies just bring in foreign workers from third world countries at a cheaper rate to do the coding for them and won't even look at domestic workers at all because they are wrongly considered inferior, lazy and too expensive to employ. It is a waste of time and money learning to code these days when some foreigner will do it for tiny fraction of the pay of a domestic worker. It is like an American wanting to be a fruit picker these days when the jobs only go to migrant workers.