Every time I answered the question of what my major was, I usually got the same response back, which was “Oh, that must be so hard, I could never do it”.
And the irony of that is, that EVERYONE is capable to learn how to code. As Denning says, “Computing may be the forth great domain of science along with the physical, life, and social sciences“, which to me means, it is a science like any other science, but we just need to give it a try. In my opinion, everything looks hard if it is unknown. As humans, we would rather do something that we feel comfortable with, rather than “taking a leap into the unknown” and getting comfortable with the uncomfortable.
Computer Science was not offered everywhere as a major, but now you can learn how to code and program online
Back home in Albania, Computer Science was not a popular program for girls, and the stereotypes of guys putting their headphones on, not socializing and doing their own thing were true. By the time I was ready to graduate from high school and pursue my education, Computer Science became such a hot topic, and everyone was encouraging students to give this major a try and see if we liked it. Computer Science received attention on media, certain programs were talking about all these different opportunities that this major could offer.
So, I decided to study Computer Science as my major during undergrad. I always was interested to see how computers work, and how does a computer understand a certain command, specifically, I wanted to find “the magic” behind it. I didn’t have previous experience with programming. My high school didn’t offer Computer Science classes, and frankly I didn’t know what to really expect, but in my mind the option that I could change my major at any time, If I didn’t like it, put me at ease.
My first programming class was Java 101. At the beginning, I don’t really think I knew what I was doing, but as the class progressed, I really understood how powerful coding and programming can be.
Give a computer the most complicated exercise in finding a certain value, and it will never disappoint you
For a computer, calculating values is the easiest thing in the world. From last week’s readings we read about the information theory, and how for a computer, the smallest unit of storage is a bit, which stores either a 0 or a 1. This seems very inefficient for us, because we are used to work in base 10. But for a computer, base 2 does all the work. You combine bits to form bytes and you end up with 256 combinations, and you can have different combinations let’s say 2 bytes and so on, and all of the sudden you have all these switches working at the same time and that is powerful.
What is fascinating to me is the use of symbols and the grammar that we use when we program. And it is like learning a new language in a way, meaning that you have to follow the rules of the grammar of this language. There are a lot of different languages that you can choose based on what your end goal is:
Symbols are powerful because not only they represent different data structures but they also give meaning to the commands that we write.
Python is one of my favorite languages. It is easier to write commands in fewer lines (compared to java), which makes it easier to read and understand. As part of the assignment, I opened an account with code academy, and after finishing my undergraduate degree, it reminded me of my first experience with programming and how everything started from learning the syntax, defining variables, assigning values and running the code.
But apart from coding and writing programs to do a certain task, what computer science mostly taught me was logic. We use algorithms all the time and every day. Whenever you were reading a manual on how to operate a new equipment, you were following an algorithm, whenever you had the option to choose between two things (let’s say there are two ways to get from your house to school) you made a decision based on some variable which might be time, you chose the shortest way that takes you from your house to school.
Computer Science helps you with how to find solutions to different problems we face, and not just homework assignments. Thinking “algorithmically” about the world, helps you to tackle the problem fundamentally, by breaking it down in it’s easiest parts, studying it and find better solutions to the possible errors, just like running a program in the console.
Now days, we can combine the power of computing and programming with any other discipline and the options and opportunities on what can be achieved are limitless. From social sciences, to humanities, to fine arts, to engineering, science and technology we can expand our curiosity and knowledge, and we can start just by taking the first stem into getting uncomfortable until it becomes comfortable.
Denning, J Peter, Martell, H. Craig Great Principles of Computing. Cambridge, MA: The MIT Press, 2015
Evans,David Introduction to Computing: Explorations in Language, Logic, and Machines. Oct. 2011 edition
Irvine, Martin Introduction to Computation and Computational Thinking
Verma, Adarsh “How To Pick Your First Programming Language (4 Different Ways).” Fossbytes. N.p., 06 Mar. 2017. Web