I knew from quite a young age that computers were something I absolutely loved. Not even just the actual computers themselves, but any kind of technology. I remember always wanting to get a hold of any old electronics, like VHS or DVD players, and wanting to take them to pieces to see what they were like on the inside. Not that I had the first clue how they worked at that age, but just looking at circuit boards seemed crazy to me. This green plastic thing with some metal bits attached somehow plays DVD's? Skip a few (or more) years and here I am at university studying the subject I absolutely live for, and loving every second of it. Here are a few of the reasons why I personally enjoy the subject, and why I think a lot more people should be giving it a go.
1: it is incredibly fascinating
'A CPU is literally a rock that we tricked into thinking' ...
... is a quote I think summarises this point quite well. Humans have gone from looking up at star constellations as prehistoric cavemen to powering autonomously-landing rockets with chips smaller than the palm of your hand in only a few hundred thousand years (a very small evolutionary time period). Just think about that for a second. The metals and sand being used for crafting primitive objects those thousands of years ago are now the transistors and silicone in the computer chips powering the rockets taking us into outer space. I cannot express in words how amazing I find this! And I hope anyone else reading this appreciates it as much as I do. People labelling computer science as 'boring' or 'nerdy' need to embrace their inner nerd and come and learn this stuff - it's incredible.
2: it has many applications outside of its own subject area
Computer science is the only subject I've ever studied (bar maths and English) that I've ever made use of outside of its own academic area. Take my A-level Psychology class for example. During the transition from year 12 to 13, we were given a task to carry out a small scale study, taking into account things like participant safety and data protection etc... anyway, I chose to do mine on the difference in dream frequencies between adults and teens. I put together a quick Google forms page to collect data from people, and shared it on Facebook. It was shared around and received way more responses than I was expecting with about 150 different sets of results. Now Google forms didn't give me the results I needed with its own analysis facilities, and I sure wasn't going to go through them by hand. I downloaded the result sets as a .csv file and got programming. I wrote a fairly short but effective Python script to scrape out the important data and output me the relevant statistics I needed for the investigation.
For anyone interested, I found that teenagers average 1 more dream a week than adults.
Anyway, point being I had an issue that I needed a solution to, and using my computer science skills was an instant answer to that problem. I can't remember any other instance of my time in education where one subject provided such an instant click with another in terms of helping me like that.
3. it gives you new insights into the world
Now here's where I sound like I've lost the plot. Recently, I've been thinking a lot. And I don't mean regular thinking. I'll find myself at the train station staring at the arrivals boards, and rather than doing the normal person thing of just looking at the time it displays and being done with it, my computer science brain kicks in. I'll start thinking about what the system behind that must be like, in terms of how must they coordinate and synchronise hundreds, if not thousands, of arrival and departure boards across the areas they cover? And then with that many boards, what kind of redundancy layers must they be running, it can't just crash and not be available, so how do they deal with potential issues?
And then the tap in/out system. That must have some immense databases. Along with the journey tracking and top ups it's just big data for days. What must the redundancy on THAT be like. Blah blah blah... for risk of sounding insane I'll get to the point.
Non computer scientists likely just accept that the systems are there and that they work as they expect them to. But as a computer scientist you get a totally new perspective on these things. As well as making you fun at parties with all your interesting thoughts, you also get a new found appreciation and respect for the teams that implement and maintain such large scale systems, and how they make life easier for thousands of people every day of the week, every week of the year.
4. it can change the world
- Medical systems
- Safe modern air travel
- Space exploration
These are all arguably world changing inventions. All of these things that billions of people use and benefit from, all possible because we 'tricked' some rocky elements into doing some thinking for us, and because some clever people came together and made some incredible innovations with them. With these kind of things already having their impact across the globe, I can't wait to see what technology has in store for humanity during my lifetime.
5. it is intrinsically motivating
Intrinsic motivation is where you carry out a task because the task itself is rewarding. So this is in comparison to extrinsic motivation where the reward is external (i.e your parents saying they'll give you money if you pass your exams - mum take note). I've always found the entire computer science subject area to be extremely intrinsically motivating. Once I learn a bit of something, I always want to learn more just because I do really feel some internal sense of reward for learning something new. And this has been the case ever since I started learning computer science, it just motivates me to learn more and more constantly. I can say for a fact that I've never studied anything that's made me feel quite the same way about learning before.
Anyway, can you tell I like computer science yet?