This week was a historic week for computer programming, as our President became the first in history to "write" a computer program. He sat down and learned what a program was and typed some keywords presumably, and it compiled or interpreted or what have you and in doing so made a pretty big statement about a potential future where technology is leading our society. It's no secret that technology is huge as it is embedded in every part of our daily lives nowadays. With hundreds of start ups starting daily and dying daily, the state of technology is at an all time high I'd like to think.
Software development is a great field to study and it can be rewarding, challenging, and other such keywords. But it isn't right for everyone. For many people I know it's non of those things. It can be difficult and frustrating with little reward at the end, but that's not what we saw this past week in the media. We saw people all over the world ready to become the next Google. We saw statements such as "Anyone can do it!" and "It just takes one hour" all over the media sites. And frankly, I take some offense to that. I've been coding for about..12 Hours per day, times 7 days a week, times 4 weeks a month, and about 7 years now..which brings us to..somewhere around 25,000 hours. And it's still difficult at times and frustrating, but I've learned to like it for what it is. So what exactly is "coding"? Let's dive in a bit.
What Is Not "Coding"?
Here's an example of one of the "Blocky" puzzles that are suppose to teach kids how to "code". This week, this was "coding". You select what you want the peg man to do, such as move forward or turn, and then you drag some images around in any order that you want, and he does it. If they make it to the end, you have written a program. Or ran a program at least. Here's the problem. That's not coding. That's clicking on a button. It's like saying, go to the supermarket and write down when you turn left and you turn right. It's what we all do when we drive to work. And that's where I have a problem with this whole concept of "it's easy and everyone should do it". Because the reality is "it's tons of hard work, and only some people will become good at it". And you may or may not get a good job depending on how good you can become.
Here is the equivalent to the above image apparently. It's that easy. It's what I do everyday. At least in my mind as I sit there staring at my screen reading through warning messages.
// Monday Morning
This isn't coding for the same reason that clicking on your browsers back button doesn't equate to: NavigateToPreviousPage(). Someone had to sit there and figure out how to make the pegman follow the path you set for it. Someone had to sit there and write a maze traversing algorithm for it to work and that same someone had to figure out to make the puzzle pieces snap together. And I personally think that's way more interesting than teaching people what "if this, then that" means. If you don't know the concept of "if and else" then coding might not be for you :\
I remember in my first programming class. The hardest part was remembering the keywords and how to run and compile files. It definitely wasn't the concept of "do this 8 times". Anybody can get "do this 8 times". But you had to remember for(i = 0; i < 8; i++). That's the hard part for anyone starting off.
You Can Make Video Games!
People mention video game development when they talk about learning to code. I've been writing software for close to a decade now, and I can't make a video game. I mean, I've attempted it, but it never comes out right. Video game development is one of the hardest disciplines that you can get into. Thousands of hours and dozens of people working non-stop to make something new. There's physics engines and rendering animations and game design principles that take years to master. There's also managers and marketing departments and manufacturing and distribution. All of which are also important in the whole process. But we're not going to get an #hourofmanagement anytime soon I don't think. Future programmers won't have a place to work without the future CEO's either. Here's a quick view of what making a video game really is:
So What Is Coding Than?
Coding is different things to different people. For someone like me who puts his main focus on web development, coding comprises creating and maintaining databases, usability testing, data gathering and adding new functionality to a website when it calls for it. It sounds boring, and that's because for most people it probably is. I can't count how many times I've tried to explain what I do to people just to have zZz's appear on top of their heads. Sometimes you spend an hour sitting there making a navigation bar and trying to get it look like a prototype someone handed to you. Sometimes you can spend hours just editing data or trying to find that one small error that only happens once in a blue moon.
This is coding. It's not for everyone. It's not glamorous. You don't see the result half the time until you get to the very end. And you might get to the end just to realize it doesn't work. People should know that reality and not one of colorful creatures flying swiftly through the air.
The Current State Of Computer Sciences
I think that coding is fine just the way it is. Coding has always been that kid in high school who never went out, watched too many cartoons and played too many video games and spent his weekends building and/or breaking something. It's never needed any extra push from anyone to accomplish what it has. Alan Turing, Bill Gates, and Ada Lovelace didn't need anyone telling them to do what they loved to do. The same as no one told me get into the field. As soon as I got a computer, my first thought was "what's every button on this screen do". That's who computer science is for. It's not for the kid who spends all of his days playing in little league and it's not for the person who spends all of their time making YouTube videos. It's for people who see problems all around and then think about how to come up with solutions.
An Hour of Something You Care About
Instead of spending an hour to learn to "code", spend an hour to do something that you enjoy doing. Whether that's playing an instrument, reading a book, cooking something. Don't do something because everything thinks it's "cool" this week and because it's trending online. I'm going back to write more code as I still have to polish the design of my website. And if you read this far, then maybe coding is for you and you should give it a try. Happy Coding!