Friday, April 4, 2014

What I learned in high school, that I use every single day of my life.

Week one completed at Coder Camps! Today we moved into the new office space at Coder Camps, and as always learned a huge amount of information. Instead of the usual daily recap, tonight I'm reflecting back on my high school computer science courses.

I took Computer Science all four years of high school. We coded in BASIC (freshman), turbo Pascal (sophomore and junior), and C++ (senior year). More importantly, we learned to use algorithms and to problem solve. People often complain about learning things in school they'll never use in the real world but with Computer Science, application is everywhere. Right now I'm pursuing a new career path as a software developer, but I've used the principles and modes of thinking I learned in those classes in all aspects of my life, and in jobs that had nothing to do with coding.

Today at Coder Camps an exercise referred to "stack" and "queue."  These are just ways of organizing lists of things.  A Stack is like a stack of plates.  The last one you put on the stack is the first one you take off when you need a plate.  A queue is like the line at a movie theatre (or if you are from the UK, a queue is... just a queue). The first person in line is the first one to get tickets and get out of the line.

These concepts can be referred to as LIFO and FIFO - "Last In, First Out" and "First In, First Out." Can you tell me if a Stack is LIFO or FIFO?  What about a Queue? Think about the analogies I mentioned for a moment and you'll get it!

In Computer Science class these were important things to know if you wanted to understand how to tell the computer to store, access, sort, and otherwise manipulate data. At the time, I didn't have the life experience to see how these or any of the other concepts I learned would apply to anything else. But it's valuable to remember that computers are tools - they help us accomplish certain tasks more quickly, more easily than we could otherwise. We take advantage of their vast memory and lightning speed but aside from these advantages of scale, they can't do anything that you or I couldn't do ourselves given sufficient time and effort. Okay, yes, computers allow us to do many things we could never, from a practical standpoint, accomplish, but that doesn't mean those things would be impossible without computers, just impractical.

All that is to say - every day in life we face and need to solve problems, on our own, with the help of others, and with the help of technology. And Computer Science teaches you to be a better problem solver. There's no end to the value that adds. So thanks high school, you really did teach me something really and truly useful!

No comments:

Post a Comment