Skip to content

Categories:

The Reality of the Underachieving Hacker

A couple weeks ago, while getting my daily Hacker News fix, I came across an article in which Alan Skonkin makes a case that better students make better programmers. He describes his frustration with the idea that in the world of software, mediocre grades have come to be equated with creativity and flair and flashes of genius. I’m not sure that this association is as prevalent as he makes it sound, but the world of computing definitely places less importance on formal education than most “high-level” disciplines. That said, my personal experience as a computer science major leads me to disagree with this idea.

Now I’m not a genius. Not even close. But, unfortunately, I would suppose that I fall within Skonkin’s definition of an “underachiever”. My GPA isn’t stellar, hovering around the 3.0 mark. I’m not a member of any honor societies. From a purely academic standpoint, my college career has been pretty mediocre. So when I read a title like this, it’s definitely a bit disheartening, and I can’t help but come away feeling that perhaps Skorkin is a little misguided. I can see how he (and others who worked hard to maintain a high GPA) would be frustrated to hear people describe academic achievement as a weakness rather than a strength. However, he seems to be swinging the pendulum too far in the other direction; not only is he saying that straight-A students can be just as creative and effective as anyone else, he suggests that they are flat out better. Here he states that a high GPA in itself inherently shows some form of intelligence and capability:

Those who get good grades are the ultimate survivors. They enter an environment, evaluate it critically to figure out what skills they need to succeed and thrive in said environment. They then put in the effort to gain and/or sharpen these skills. At this point they can apply their knowledge and skills with precision to get to the top of their environment and stay there. Excellent academic results are just a side-effect.

There is definitely a kernel of truth to that statement, but I don’t think that it lines up with the point that he’s trying to make. Yes, there are definitely skills and knowledge that one can pick up to optimize their trek through the modern educational system. However, at a lot of universities, the skills and knowledge to which he refers is simply the ability to find out which classes hand out easy A’s, knowing the right strings to pull, or where to find preexisting source code that does exactly what their assignment asks for. Even barring academic dishonesty, we’re largely talking about political skills here. Social skills such as these can come in handy, but they don’t make you a better programmer. Skorkin overlooks the fact that there’s a significant difference between knowing that someone got an 4.0 and knowing how they got it. And the fact of the matter, like it or not, is that a significant number of students get it by simply taking the easiest classes that they can. It makes sense that this would be particularly true for more difficult majors, which would include engineering and computing-related disciplines. I’ve know more than a few computer science majors – with very solid GPA’s – who avoid having to write code whenever possible. Yes, computer science majors who don’t write code.

In contrast, I’ve taken classes that weren’t required (mostly upper-level math electives) purely for the intellectual challenge, both in and out of my major. Even when dealing with humanities and core curricula, I always tried to find the “hard but good” professors. I did very well in some and merely alright in others. Even in courses in which I earned a mediocre grade, I still learned a lot. In my opinion, this is the fundamental difference between the mentality of a traditional student and that of a hacker. Students who consider grades to be the first priority are likely to place GPA preservation above intellectual pursuits, but hackers aren’t going to skip out on an opportunity to learn something cool or interesting for the sake of a number on a piece of paper. Good grades are to hackers like popularity is to nerds: nice to have, but absolutely necessary? Not really.

Posted in Uncategorized.


A New Year, A New Mission

So it’s 2010 (pronounced twenty-ten, NOT two-thousand-and-ten) already, and I haven’t touched this blog in almost a year. The proposal that I had mentioned in the last post’s video ended up getting (partially) approved, and I’ve been working with a couple of professors to put a curriculum together for a course on parallel programming using GPU’s and building a small laboratory environment to support it. As I start consolidating all the information that I’ve gathered over the past semester, I plan to put up a series of posts introducing the topic.

On a more personal note, it seems that 2010 will be a year of transitions for me. I’ve basically wrapped up all my degree requirements last semester and am now actively employment. This, as well as some other recent events, has me contemplating whether staying in Atlanta is in my best interests (I’m not the only one). Regardless, this year I will be getting more directly involved in the local community. In 2009, I made a lot of connections with some great people and look forward to keeping that momentum going. More details to come.

Posted in Uncategorized.


My Intel Interview at SIGCSE ’09

In March, I had the opportunity to attend the SIGCSE conference in Chattanooga, which served as my introduction to the world of academic / professional conferences. For those who have never been to a tech conference, I highly recommend it. Even though SIGSCE isn’t about “hard tech” (it focuses on the development and improvement of computing education), it was still a great learning experience. While at the Intel booth, I chatted for a bit with Paul Steinberg, who was interviewing various people about their thoughts on the current push towards parallelism. Thankfully, I had something decent to say, thanks to my recently acquired interest in HPC / visualization and the tech fee proposal I submitted this past winter.

Lesson learned #1: For any project that you are currently or potentially interested in working on, always  keep a default pitch / breakdown of exactly what it is in the back of your mind. You never know when someone may ask you your thoughts on the matter.

Lesson learned #2: Do as much public speaking as you possible can. I’d probably had this conversation with various people a hundred of times, but there’s a big difference when there’s suddenly a microphone in your face and a camera going.

Edit: SPSU does indeed address concurrency in their CS curriculum, in the Operating Systems and Distributed Systems courses. I meant that there is currently no course that directly addresses data parallelism or programming for massively multicore systems.

Posted in Uncategorized.