The Kollected Kode Vicious

Kode Vicious - @kode_vicious

  Download PDF version of this article PDF

Kode Vicious

Koding Academies

A low-risk path to becoming a front-end plumber

Dear KV,

I have a friend who is looking at various coding academies and asking for my advice on courses. It has been many years since I started my career as a developer, long before coding academies existed, so I'm not quite sure what advice to give. What advice would you offer?

Academy without Academe

 

Dear Academy,

If you were a true friend, you would advise the person to go do something productive like selling drugs or prostitution. People seem to have an endless need for sex and drugs, and so those markets are unlikely to dry up. The skills required are basic and nontechnical and can be learned by simple apprenticeship, which is cheaper than a coding academy or a formal, undergraduate education in computer science.

Given the actions of many large tech companies in the last decades, especially those that live off advertisements, there's probably not much difference between prostitution and working for a tech firm, although it is true you get paid more for prostituting yourself to foreign governments or big business than you do when selling your body to one of their C-level executives at a party at a high-end club. If KV had it to do over again, he would have picked streetwalking. Sure, it's dangerous, but at least you're outside more of the time, you get some exercise, and you don't spend your day at a desk cursing an inanimate object. But, alas, it's too late to pivot to a life of selling my body at this point.

KV suspects that your friend won't opt for a life of crime, so let's talk more about what it means to learn to be a developer in 2019. Coding academies started sometime around 2010 and were meant to address the fact that many companies were searching for people who could write the code necessary to promote their products and services, most often referred to as "front end," because, honestly, you would never want to see what was at the "back end." What these academies teach is neither computer science nor software engineering, but they do fill a current niche in the coding world, and they can be an entr?e into the world of technology, which is fiscally rewarding. As with all things in the world of technology, including the human systems such as the schools that support that world, it's most important to look at the limitations of any product or service.

Most coding academies structure their courses such that they provide a student with a short path to a new job, often suggesting, but never promising, a job after a three- to six-month course. I can think of no better analogy than the trade schools that used to be advertised on late-night television—the ones where you got a free toolkit after completing your certificate course in plumbing. The point of any such trade school is to provide students with the minimum skills required to practice whatever trade they are studying, and coding academies are no different. Look at the webpage for any coding academy and you'll see the usual m?lange of keywords you would expect for jobs building websites in 2019: HTML, CSS, JavaScript, Python, Django, Ruby on Rails, React, Angular, SQL. To those of us who spend our days working in software, only a couple of those are actually programming languages that we would recommend as part of software engineering or computer science.

When weighing any course of education, it's best to think in terms of what you get out for what you put in. The best technical educational experiences provide mental tools and frameworks for solving real-world problems across a broad spectrum, which is why a four-year degree usually takes four years. This is not to say that a four-year, university program is required to learn computer science or software engineering, but it does indicate the amount of time and effort that will be required to learn skills necessary to be broadly effective in the field. Universities are expensive, and so the coding academy model should be thought of as a short-term, lower-risk way to find out if working in technology is the right fit.

Encourage your friend to pick a course that will introduce concepts that can be used into the future, rather than just a specific set of buzzword technologies that are hot this year. Most courses are based around Python. Encourage your friend to study that as a first computer language, as the concepts learned in Python can be applied in other languages and other fields. And make sure to be very direct in explaining that the certificate effectively makes its holder a front-end plumber, able to unclog the series of pipes that run between businesses and consumers' wallets, and that becoming a software engineer will take quite a bit more study and practice.

KV

 

Related articles

Coding Smart: People vs. Tools
Donn M. Seeley
Tools can help developers be more productive, but they're no replacement for thinking.
https://queue.acm.org/detail.cfm?id=945135

Saddle Up, Aspiring Code Jockeys
Kode Vicious
A koder with attitude, KV answers your questions. Miss Manners he ain't.
https://queue.acm.org/detail.cfm?id=1165762

Programming in Franglais
Rodney Bates, Wichita State University
Six of one, half a dozen of d'autre.
https://queue.acm.org/detail.cfm?id=1036495

Kode Vicious, known to mere mortals as George V. Neville-Neil, works on networking and operating-system code for fun and profit. He also teaches courses on various subjects related to programming. His areas of interest are code spelunking, operating systems, and rewriting your bad code (OK, maybe not that last one). He earned his bachelor's degree in computer science at Northeastern University in Boston, Massachusetts, and is a member of ACM, the Usenix Association, and IEEE. Neville-Neil is the coauthor with Marshall Kirk McKusick and Robert N. M. Watson of The Design and Implementation of the FreeBSD Operating System (second edition). He is an avid bicyclist and traveler who currently lives in New York City.

Copyright © 2019 held by owner/author. Publication rights licensed to ACM.

acmqueue

Originally published in Queue vol. 17, no. 4
Comment on this article in the ACM Digital Library





More related articles:

Ellen Chisa - Evolution of the Product Manager
Software practitioners know that product management is a key piece of software development. Product managers talk to users to help figure out what to build, define requirements, and write functional specifications. They work closely with engineers throughout the process of building software. They serve as a sounding board for ideas, help balance the schedule when technical challenges occur - and push back to executive teams when technical revisions are needed. Product managers are involved from before the first code is written, until after it goes out the door.


Jon P. Daries, Justin Reich, Jim Waldo, Elise M. Young, Jonathan Whittinghill, Daniel Thomas Seaton, Andrew Dean Ho, Isaac Chuang - Privacy, Anonymity, and Big Data in the Social Sciences
Open data has tremendous potential for science, but, in human subjects research, there is a tension between privacy and releasing high-quality open data. Federal law governing student privacy and the release of student records suggests that anonymizing student data protects student privacy. Guided by this standard, we de-identified and released a data set from 16 MOOCs (massive open online courses) from MITx and HarvardX on the edX platform. In this article, we show that these and other de-identification procedures necessitate changes to data sets that threaten replication and extension of baseline analyses. To balance student privacy and the benefits of open data, we suggest focusing on protecting privacy without anonymizing data by instead expanding policies that compel researchers to uphold the privacy of the subjects in open data sets.


Michael J. Lutz, J. Fernando Naveda, James R. Vallino - Undergraduate Software Engineering: Addressing the Needs of Professional Software Development
In the fall semester of 1996 RIT (Rochester Institute of Technology) launched the first undergraduate software engineering program in the United States. The culmination of five years of planning, development, and review, the program was designed from the outset to prepare graduates for professional positions in commercial and industrial software development.





© ACM, Inc. All Rights Reserved.