Let's take a moment, just a moment to admire where we are. You a humble surfer of the endless waves of content stemming from the cast oceans of the internet, are using a hunk of rock that some egg head has by some means of sorcery tricked into thinking by zapping it with the power of uncountable numbers of tiny particles.
...
Have you taken a moment?
...
Are you sure?
...
Alrighty then, now that the proper staging has been set allow me to rant about something that truly has no merit in the grand scheme of things, but in context of where we are right now, nothing really does.
Allow me the briefest of introductions, I am Tom the Tech Guy (look I know its cheesier than gourmet Cheetos but it works). I have so earned this name as the Go-To for just about every person I know when they break something with a circuit, I have a job writing code, and I have a degree in Computer Science (the star of today's rant).
Let’s take a quick look at the phrase Computer Science, what does it mean? Colloquially it means that anyone who studies it’s arcane arts can perform magic powered by binary only the likes of The Matrix have seen before. Allow me to unveil this illusion now, I do not cast spells though I very much wish I could, and no, binary is not my language of choice as you may have guessed.
So what does Computer Science actually mean? Well, it may mean the science of computers, or perhaps why computers work, or how they are built. However none of these are actually the case, Computer Science really just means the study of how computers perform small meaningless actions in the context of a much larger whole. Why is it then that Computer Science is the study of what a computer does rather than how it does it? Wouldn't Computer Science be a better name for Computer Engineering? Probably, but it’s been around so long that we simply go with it, so allow me the point that the sheer name of Computer Science is misplaced.
Onto education in Computer Science we have a few flavors, the traditional college degree, the self taught method, and boot camps. A fair bit more than most people get for anything else, and for the most part they all suck. For anyone considering going into CS please let me assure you that either you will hate it, or love it. Sure there are some in between but set your expectations appropriately, most people can’t stand staring at a screen for 8 hours a day trying to figure out why their script skipped 3 lines of code and broke, yet when you change this 2 to a 1 everything suddenly works perfect after a long series of catastrophic failures.
If you think I’m joking allow me to assure you. I’m not. This has happened to me, repeatedly, and I’m one of the few who can actually make it to the point of having a working script in a reasonable amount of time.
No matter how good you think you are, you will fail, beat your pretty face into a keyboard, and discover that maybe playing music for a living wasn’t that bad of an idea. You may make less money, much less reliably, but at least you aren’t Sisyphus bound for eternity to fighting repeatedly against a rock, except…. The rock is you, and the mountain is the code you thought was brilliant a week ago.
Don’t waste your time. If you can’t handle frustration without bursting into tears or resorting to the smooth tones of Bob Ross to calm down, you’re gonna have a rough time. I won’t say you can’t do it, because I’ve seen it done by more than a few people, but bear in mind the life they will endure to a small bump in their paycheck…… I say small bump….. Yet just out of college I make more than the average family of 4…… so you do you but don’t say I didn’t warn you. I don’t mean this as a brag or any form of gripe but simply as a means of framing expectations, for anyone who may be looking into the darks arts as a career option.
Now then let me get to my real gripe. Learning how to program is one of the weirdest and unsuccessful arts that is currently taught. Most people who really succeed are the ones who can understand the nature of programming intuitively (me for instance), most other people who make it through are the ones who fought through enough to figure it out by trial and error. You won’t ever get someone who actually explains what to do or why to do it, basically what you’re left with is some case specific examples and very broad statements that are barely explained, much less in a way that makes you want to pay attention.
Remember previously how I was discussing what Computer Science is and I said it’s the study of meaningless actions in the context of a much larger whole? Well, let me adjust that, it’s really how to tell a computer what meaningless things to do, in what order, such that a greater whole is constructed. Very few seem to fully understand this distinction. You are not doing anything that really requires any effort like parsing through a file, and neither is the computer mindless, really it’s just that you are trying to explain something to a computer using terribly defined languages with decades old paradigms that have yet to be revised for modern day applications. These dated and often incomplete languages are the cornerstone of what we do, and neither you nor the computer fully understands how to truly take advantage of them. You’re not only fighting against the problem, but also how to phrase the problem in a way that makes sense to your peers, and how the computer will interpret what you are saying and perform its tasks efficiently. It’s a lot to juggle and there’s honestly not a lot of material out there that will start you out on the right foot.
Most education tends to focus around the style of do this, now do that and the other thing will happen. For a case studies this makes sense, however most teachers you will encounter will fail to explain how this case study is significant in the context of the much greater whole of why you should do the things they are talking about.
Do you see the struggle now? No part about Computer science is inherently difficult, but considering the fact that most everyone can’t even comprehend what it means to program, you’re kind of on your own.
Now this doesn’t mean that you’re hopeless or that you’ll never have a good teacher but I simply mean to temper your expectations.
So what should you expect?
Well first and foremost we solve problems, but not like a mathematician (though we may use math), we are not artists creating a work of art, nor are we politicians coercing those we have enslaved. We are linguists who study philosophy. We study the problem and we study how to explain a solution such that it can never me misinterpreted and can be followed to an efficient solution. We debate why a problem is important and how we should solve it. Sure there is a computer involved, but there is very little science. Most people say they could never write a line of code when they very easily perform the heart of programming when they try for the umptenth time how to hit a baseball, or how you need to live your life.
Anyone can code.
Let that sink in….
It’s all a mindset issue. Can you think about how to solve a problem? Can you explain a solution? The answer is yes, for everyone the answer is yes. You may not enjoy it, but you can do it. If someone can trick a rock into thinking, you can enchant it with any spell you want.
Comments
Post a Comment