Wednesday, July 24, 2013

Thoughts on... Writing Code

One of the things I almost NEVER write about on here is computers. I never really made a conscious choice about it, but now that I think about it, I figure that most people just wouldn't be interested in a post about the latest tech thing I saw or piece of code I wrote. Granted, not that many people are interested in this blog AT ALL, but to lose the few readers I have due to boring content would be completely and irrevocably stupid. Which, in a bizarre kind of  way, is the exact point of this blog post. Recently, I read a couple of blog posts about programming and people. Specifically, they were about programming and whether or not everyone can do it. It all started with this video created by a company called Code.org.




The first article was talking about the above video and how misleading the content of the video is in its portrayal of the programming career. The article also firmly stated that not everyone can learn programming outside of very basic tasks, like a sport or musical instrument. Learning to play "Twinkle Twinkle Little Star" on a piano is basic, but playing Rachmaninoff's 3rd Piano Concerto is ENTIRELY different.

The second article was disagreeing with the premise of that first article that programming isn't for everyone and that people need to be encouraged to try programming because while it can be tedious, it is a very fulfilling and gratifying career as well. Job availability aside, programming is one of the few careers that once you get in, you almost never leave. In fact, out of all the people the author has met who have studied computer science, NONE have left the field.

In reading both these articles, and based on my experiences, I can firmly say that I agree with the first article. Programming is not for everyone. A perfect example of this is one of my sisters. She is a technology minded person. I would call her a Power User. She is comfortable using various forms of technology and can adapt to new forms of technology very quickly. She held a job repairing computers for several years. So, she is versed in various forms of computing. Yet, when she sees my computer screen filled with whatever software I'm currently writing, she might as well be looking at Egyptian hieroglyphics. When I tried to explain to her the relatively simple task I was working on (trying to track why a particular date field was getting deleted by an application setting that had NOTHING to do with dates), her eyes glazed over. I might as well have been speaking in Romulan. 

The thing with programming is that it can be deceptively simple. Writing a program that can add 2+2 is something anyone can do. (That's the coding equivalent of "Twinkle Twinkle Little Star".) But just because you can write Addition programs doesn't mean you can create a program that takes customer orders from a website, charges their credit card, and integrates with the UPS database to ship the purchased products to the customer. (To a new programmer, that's the software equivalent of the Rach 3.) To be able to write software like that, there has to be a level of abstraction that you can keep in your mind as you code the program. And honestly, not everyone can do that.

Think about it this way: Think back to your last algebra class. Were you able to track where each and every X and Y were supposed to go? What value they were supposed to contain? If you could, then you might have a mind for coding. If not, then programming is NOT for you. And there's nothing wrong with that. There are plenty of tedious, and fullfilling jobs out there that are not related to programming. I'm sure one of those will suit you just fine.


Another thing that I really agree with the first article on is the portrayal of the "typical" job of the programmer. I've been in the tech industry for over a decade in one position or another and I've never had extravagant offices (I've always been in a cubicle. After all, the only things I need for my job is a computer with internet access, a desk and a chair.), free food (It's been vending machines and cafeterias where you pay for your food), lots of play (nope.), beautiful views (from a cubicle with no windows? Please!), or lots of money. (Okay, writing software I make more than a store clerk, but less than a CEO.)

Now, there are jobs where that stuff exists. But, it's not all moonbeams and rainbows at those jobs. Especially when those happy-go-lucky coders are pulling 90+ hour weeks to get a project in before a deadline. No, more often than not, your average programmer is in a cubicle staring at a screen trying to wrap their mind around how to solve the problem they need to get coded before the project goes over budget.

Now, my dear readers, if you were thinking about a career in coding before reading this and are still interested AFTER reading this, then by all means, go for it! If you need help with something, ask me. I'll try to help if I can.

No comments:

Post a Comment