Keith Watanabe * NET 2.0

Being A Programmer
By: Keith Watanabe
Published On: 1-2-2008

I'm linking a very informative talk done by Steve Wozniak about his days that launched him from a hobbyists into someone who helped partake in shaping the world of computing.  Woz is a very interesting person to listen to as he reminds me of the idealistic computer prototype person.  Some characteristics I got in watching the video was that he enjoyed tinkering, had a solid love of electronics (computer's for computers sake! aka the Dilbert syndrome), his economical/environmental way of thinking in terms of building systems (i.e. constant optimization, working off of minimal parts), natural math skills (scored 800 on the SATs) and started out as a precocious child mostly due to his father.  Of course, there were some other more "negative" stereotypical qualities about him as well, namely his lack of business saavy and unwillingness to move towards management (read: selfish hobbyist).  However, in coming across many of the better computer science people or engineers and companies that look for engineers, Woz fits or maybe even created the mold of what the contemporary engineer is.  He even admitted that fundamentally you had to start at the smallest pieces like the atoms, physics and math.

After watching him and reading the arrogant developer's blog today, it struck me how this characterization of the "ideal" programmer is quite limited.  I can certainly see how things had managed to work out for Woz as well as many other people who have been carved in a similar domain as Woz.  However, the "purist" viewpoint of computing is what has stereotyped and hurt computer science for a long time and something which I believe needs to have the stigma lifted.

First, this typing of a programmer pretty much narrows who can join the field.  While I've done this myself during interviews, many interviewers will practically paste potential candidates because they don't match every single trivial buzzword from their novel tests.  I think it's hurt a lot of candidates' pride going into an interview and then getting slammed by the egotism and bigotry of some developers.  Not everyone was able to afford the best schools nor at times been allowed to take the same classes.  But a lot of people want to be given that chance to prove themselves.  It's unfortunate that earnestness doesn't mean much to people.

Another thing that got me was how Woz enjoyed the trivial at times.  It seems like he was more interested in solving complex problems rather than practical problems.  I've noticed that the typical computer science guy enjoys trivial, mind warping problems that in the end have little to do with improving the quality of life nor solving a real need (both of which are business cases).  Some of the things I've seen being produced out of places like Google such as Google Mars honestly have little to no use to the average person.  Is it cool to see?  Sure, but no one on Earth is living on Mars so what's the point?

Another point was the idea of what an engineer is supposed to represent.  Woz reminds me of my old lecturer in computer science at UCI.  My lecturer was one of these ideal types that believed in being honest, doing no wrong, etc. etc.  It's like you're supposed to be a nobleman with these principles you're supposed to follow.  One principle that got me was that engineering represented solving mathematical proofs.  I know there's another famous author out there who believed the same thing about programs.  So is creating a blog solving a mathematical proof?  Or building a social network?  Or writing a system that produces video?  And if not, are we supposed to mathematically prove the correctness of such systems despite the fact that people (the users) are so random that your test cases become endless?

However, one thing that kinda contradicted that type of thinking and made me give a nod to Woz was that he realized that he needed to break the rules.  I think this is the key to what people in computers need to start realizing.  These traditions and principles held are more like religions.  They serve a purpose for a period as a convention or paradigm of inspiration for that moment.  But in the end, these principles need to be constantly upgraded if progress is to be made.

For instance, there's a huge worship of OOP that seem to go on.  Take that author for instance or Java developers.  Naturally, there's benefits to OOP but does one need them to make something work?  No.  OOP is not an end-all means to a problem.  Of course, those who take "real computer science" courses might end up believing so because professors at times have their own political agenda for furthering or supporting their research which might've taken decades to produce.

The thing is that these are meant to help people who don't have the experience to get a better grasp of what's going on.  But they should not necessarily be made mandatory as modes of thought.  It's like guitar.  You'll hear guys like Satriani guy on about how knowing all the guitar modes can help one's playing.  And it's true.  If you understand the relations of notes to a key, you can do quite well.  Then he admits that there's a trap in knowing too much and falling prey to relying exclusively on theory.  Many of Satriani's criticizers noted that Satch would rely more on the technical aspects of guitar, which would limit the feeling of his music.

If we take the same notion, combine that with what Woz is saying and look at what computer science is, we'd realize that it's just theory.  You still have to produce and produce well in the end.  More than that, you have to produce something that works well with how you do things.  I've seen and been part of horrible failures in projects because there was some level of blind devotion of trying to just do the idealistic "right thing" as opposed to doing something at all to make something work.

I think it's hard for a lot of so-called real developers to grasp this notion.  I think that they've become so involved in what they're doing that they lose focus on what our purpose really is at times.  It's a fine line between being an artist and doing something useful for others.

AddThis Social Bookmark Button Sphere: Related Content

Trackbacks: (Trackback URL)

No Comments Posted Yet
August [September] October
Sun Mon Tue Wed Thu Fri Sat
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 1 2 3 4