So, Yeah, Learn Programming

office cube work

A friend of mine recently asked “should I learn programming?”  My reaction was of course “yeah!”

. . . then I had to explain my reaction.

I knew intuitively why he – or anyone – should learn programming no matter their profession or interests.  When I had to explain it to him, I had to organize my thoughts and explain my instinctive reaction.  I saw these thoughts and emails and thought “these would make a good column.”

Which is what you’re about to read.

So in honor of my friend, and as part of my role as Geek Job Guru, here’s why you should learn programming.  Why anyone should learn programming.

But first . . .

You Don’t Have to Be A Programmer To Program

Look, just because you’re not a professional programmer doesn’t mean you’re not a programmer.  A programmer is someone who programs devices.  If you do that, you’re a programmer.  Period.  Full stop.

You may not write code for a living, you may not do it professionally in any way.  You might be pretty bad at it, but you’re still a programmer.

I think many people resist learning programming because they either don’t want to be programmers (professionally) or don’t think they’ll be good enough to pass some imaginary requirements for programmerhood.    These concerns are unfounded, existing because we think of programming as a job, and a job with strict requirements.  Instead, it’s more a descriptor.

(I reserve the term professional programmer for those that program for a living or a professional level, and just use the term “programmer” among IT friends since that’s what we’re usually referring to).

With those concerns addressed, let’s see why you – or anyone – should get their hands on code.

You’ll Know What It’s Like To Learn – Or Not Learn Programming

So let’s say you try to learn programming.  No matter how good or bad you do, at least now you understand what it’s like to try to code.  This is an valuable insight because, believe me, a lot of people don’t know what it’s like to program.  Because of this, they often make very unwise decisions or say unwise things.

OK, sometimes they’re just stupid or ignorant.  People that think coding must be easy probably never tried it.  People who can’t understand why bugs exist don’t “get” programming.

You try to learn programming?  You’ll understand the real-life issues of code a lot better. You, even with limited programming skills will understand important issues:

  • You’ll understand the challenges people face in learning coding – and maybe how they overcome them or don’t overcome them.  You’ll learn better, advise better, and develop empathy for those who learn to code.
  • You’ll understand how people learn coding. You’ll understand what it’s like to find training, search out documents, evaluate what language to learn.  If you manage people in IT, or advise students, this knowledge will make you much better on the job.
  • You’ll understand when someone is “good enough” to be a programmer on a professional (or semi-professional) level.  Once you start coding, you’ll know what it takes to get to that level – even if you don’t reach it yourself.  That’s great for evaluating employees, helping friends, or rethinking careers.

Learning Programming Removes The Mystery

Many people, even today, see computers are seen as strange, mysterious devices, nearly occult in nature.  Love them or hate them, for many of us they’re otherworldly devices.  Those who code them are seen as equally mysterious by those who are unaware of what programming involves.

Learning to code removes the mystery.

Once you start poking around inside a technology, even in a limited manner, you get to understand how it works.  Technology is no longer a mysterious “that,” but something with parts and pieces, cause and effect, problems and advantages.  With the illusion of otherness gone, you’re better able to use it as a tool and make decisions about it realistically.

Learning to program also lets you understand the people doing the same professionally are people.  You’ll get to meet programmers, past and present, read about them, study works by programmers.  This experience will show you they’re not wizards or mysterious, but just people.  Removing that illusion is helpful in both respecting programmers as people – and understanding how they screw up like people.

While we’re on the subject of knowledge . . .

You’ll Know How Things Work

In your quest to learn coding, even if it’s only a hobby or a lark, you will gain a much better understanding of how computer work.  As computers are everywhere, any bit of knowledge is extremely helpful to your life and career.

When you consider how ignornat people are of technology (often due to no fault of their own), imagine how even a little bit of knowledge can benefit you.  Makes taking a three month class to learn to code seem even more worth it doesn’t it?

One thing I experience as professional programmer turned manager who codes as a hobby, the knowledge I gain and maintain is invaluable to my life and my job (which admittedly is in IT).  Processor issues and DNS mapping, code vulnerabilities and different languages, all are things I’m at least vaguely aware of.  In turn, that knowledge helps me on the job and in life – making decisions, buying good products, explaining things to others, noticing defects.

Knowing how it’s made, even vaguely, is much better than having no idea.  With the mystery gone as well, you can make more hard-nosed decisions.

That’s before we even get to the fact coding is, you know, useful . . .

Programming Is A Tool

Knowing how to program, if good enough, can become a useful tool.  Which is an obvious answer, but consider just what even a little experience can empower you to do.  You might not be able to be a paid programmer (or may not want to) but you can construct a website, or write an automated script for a tool, or create a batch file to sort some documents.

No mater how good you are – or aren’t – there’s use for coding if computers are any part of your life.

Programming is about making computers do things.  Computers are everywhere.  Therefore being a good enough coder lets you use them better.

It might take some work to get to the level of your skills having utility, but if you take your coding skills far enough, it gives you a lot of power.  It may not be comparable to a professional programmer, but it’s more than someone with no skills at all.

Anything above zero is “more.”

Programming Is A Form Of Expression

I think every person should try their hand at communications – writing, speaking, acting, drawing, something.  Learning and using any form of communications makes us better communicators, better listeners/readers, and more aware of how we may be manipulated.  Communication is what humans do, so you should try many forms.

Coding is a form of communication to – it gives you a way to create.

Maybe you do a website, or a little game, or a fun utility.  Maybe you write a script to organize photos for people.  Whatever.  Coding gives you a new way to communicate with people.  In turn, you get all the benefits of trying out a form of communication and creating a solid product.

Succeed or fail, large or small, you learn a bit more about how to communicate and what it takes to do.

Programming It’s A Defensive Tool

Knowing how to code also provides you some “defensive advantages” in a world of technology.  Depending on what you know how to do, you could:

  1. Recognize bugs and security vulnerabilities in the news.
  2. Create a script or even a utility to make up for a flaw in an important tool.
  3. Better understand security settings on a computer.
  4. Better use security tools.
  5. Change a website access file to stop spam.
  6. Recognize a bug in software (such as a file formatting issue) you can address or avoid.

Technology is everywhere, and it can also hurt us by accident, incompetence, or malice on the part of others. Coding gives you more knowledge of technical threats and how to stop them – or at least look up how to stop them.

Programming It Looks Awesome On A Resume

You probably knew this was coming, but seriously, if you know how to code enough to be effective (say write utility scripts or put up a website) then it should be on your resume.  In turn, having those skills looks awesome to recruiters, bosses, and clients.

Think how many people can’t program – showing you can shows your drive and your knowledge.

Think how many people are technically ignorant – when you program, it shows you aren’t as ignorant as them.

Think how many people don’t have these skills that you do – and the advantages you have.

Some programming skills might not just be good for you, they may be good for your resume.

Really, There’s No Reason Not To

Honestly, I am of the believe everybody should try their hand at programming if only to understand the basics of coding, debugging, and deployment of software.  I think by now it should be mandatory in schools, and parents should always encourage their kids to try it.  There’s too many benefits.

Hell, it should be a bit like shop class (something I also think should be mandatory).

So, go on, if you’re at all thinking of trying to code, go for it. It’s going to be worth it.

Respectfully,

– Steven Savage
http://www.musehack.com/
http://www.informotron.com/
http://www.seventhsanctum.com/