Day 26: Long rant, but recaps are not fun.

After coming to this college, I have started to see a lot of college in a very different way from a lot of my peers ( and maybe even my family ). A lot of people might view what college you go to undergrad as the be all end all, especially with respect to undergraduate curriculum quality and with respect to networking, but now I am unsure. The reason? Simple: I think that it's more a matter of motivation more than anything else, and that, as a result, college is so much more dependent on what you make of it rather than what else you do. 

As a student now, I am thoroughly floored by what some of the students I have met here have done. From introducing me to Kerbal Space Program AI to composing multiple pieces using synthesizers and other related technology, I think that we tend to underestimate just the sheer amount of work certain majors put into their work when compared to other majors. Time and time again, I like to look at music majors for inspiration on not how just how hard to work, but on the importance of repetition in working. Unlike some STEM or business majors even, they manage to do sometimes very arduous and monotonous work over and over till they eventually get it right, improving their skills till either their instrument or themselves fall down. It takes my breath away when I hear stuff like " 8 hours of practice " every day, when I can barely keep up 4+ hours of work a day in mathematics and computer science. As a programmer, I really could use that mentality of practice, practice, practice, and so I hope to cultivate it through the consistent work I have this semester. 

Now, it is worth considering why a CS major might want to go around as see what music majors are trying to do. After all, isn't software the key to everything nowadays? Isn't it the new queen technology, and shouldn't it be treated as thus, with software programmers more considered as machines that convert coffee to code rather than anything else? I do not think so for a few reasons. Firstly, I believe that programming, like mathematics, is a type of art form. While that phrase has been slightly tarnished lately, with movements to get everyone to get into programming using artistic applications as a constant reminder of the power of CS, I still believe it holds meaning. Programmers, like artists, need to make their code creatively to optimize readability, optimization, and re-usability. While these seem like ideas that are far different from the creative expression seen in the arts, to me they seem the same. After all, some programmers tend to even dream of code when they get really into some of it, and isn't the art of logic one that can be beautiful, like Cantor's diagonal argument? Programmers use art in a manner that few can read, both those who know quality code know it when they see it, like art critics in the field or users looking at good UI. Secondly, besides the actual art of programming, programmers have tools that are incredibly difficult to use. For an example, simply consider ViM: the ubiquitous text editor. For a simple text editor, Vim is known to be incredibly difficult to use well, to the point where even exiting vim is considered a meme due to how relatively unintuitive it is ( ZZ is a good thing to remember, btw ). Thus, in order to use it well and to ensure people make the most of it, vim requires practice and a lot of it. It's as difficult to change from using the arrow keys to move to using hjkl as, say, going from flute to piccolo, as your familiarity with the instrument can impede your ability to play it well. Thus, like instrumentalists, programmers need to practice their toolkit till they become intimate with the many, many, ways there are to go from nothing to finished project in CS, and so practice becomes important and necessary to keep up and be the best you can be. Lastly, like music, CS depends on good communication between members of the team. While CS does not have performances and practices to say, I feel the two are analogous to testing and real-world testing in business day-to-day CS operations. Your team needs to be prepared to test all possible scenarios they can think of, so everyone is able to understand what is going on and can ensure that, when real users come on to your platform and start using, they do not run into errors and that, when they do, your team can find solutions that do not cause a breakdown of your long-run "performance". Thus, programmers need to spend time reading the past code and understanding it well enoough so they can understand where bugs can happen, a problem that is hard when you consider the sheer number of layers even the most basic of web applications can require to simply exist. 

Thus, in a lot of ways, CS is sorta like Music, in the way that both fields need practice. While it is true that people exist who can get a lot done without it, it would be impossible to do well without rigorous practice and other forms of rehearsal, as CS majors won't go from simply good to great, and businesses want great CS majors more than they want simply good CS majors. 

Comments

Popular posts from this blog

Day 37 (of Blogging): Back to the new normal.

Day 33: A weird day.

Day 36: Emotional Drainage