Wednesday, June 22, 2011

What's in an education?

I can ignore this topic no further.  So far, I haven't been the timeliest at getting my thoughts out, but I'm working on it.  Anyhow...

A month or so ago, my cousin sent me the following link to a slashdot article:

[slashdot article]
http://idle.slashdot.org/story/11/04/28/1449250/University-Proposes-Tuition-Based-On-Major

I like to read the comments on slashdot to see what people (hopefully educated people) think.  You don't need to read too long to see that the general consensus is that the proposal is a bad idea.  Not only that, but you start to get the idea that we need more people to pursue the science, technology, engineering, and math (STEM) disciplines.  There is a high demand, but unfortunately a dearth of qualified people graduating with said skills.

Following on that, and what finally prompted me to write this, was a TV snippet I saw.  As I was passing through the break room at work, I caught a glimpse of President Barack Obama giving a speech on --- you guessed it --- STEM!  Clearly, this must be an important thing.

[Obama's speech]
http://www.realclearpolitics.com/articles/2011/06/13/obamas_speech_in_durham_north_carolina_110207.html

But I saved, for last, the punch line that ties all this together.  Between the two aforementioned events, I was watching an old video with Alan Kay.  It's called "Doing with Images Makes Symbols."  If you haven't seen it, I highly recommend watching it.  And if you don't know who Alan Kay is, well, start reading!  He just so happens to be one of the fathers of object oriented programming.

[Doing with Images Makes Symbols]
http://video.google.com/videoplay?docid=-533537336174204822#

Near the end of the video - if you actually take the time to listen to the Q & A, you'll find a most interesting question asked.  That is, in a nutshell, "What should aspiring students do in this career?"

Alan Kay responds saying:


"any students who are interested in going into science and engineering [...] they have to realize that both of those are art forms"

Well, this makes sense.  It aligns nicely with the software craftsmanship movement where we think of software development not as something formulaic, but instead as a trade or art.  However, he goes on to say:

"I am pretty much even against having strong concentrations in engineering, computer science and those things at the undergradutate level.  I think people should try to get a really solid liberal arts background."

But that's because he previously tied the two statements together by saying:

"liberal arts are the best place to develop you aesthetic feeling."

So, that second half threw me for a loop.  Advocating instead that one should pursue a liberal arts background seems to be the opposite premise of the first two articles.  After all, aren't we saying that we need more math and science students?

Now I'm certainly not one to argue against Alan Kay.  In fact, if there is anyone's opinion I'm going to trust, it's going to be his.  Suffice it to say, I find this quite interesting and I don't have an answer...yet.

So, what do you think?  What was your education in?  Was it valuable to you as a software craftsman?  Respond and let me know what you think.

3 comments:

  1. Bruce Eckel writes that "Writing Software is like... Writing" http://www.artima.com/weblogs/viewpost.jsp?thread=255898
    I agree, to some extent. Some of the best code is written by people with good writing skills, and I've seen some shoddy examples from people who don't write well. The Liberla arts degree limits the focus on the technical, and makes it more holistic. But the technical know-how is also critical. If I have a writer who can't code and a coder who can't write, which do I hire? The smarter one regardless, if I must choose one. Lucky thing I generally have the option of neither, becuase these are both bad options.
    STEM shouldn't be taught with no regard to the humanities, especially English/Writing. Neither should people who expect to work in the technical world fail to study thier domain of expertise!
    Scaling tuition by major seems like a bad idea, but people should be willing to pay more for a more valuable major. It's damn hard to recruit good teachers into these fields anyway, so if the result is pay scale increases for STEM professors, I'm for it.

    ReplyDelete
  2. My undergraduate degree was in Philosophy. I did take about 6-7 Computer Science classes as an undergraduate and took 4-5 more at the graduate school level.

    Some of the folks I interact with professionally who are Computer Science graduates really bristle when I say that some of the best software engineers I've worked with have a liberal arts degree. But this has often been the case, in my experience.

    Most of the work I've done has involved work for heathcare, finance, banking, utilities, i.e. 'business' computing versus things like building compiliers, SQL database engines, etc... However, I also did work for a couple of years on the Groovy Eclipse plugin. Definitely, in the 'business' world, having both the ability to reason through problems AND communicate effectively about them with others are really important.

    As a Philosophy major, I had to constantly dig deeper and deeper into problems, challenge assumptions, and learn how to keep pursing tough problems even when diving into one issue might uncover three more. The History majors I've know had to do much of the same thing. This skill has directly translated into my success as an IT professional. For example, I took almost a month of digging around through test programs and WebSphere stack traces to uncover a problem WebSphere was having not releasing JDBC connections from its connection pool correctly. Nearly everyone around me just shrugged their shoulders and said they weren't sure what to do; or they would start and stop after firs or second roadblock.

    Other examples include working in difficult business domains where the business rules are extremely complex. In these situations, it is important not only have the ability to drill down to the root causes for problems but also to be able to explain them to the parties that have a stake in the outcome. I wrote 3-5 papers a semester per Philosophy class. I think that experience directly translated into being effective on teams that involve both technical IT users and technical business users or subject matter experts.

    Of course, the classes in assembly language, C, discrete math, data structures, operating systems, etc... were necessary to even being working in this field. My only regret as I get older is that I didn't have the opportunity to take more theoretical computer science classes.

    Personally, I am trying to encourage my kids do precisely what Alan Kay is advocating. Get a undergraduate degree in liberal arts and complete (at least) a masters in something involves more of a 'hard' skill. I think it is a great formula for building a satisfying career.

    ReplyDelete
  3. I tend to agree with both of you. I've run into a number of very talented programmers where that wasn't their "first" discipline. This includes, however, other science folks, such as chemists or even mathematicians.

    As I stated, I find it hard to argue with Alan Kay. Perhaps someday I'll be able to write about the journey of my career.

    ReplyDelete