Who Needs to Know How to Code

To Build Websites and Apps, People Flock to Coding Classes

Learning to code is gaining popularity, from 10-year-olds taking private lessons to immersion coding "bootcamps" for adults trying to make a career change. Angela Chen takes a look at why coding is going mainstream. Photo: Brian Harkin for The Wall Street Journal.

By

Angela Chen

Updated March 12, 2014 12:52 a.m. ET

Like many 10-year-olds, Nick Wald takes private lessons. His once-a-week tutor isn't helping him with piano scales or Spanish conjugations, but teaching him how to code.

Nick, a fifth-grader in New York, went in with no experience and has since learned enough HTML, JavaScript and CSS to build a simple website. He is now working in Apple'sAAPL-0.87% XCode environment to finish an app named "Clockie" that can be used to set alarms and reminders. He plans to offer it in the iOS App Store for free.

"I always liked to get apps from the app store, and I always wanted to figure out how they worked and how I could develop it like that," Nick says.

As the ability to code, or use programming languages to build sites and apps, becomes more in demand, technical skills are no longer just for IT professionals. Children as young as 7 can take online classes in Scratch programming, while 20-somethings are filling up coding boot camps that promise to make them marketable in the tech sector. Businesses such as American Express Co.AXP-0.08% send senior executives to programs about data and computational design not so they can build websites, but so they can better manage the employees who do.

"I equate coding to reading and writing and basic literacy," says Adam Enbar, founder of New York's Flatiron School, which offers 12-week, $12,000 programs to turn novices into developers. "Not everyone needs to be Shakespeare, just as not everyone needs to be an amazing developer," he says. "But…we're entering a world where every job if not already, will be technical."

Programming languages vary in popularity and difficulty, and it takes hundreds of hours to become even a junior developer. But understanding what "code" is and knowing what's possible and what's not, when working with an IT team, is generally more important than being able to make apps yourself.

The Younger Set

Johns Hopkins University's Center for Talented Youth offers online courses in everything from essay writing to music theory, but Web-development classes have been "a juggernaut in terms of level of interest," says Patricia Wallace, senior director of CTY Online. The courses are geared toward elementary- and middle-school students. In 2009, 63 children signed up for Introduction to Web Design, one of the few coding classes then offered. This year, there are already 762 enrollments.

The classes, which began with Introduction to Web Design and soon may include Intermediate Scratch Programming, are growing because there aren't many opportunities to learn coding in elementary and middle school, says Ms. Wallace. Some parents want children to learn programming as early as possible.

ENLARGE

WSJD is the Journal's home for tech news, analysis and product reviews.

In-person coding programs for kids are springing up across the country. CoderDojo Twin Cities, a Minneapolis-based volunteer program, holds free, daylong coding programs. It has filled each of its 20 sessions with about 80 students since it launched in April. "We've had to turn students away at every event," says CoderDojo Twin Cities co-founder Matt Gray. The kids build games with Ruby, work with Linux, and—in one of the most popular programs—learn Python to build things in the world of Minecraft, a popular videogame.

Another group has started in Rochester, Minn., and a girls-only camp, Katie CoderDojo, had its first session last month.

The Job Seekers

At a recent Web Development Immersive class offered by General Assembly, an education startup that offers coding and design courses, about 25 students—mostly men, mostly in their 20s and each with a MacBook—listened to a lecture on how to use JavaScript to add check boxes to pages. Previously, the students each had completed a project using coding language Ruby. One example: A website showed nearby restaurants' health ratings.

Alina Guzman, 23, recently paid the $11,500 tuition to take the 12-week course. She graduated from Baruch College in 2013 with a degree in digital marketing. "I had worked in a marketing agency before and did stuff with a small-scale e-commerce website, but I wanted to do something different and I had always been interested in tech and websites," she says.

She took classes from 9 a.m. to 5 p.m. weekdays to learn Ruby and JavaScript. Two months after the course ended, she was hired as a junior engineer by New York-based startup Superhuman, which builds personal assistant applications.

General Assembly also has programs in San Francisco, Los Angeles, London, Boston, Hong Kong and Sydney. According to a General Assembly spokeswoman, 95% of its students world-wide find jobs within three months.

Co-founder and CEO Jake Schwartz says that coding is important because it teaches a different way of thinking. "Programming teaches logic, higher-level math and learning concepts that make you smarter and are useful no matter what," he says.

The majority of students at Flatiron and General Assembly are between 20 and 30. Flatiron accepts 8% of its applicants.

"The vast majority of our students are those who, later in life, realize that this is a really interesting career and also one where there are a lot of jobs," he says.

James Vanneman, 27, was in the first class at Flatiron School. A former professional poker player, he had been teaching himself to code with books and websites. "I'd get stuck and it'd get frustrating because I felt like I needed a place to get me over the hump of learning," he says. A few weeks after graduating he was hired as a software engineer at Concierge Live, a ticket-management service.

The Corporate Managers

Even people who don't plan on becoming developers may hear at work that they ought to learn to code.

American Express Co., General Electric Co.GE-0.08%, Staples Inc.,SPLS2.72% Merck & Co., Inc. and PepsiCo Inc.PEP-0.29% have worked with General Assembly, Mr. Schwartz says. These corporations have sent senior teams to two-day programs on topics such as Introduction to Big Data and Rapid Prototyping, also known as computer-aided design.

Summit Group, an Atlanta-based marketing company, has sent employees for the past three years to learn HTML 5 and basic Web development, says Jill Hood, Summit's director of strategic initiatives.

"People learning these skills become more self-sufficient," says Ms. Hood. Training employees in coding saves the company from having to use additional IT managers to help manage client accounts, she adds.

Lynda.com, based in Carpinteria, Calif., sells online education videos on everything from Photoshop to JavaScript. Its customers include Patagonia Inc., Volkswagen Group and Penguin Random House, says co-founder and executive chair Lynda Weinman.

Patagonia, the outdoor-gear retailer, will require its employees learn technical skills through Lynda.com in the next six months, says Ceci Saez, global director of organizational development. Half of Patagonia's 800 American employees have voluntarily taken courses through Lynda.com.

"Technology is not something in the past that we would strive for on a regular basis," says Ms. Saez. "But things have changed. There's a different cohort of people joining the company and it's necessary."

Corrections & Amplifications Lynda Weinman is co-founder and executive chair of Lynda.com. An earlier version of this article incorrectly identified her as CEO.

The idea is that everyone needs to have a basic understanding of computers, software and programming as code is becoming getting wide and deep and touching every aspect of our lives. While only a subset of us would end up becoming professional programmers, it is good to know and understand the basics. For instance scratch http://scratch.mit.edu/ is an excellent introduction to programming for kids. For adults you can look at Python which is simple and easy to understand.

No, everyone shouldn't be a coder. Producing production-quality, maintainable code is a Very Rare Skill. From my experience, I'd say that less than 1 in a 1,000 people can actually do this. It requires a truly strange combination of ability to see the big picture, combined with the ability to get each comma, quote and other syntax nit, perfect. Good software architects are even rarer. Add to the above the ability to write clear fragments of code - APIs - Before any code actually exists. I.E., They've got to know what will make the coder's life easier and what will make the project work.

As a computer clueless elderly technophobe, I checked out one of those "Teach Yourself HTML for Dumb Old People" (or something like that) books from the public library. I found it interesting and easy. Any class is overpriced if the kid is of average or higher intelligence.

Given the enthusiasm for taking coding classes, what classes have smaller enrollments? Are other skills dying out among the young? Woodworking? Music? Dance? Foreign language? Art? Cooking? Hands-on science? I've coded for almost 40 years and it's provided a very comfortable way of life....but when I think of what gives my life meaning and pleasure, coding is far from the top of the list.

The long and short of it is that the world of older people has been turned upside down. A college degree is no longer a guarantee of a middle class life, and can indeed be a source of poverty for many with the current loan bubble. Professions such as the law, which used to offer smart young people a path to prosperity have had to drastically cut costs and outsource services to survive, which involves cutting Associates. The members of the administration in Washington are at best economic ignoramuses and at worst Marxist technocrats, and have been artificially restraining recovery. Real estate costs on the coasts have soared due to government-imposed land "preservation" and restrictions on building, govt-subsidized mortgages (directly or through tax policy), rent control, and also a general influx of people over the past couple decades, which makes it impossible to buy a home there unless you're a Twitter IPO insider or you rob a bank. Government schools teach nonsense to kids instead of imparting them with real skills to help them succeed; they learn to sit and stand when the bell rings a la the Prussian system of 200 years ago.

This is the landscape young people (like myself) have to contend with. Is it logical to go to law school for $200k when just over half of law graduates secure law jobs within a few years of graduation? Does it make sense to undertake business school when the salary increase is not commensurate with the cost? Do other graduate programs pass the cost-benefit test (especially outside of STEM)? The answer is generally no.

The bright spot in the current economy is technology. This is due to a number of factors, not the least of which is that legislators haven't yet imposed severe manacles on the industry. It's probably partially a bubble, sure. But there is a real demand for tech talent out there (somewhere between 600,000 to 1 million jobs unfilled). If someone has tried tutorials on their own and seems to be competent enough to understand and even enjoy programming, it seems like $10-$20k is a small sum to pay for skills that may likely launch them into the middle class (and beyond).

These are some of the reasons I am undertaking one of these camps in April. Unlike the Ivory Tower, a primary focus of these programs is actually get you a job in the field. Fancy that!

$11,500 for a twelve-week class? There's a sucker born every minute, isn't there?

Local community colleges will teach you how to code for about $50-$70 a credit hour (i.e. about $200 per three-credit class.) You could take fifty classes for that much money.

This article isn't about actually learning how to become a programmer. It's how scammers are gulling the vulnerable with high-priced classes and camps, when the actual skills can be learned elsewhere for far less money.

Wow... this just caused an epiphany. I am an older IT guy that now directs a small financial service business. I taught myself how to design and develop (code) database application systems, websites and commercial software. And I am often perplexed at how simple logic escapes the thinking of so many of my very highly-educated friends lacking similar coding experience. I think I agree that teaching people to code will also condition them to be more logical and rational in their thought processes. And we will consider those owning coding experience but still clinging to liberal ideology to just be human aberrations.

Having jousted with computers for 45 years, using a practically unspeakable variety of means, starting with something that works along the lines of an erector set might be useful. One example is Lego Mindstorms NXT. It is built on the ideas of Seymour Papert, and uses LabVIEW as a foundation.

This is just so silly. As has been pointed out, anyone spending $12,000 for an intro coding class is by definition not savvy enough to be good at programming.

I have been a programmer since 1977, and exclusively since 1995. IMO, there is NO reason to teach programming or coding to the masses. It's not fundamental to anything. Business people need end user software skills, not coding skills. A big problem with the software industry today is the poor quality of the average programmer. Anyone anywhere in the world with internet access is your competition and it's a race to the bottom.

>> Always entertaining to see someone who "thinks" they're an > expert in a subject take a strong stance on some trivial point,> only to inadvertently demonstrate they know very little. > Thanks for the laugh, Oliver.>

I'm waiting for the evidence that software is in fact an engineering discipline.

Where are the academic programs? (Computer Science is more about math & compilers).

Where are the professional certifications?

If you're in a commercial shop, does it live & breath CMMI?

My point is that calling something "software engineering" simply because it sounds more impressive than "programmer" does not make it engineering.

NOTE: I'm not talking about software that say goes into the systems that fly airplanes. That's a whole different ball of wax. I'm talking about the vast majority of software that runs banks, mutual funds, insurance companies, railroads, warehouses, etc.

I spent the first 10 years of my career as a developer and have never regretted it. Having a solid understanding of systems design and database architecture, and how systems communicate with each other, is useful in any back office corporate role these days.

As an IT manager now, and someone who regularly hires technical people, I have to think that anyone paying $12k for a basic coding course is a chump. Toward the end of my developer career, I did donate my time as a programming instructor to community colleges where I think course tuition was perhaps a couple hundred. Moreover, most of my developer hires now are in global teams where I can hire offshore developers with master's degrees and unbelievable work ethic for about $25/hour, and pair them with an onshore team lead for communications at about $80/hour. Chances I would hire someone out of a 12 week course, absolutely zero.

If you have a good idea and want to understand better how to implement it, great. There are cheaper ways to get those skills though.

In my experience there are relatively few business problems where "coding" is a major part of the solution. The bulk of the need for most organizations is in the area of understanding business processes and how they interact and then doing the architectural and engineering work on the systems and software that best enable the efficient and effective execution of the business processes in pursuit of the achievement of corporate goals.

Systems thinking, systems architecture, object role modeling, database design, networks, integration, software engineering, etc. ... knowledge of all of the major disciplines and technologies are all key to doing this well. However, knowledge of how to write programs is a basic skill that is foundational to much of the higher level work and essential for integrating it all together to create robust solutions.

I believe we have to think broadly when discussing how to cultivate these skills in our youth and adult population. You can't just take classes on this and pop out ready to be brilliant systems architects or software engineers. We need to understand our goals in terms of future professional roles, develop competency models for those roles and then map out both curriculum and experiential paths toward achieving competence in one or more of those roles.

Teaching someone to drive nails effectively doesn't make them good a good builder and certainly not an architect. There is much more to it. But having the basic skill is fundamental and useful.

I am a retired computer programmer, and in my experience, from 20 years ago, writing a computer program is like writing a song. knowing what the notes or what the instructions tell the computer is a start, but you still still have to have in internal genius to make it of any value to the word. The value of teaching computer programming is when you find the person with that internal genius, he has the ability to express it. It is the value of teaching the student how to express themselves in any other language.

Developing software can be rewarding and fun if you enjoy doing it. I personally get a kick out of imparting a form of intelligence and awareness to a pile of electronics. Also, your logic and design can begin to deliver real value almost immediately without dealing with inertia and mass of manufacturing a physical product. The bonus is it's a portable skill in demand across most sectors, so a slowdown in one sector doesn't necessarily preclude the possibility of migration to a different one with growth.

There is often a need to keep up with the latest tech and retrain as it changes over a typical working career, hence the need to enjoy continuing to learn about it. And the low mass of products comprised essentially of logic lowers barriers to entry, so you may increasingly be competing directly with a broad arena of globally based coders unless you can differentiate yourself.

Funny how everything that goes around, comes around. When I was a kid, one guy could make a video game; the sound the graphics, the game mechanics, characters...everything. Game creators became rock stars (at least within the nerd community). Then, as the power of the devices grew, it took a Hollywood production studio to create a game...no one person could possibly do it all. Now, we are back to the "create a game and get rich and famous" time just like in the 1980s. I suspect that soon, when your smartphone has 32 cpu cores, can render 100 giga-texels per second, and can do all this for 12 hours on a single charge without burning up in your hand, the Hollywood game studio will be back... :-)

*** WARNING - SCAM ALERT *** Total 100% waste of your money and your time. I am in the business and am a software analyst for a large company, have been doing this for a lot of years/decades. But I also learned all this and got my webmaster certificate, blah, yada, boloney. I can show you one website as the reason why, see below. Look up any website code project you can think of and watch the thousands of offers for dirt cheap Indian, Pakistani, Russian, You Name It Arm-pit Place In The World pour in. They will charge $5/hour and code you under the table. This is one part of the computer business that is international and your rates will have to match theirs or you won't get work. Want to work for $5/hour...go ahead. There is a sucker born every moment. Waste of time. Waste of money. You'd be better off moving to North Dakota and working on the oil fields...at least then you might score a paying job.

I enrolled at the Computer Learning Center in LA in 1981for a six month intensive course that included Logic(flowcahrting), RPG, Cobol, IBM assembler and intro to systems analysis. Before they would admit me, I had to take the IBM programmer aptitude test. Those who could not pass it were diverted into operations, computer repair or something more in line with their aptitude. And that is what is missing here. It starts with a measurable aptitude. There is only so much that you can acquire without it. The danger of these boot camps for people who will never code for a living is that what they think they know will make them sand in the gears. Anything else I wish to say has been well expressed by my contemporaries.

As a coder myself, by vocation if not by training (I hated "Computer Science" classes in college, btw- I hope they've gotten a lot better than they were back then) I'm teaching my son about coding right now.

Do I think that means my son will become a coder? Not really, no; becoming a coder is a bit like becoming a concert pianist, in the sense that it's not a quick thing to decide to do nor it is it a quick thing to truly master. I still learn something new daily, which is one of the great joys of the profession!

But understanding the basic concepts, like "this is how computers actually deal with input and output", learning about logic and mathematics- those things are useful no matter whether he decides to become a plumber or a lawyer or an auto mechanic.

Computers will be different by the time that happens; perhaps quantum computing will have become more commonplace and mobile computing will have reached the next big tier. But it'll still be dealing with inputs and outputs and logical structures that a human mind had to make decisions about.

I don't think the comparison between knowing how a car works and how code works is entirely valid; learning how a car works teaches you a bunch of concepts that are pretty narrowly defined, technologically speaking (and in danger of suddenly becoming invalid), but learning about code teaches one about logic and the creative use of mathematics to construct real things that actually work, which is extremely valuable and empowering; while a language or a library or an engine may become obsolete, the concepts do not.

Doesn't it seem like most software developers are liberal? Aren't Google, Facebook, Apple, etc liberal companies? I for one have a hard time reconciling conservatives who actually go to church every Sunday and then come on these sites and disparage the poor, lackadaisically support violence as a way to solve problems, etc. How logical is that kind of behavior?

I don't think a software developer is going to get far thinking of software development as an art. There would be no appreciation of the solid connection that objects have with one another. I have a C.S. degree, but when I started working on a circuit board in my spare time, I found the concepts very similar. Actually electronics was much easier. I also work with CAD designing a mechanical device in my spare time. I'm finding computer programming to be a much more intensive logic workout than these hobbies of mine. From a professional perspective there are some differences. Engineering has existed for thousands of years and software development, as we know it, has been around only a couple decades. Perhaps it's not engineering, perhaps it is, but it is not an art because there are many rules than cannot be broken, which art allows.

It sort of sounds like mentioning CMMI is a way to make engineer sound more impressive. I don't think software development needs CMMI, but that doesn't mean it's not engineering.

The important thing that differentiates software development from other professions is that it can be tested and rewritten until it finally works. If you build a bad bridge, that can't just be fixed with a patch like software can.

Also, most people don't really appreciate that good computer languages are based on deep connections to the architecture of the machines they are built upon, and connects them to human logic. Whether you call it engineering or not, I don't care, but it is more of a science than an art.

I agree, a 12 week course isn't going to create a software developer. It takes years of persistence to learn all the intricacies of just one language, then there are multiple platforms and how they interact. Few people have the patience for that, but it's necessary in order to become proficient. Working in code day after day year after year drives a lot of people crazy, and make them downright mean sometimes, but I'm happy to say that I am still cordial to people and love the creative aspects of my work.

While I'm largely an accountant/business consultant and wouldn't call myself a programmer, I often encounter source code from folks who really shouldn't be programmers but are and I must fix it for them since they lack the appropriate mindset in order to write maintainable / readable / logical code

There has been a similar vacillation between central and distributed computing over the years. Now a lot of service oriented "thin client" web development is starting to resemble the old mainframe paradigm.

Understanding how a car works is understanding the fundamental physics and engineering concepts. Those don't change over time. An internal combustion engine has always needed fuel, spark, and air to work for the last 100+ years. Understanding these concepts makes it very straightforward to understand new technology (replacing an ICE with an electric motor for example). The same principle applies - the details may change but the fundamental concepts do not.

You've never actually met one of us, have you? I'm a long time professional software engineer and there are have been very few liberals in any shop I've ever worked in. Why? Because you cannot lie to a compiler. You can't hope that something works. You are forced to live in reality.

Yep I’ve had the joy of working with those that stayed at a Holiday Inn Express the night before and thought they knew what to code to handle the business conditions, course they didn’t test it to make sure all the moving parts would go together as planned. Then the smart, young guys and gals from Ernest & Young Consultants (software engineers) requested more “consulting time” to fix the problems that they failed to foresee and include in the original execution plan.

This copy is for your personal, non-commercial use only. Distribution and use of this material are governed by our Subscriber Agreement and by copyright law. For non-personal use or to order multiple copies, please contact Dow Jones Reprints at 1-800-843-0008 or visit www.djreprints.com.