Script for Script

Things Change

In recent months, there’s been a midsize, media-driven kerfuffle surrounding the markedly waning importance of teaching cursive writing in schools. This topic is neither my motivation nor something I hold in high regard, but it serves to show that as society progresses, so shift its priorities. What was once regarded as a staple of the educated has fallen on the side of irrelevance and now faces complete omission from curriculum. Teaching children to code is a relatively new initiative and has been met with a great deal of success. Children are natural learners, especially when it comes to language.

coding-kids

Children learn to make video games at a coding camp in British Columbia.

Language is Language

Though it may seem an oversimplification to describe computer code as basally a language, that’s really what it is.

public static void main(String[] args) {}

Without prior exposure, this may seem like an incoherent word salad with cringe-worthy punctuation, utterly meaningless and devoid of sentiment. However, if you don’t speak German, is it more or less nonsensical than:

Die Zeit wird uns alle ändern.

Both convey meaning if and only if you understand the language and both contain meaning regardless of your understanding. We continue to peddle foreign language in schools, which I believe still provides benefit, but perhaps it’s time to also consider something a bit more ubiquitous.

Boundless Benefits

By and large, the majority of people who’ve spent time learning a new language will never us it outside of a classroom, save a few misspoken attempts at locating a bathroom on vacation. What could you do if you had a basic understanding of how almost everything around you worked? Computers are everywhere, not just in the devices you expect (phones, tablets, laptops) but in most devices that require electricity (thermostats, cars, microwaves, motion lights).

Certainly Uncertainly Certain

More basic even than the understanding of minimally computerized operation is that of the logic that governs it. Exposing youth to complex ideas and problems early allows them to more fully internalize their construction, deconstruction, and ultimately, solution. Working through multi-tiered input Booleans (true/false statements) could eventually enable children to lead their parents through a horrific briar patch of quadruple negatives just to figure out if they’ve cleaned their room.

Teach a Man to Fish…

We can be fairly confident that technology is not a fad nor quickly deescalating trend. It seems to be in it for the long haul and it appears to have the support required for indefinite longevity. Prepping students for the program-governed world they will one day mold themselves seems an obvious and necessary lesson.

Advertisements

Bug-Free

Bug Life

Anyone who has spent any amount of time behind a keyboard with the aim of creating a program of any complexity has been faced with the frustration of dealing with compilation errors or unexpected results. It’s par for the course. Part of one’s education in programming is learning how to work through the seemingly endless frustration that can spawn from chasing down an error caused by something as innocuous as a missing character.

Syntax Checking

syntax

Typical IDE built-in syntax checker. Find out more…

Most integrated developing environments (IDEs) contain functionality similar to a word processor’s spell check, hints and reminders that draw programmers’ eyes to errors that will lead to compilation issues. This has been a gift from the gods, especially for any of us old enough to remember the time before, and the eye-strain that accompanied staring at a computer screen for hours looking for the missing parenthesis.

A Deeper Understanding

What if your spellchecker could do more? What if it could not only tell you what’s been misspelled, but rather, tell you what you were trying to say? A system called Pasket can potentially offer that convenience. Going beyond simple syntax errors, it could identify potentially unintentional loops, awkwardly designed statements, or simply eliminate unnecessary inefficient code, further streamlining run times.

All the Satisfaction Minus the Headache

Building things is satisfying. Legos have long capitalized on the human predilection to create and maintain a healthy revenue stream despite their offensive pricing. Writing programs provides a similar feeling of accomplishment, bolstered by having it up and running in a reasonable amount of time after its been written. Frequently, debugging can take longer than the program’s creation and for a multitude of reasons. Having a system capable of using expected output to identify flaws in the code could save programmers more than a little time and more than a few bouts of unbridled rage.

Speed Coding

There has been a push of late to stir those either undecided about their future plans or those searching for a career change toward a breakneck education in programming. Institutions such as  CodeAcademy tout comprehensive, immersive coding courses designed to give students an extensive understanding of programming in a few short weeks.

Does college still offer something?

If you take stock in articles such as this this, I’d venture to say the answer is “no.” The man who penned this piece doesn’t believe a college degree necessary for a career in code and finds a few sources with something to gain to back the premise.

Reality’s Bitter Sting

I fully appreciate the allure of being offered a real job in response to a short intense burn of effort. With the state of our economy and the prognosis for college graduates working in their field, doubly so. What proponents of courses such as these fail to mention (often conveniently) is that the majority of their student body is comprised of college graduates in pursuit of a career change, often a drastic one.

A College Degree: The New High School Diploma

Many employers today require a college degree on principle alone. One’s degree symbolizes more than one’s ability to pay for it; the vast majority of graduates will spend the next decade or more trying to pay for it. It shows a commitment to self-betterment. It demonstrates one’s ability to see the long-term gain of such an endeavor despite the short-term hardship. It emphasizes a well-rounded education that has endowed its bearer with a firm and expansive knowledge base.

What You’ll Miss at Code Camp

Allow me to preface by saying that programming courses are beneficial and serve as a robust starting point in one’s education into the wide world of coding. They are, however, little more than a starting point, the commencement of one’s journey down a particularly technical and unwieldy path to solitude. I can teach you to hammer a nail in far less than a few weeks, but at the end of your “education” no one would call you a carpenter. Much like anything, the basics of programming can be picked up quickly, but developing fluency with the craft and understanding its nuance takes years of dedication. Much more important that understanding that something works is understanding how it works, and deeper still, why it works.