cancel
Showing results for 
Search instead for 
Did you mean: 

2016 IT Resolutions: It's Part Of The Program!

Level 11

One of the resolutions that any IT professional should make and stick to for 2016 is to learn a programming language. Before anyone starts shouting and telling me that they aren't going to be a programmer just yet, let me clarify my thoughts around this. Learning a programming language is not going to make you a programmer overnight.

Computers are a very procedural thing. For all of the amazing things that we can do around location services, deep analytics, and artificial intelligence we are still working with a system that processes instructions. Those instructions must be clear and correct in order for a system to work correctly. Computers are not capable of context separation or intuition no matter how smart they may appear to be.

Learning a programming language isn't about writing apps for mobile phones or working on the dirty underbelly of a program that controls your business. Instead, you're learning how computers process information and evaluate instructions. You're learning how they think. And that helps you figure out what they're thinking when things start going wrong. Troubleshooting a network issue or a server malfunction is actually much faster when you understand why something is broken.

Take a simple problem like a race condition. This can have a huge security impact in your IT environment. It sounds ominous and scary. But it's really just a situation where two instructions are processed in parallel and whichever is completed first is executed. Now, that instruction may contain malicious code or it could just contain a conditional that causes something to be true all the time. The former is a huge security hole. But the latter case is a bad instruction that could just cause you a headache every once in a while.

By taking the time to sit down and think through how instructions are executed and processed, we gain insight into how to prevent things from becoming problems down the road. What about massive data entry? If you don't know how data is being read into your systems, you could end up with Little Bobby Tables running around:

Little Bobby Tables

The truth is that our personal and professional lives are governed now by programming languages at almost every level. Learning how to evaluate statements and conditions gives you a leg up on other professionals that don't know how to discern the secrets hiding under the surface in a modern computer system.

The other reason for learning a programming language is that you can understand how repetitive tasks can be automated and simplified. A staggering number of errors in computer systems are caused by errant data entry. But learning how software can do that hard work for you, you not only increase your productivity but you reduce the amount of incorrect data. You don't have to write multi-function parallel processing AI scripts. Something simple that takes input and produces output will get the job done with a minimum of effort.

How do you get started with programming? Well, if you've never touched a program in your life you would do well to check out the Hour of Code series that is being positioned for kids everywhere. It's a bit simplistic, but it teaches the basics of syntax and constructs without being tied to a specific language. Once you know the basics, you can move on to something more formal, like Codecademy, which features lessons on many languages in bite-sized chunks that you can go through at your leisure.

These two resources will give you a huge advantage in your daily IT life as well as your personal computer interactions. When you learn to think like a compute you can learn to outthink them and solve problems before they happen. And that's a program that anyone can get down with.

15 Comments
MVP
MVP

Very good points.   By having some programming knowledge it really does help you understand some of the behaviour you see in various environments.  If you code a fair amount, having knowledge of other languages gives you a better tool base to work from.

Good post !

Level 14

I agree with the programming knowledge helping in the troubleshooting arena.  Back in the mainframe days, a knowledge of programming was a requirement to troubleshoot.

Level 14

Great post.... network defender​ is right.... Fortran was my first....

My first foray into programming was COBOL in 1989 in college. Halfway through the class I did not just COBOL I dropped out of college I was so disenfranchised. Years later, many years later, I went back to college and took a Javascript class. Over a President's Day weekend I crashed studied the language. Halfway through the third day I picked up my chair and threw it through the wall out of frustration.

    Yea... I'll never be a programmer.

Level 12

Peter,

You actually made me laugh with this post!

I was two semester into a programming degree when I also came to the realization that I would never be a full-time programmer.  Just not my cup of tea!  Still I persevered and finished the degree, but, only after butting heads with an instructor that tried to teach me C++ and I almost had a "chair throwing" incident myself!  Although, JavaScript, C# and other variants, TCL, Perl, Python, PHP, Ruby, VB.Net, SQL/MSSQL, Bash, Monad/PowerShell and the like are a necessity when you really want to "fix" something or run things properly. i.e. getting the heck away from the GUI and get right down to the nuts and bolts!  IMHO 

Enjoyed the post!

BSpencer

Level 14

I think that all IT personnel need some familiarity with programming.  It only helps.  It helps with everything from development to automation to troubleshooting.  It is not going anywhere.

Level 14

Agreed.  At least an understanding of scripting, whether it be LINUX/UNIX, Cisco, or Windows.

Level 11

I agree also.  Having started my IT career as a Unix/Solaris administrator I started shell scripting.  Expanding into Windows and database administration I started to learn html and windows scripting.  Now as Cisco Network Engineer/Firewall/NetApp administrator my previous skills come in handy all the time. Even though I would not consider myself an expert coder by any means, I have an easier time looking at code and deciphering what is being done and how to manipulate it to get it to do what I need. 

Level 17

Programming, Scripting, understanding simple Boolean expressions... all goes back to the basic Logic of what we do and how it all works. If you lack the basic understanding it's going to be difficult trying to troubleshoot any advanced problem.

Level 15

Level 14

I find that I draw on my mainframe experience as well.  Heavy in Boolean logic and machine language.

Level 9

@cahunt is correct.  It all goes back to logic.  Learning any language should help with the understanding of logic.  This sounds like a good goal for 2016.

MVP
MVP

I love that Bobby Tables cartoon

I love Little Bobby Tables every time I see it.

MVP
MVP

was an article the other day I saw about someone with the last name Null.  Basically they had to do almost everything via phone calls and special tweaks to get themselves added into most customer databases.  They described it as mostly amusing and not "that" inconvenient, but to me not being able to do my business online without making phone calls would be a nightmare.  Like being trapped in the 80's forever.

About the Author
A nerd that happens to live and breathe networking of all kinds. Also known to dip into voice, security, wireless, and servers from time to time. Warning - snark abounds.