

I want to start out and state that this is merely an opinion from someone who has not yet completed his degree and has not worked in the industry as a computer scientist or developer yet. With that out of the way, let me explain, in the following, fairly long post.
For years I have considered myself to be part of the hacker culture, at least in spirit. I regret to say that my contributions to the world are few and far between, and nothing has really been of use. Much less, I haven’t really done anything in a very long time, and this reality helps motivate me to keep trying. Keep learning. Keep moving forward. The lack of contribution has motivated me to keep moving, even when things look dark and fruitless. Nearly two years ago now, I applied to DigiPen Institute of Technology to pursue a degree in Computer Engineering. As most of those that read this blog know, I was accepted and Tuesday, Sept 2nd, is the first day of my Sophomore year.
As I hope all of you know, today was the last day of the Penny Arcade Expo for 2008. This weekend has been incredibly exhausting, but worth every moment, and I plan to post A LOT about this weekend here shortly. But right now, I simply wanted to mention this because it is likely the event that inspired this post. As a BSCE student at DigiPen, I sit in a unique seat, so to speak. There are very few computer engineer majors at DigiPen, and a lot of RTIS majors. In between are the artists. And I was thinking about this, and thinking of the state of our education and thinking about the dropout rate in the first year. And also thinking about the recruiting/campaigning/advertising going on at PAX in regards to education (for DigiPen and others), I wish had looked closer to make a less subjective observation. A lot of what I see out there are pushes on teaching people how to develop games. This is awesome, and I support it. However, I don’t think a lot of people really understand what it takes to really be successful, and what it takes to make it.
And I don’t think many people understand that coding is an art form that takes nearly as much practice and dedication as drawing or painting or sculpting. The first result for ‘define art’ in google gives
the products of human creativity; works of art collectively; "an art exhibition"; "a fine collection of art
from princeton’s wordnet. I think this definition works well to define what coding is, just as much as art in the traditional sense. Code is a product of human creativity. I suppose some could argue it is also, sometimes a product of machine creativity, but that really is a post for another time.
So what does this all mean? It means that, in some ways, we are not teaching programming in a proper way. For a long time, I was very much against ‘Java Schools’ and shared Joel Spolsky’s view on them. However, recently, I’ve heard some defense of such educations and with my recent revelation, my views have changed. I still cannot advocate relying on a so called ‘Java School’ for a useful programming or computer science education, but I don’t believe that’s where the problem lies anymore.
The problem seems simple now. Artists (drawing/painting/etc), writers and musicians tend to share a similar passion in the work they do. Some coders do too. More need to.
Perhaps that is where part of the problem is. Hackers code for fun. They enjoy it. They know what they do is an art. They are expressing their creativity digitally instead of in some other way.
In contrast, we have the professional software developers. I really do not like stating it in this way, but I cannot think of a better way at the moment. I shall revise in the event a better description comes my way. Professional development is strict and in a sense kind of like an assembly line. Bad analogy, but hear me out. What I mean is that professional development is much more cut in dry in general. You’re given specific task and goal to do, and in a sense you’re following directions, like those of something you might do in an assembly line environment.
Ok, so maybe that doesn’t work out to well. I know in a lot of cases you really do have more creative freedom than that, but from the horror stories you see online, I think that extreme likely exists.
Many coders fall in-between these two groups. Many hack for fun, but have development jobs to get paid doing what they love to do. Some just do it because they make decent money.
I think I got derailed somewhere and have approached a completely different tangent.
This is what it all comes down to in the end. Code is an art. Code is an extension of someone’s (or many’s) creativity. We express ourselves in code.
Granted, there are many situations where this may not apply to its fullest, but I would argue that even a artist drawing a box to contain their work is art itself as well. Or could potentially been seen that way, at least.
So, what does this all mean? What was the point of all of this? It is really quite simple. I think programming needs to be portrayed as art more. People need to realize that good code is inspired. Good code requires work. Good code requires dedication and it requires you to think openly and widely. Progress is not made from repeating what is already there. Innovation comes from trying what hasn’t been tried before. Innovation can also come from tweaking what is already there and already been done. Just like changes in style, or tweaks in detail can change the meaning and emotion of societies traditional view of art.
Obviously, the next question ought to be, how do we fix this? I haven’t figured that part out quite yet. Perhaps the answer is starting simpler and working up to the meaty details. Maybe we should start out in something simpler. Lets start with something like python and pygame or ruby or something. Java is a useful language, but we seem to abuse it more than we should. Maybe we should do something entirely different. Maybe we should not jump directly into learning to code, but learn why we code. Maybe I don’t know what I’m talking about.
I do not know what it will take to improve our computer science education in general. I’m not sure any school gets it right, but I think some get close. Then again, perhaps I’m not thinking quite deep enough. Perhaps the comparison of art and code is closer than I’m thinking. Maybe, just maybe, the reason coders survive and succeed is because they really do understand that code, like art, isn’t easy. It requires dedication and inspiration.
Code is art. Code is creative. Code is inspired.
If you want to succeed, dedicate yourself to it and keep moving. Just like artists constantly draw to improve their skills, coders need to constantly code, in some form, to improve theirs. Follow the advice of the co-founder of github and always have a personal side project that you’re dedicated to.
And most importantly, never, ever, give up.
--nullpuppy(out)
I agree
Sat 02/28/09 by AnonymousThat was very well put together, and though, I don't code, I can totally see your point.
Well said! And you have the
Mon 09/01/08 by AnonymousWell said!
And you have the potential for a great ThinkGeek shirt there. :)
Post new comment