CS Degree? Constant Learners and Self-SysAdmins Are Required

I enjoy the conversation sparked by the Network World article Does A Computer Science Degree Matter Anymore? I've hired lots of software developers and IT professionals and whether they have a degree or not isn't usually a top factor. When you can, developing a technical screening questionnaire (asked by one of your trusted technical folk) that matches your environment and needs, is one of the best ways to determine if the person has the depth, breadth and specific technical skills you're looking for. That screening should be done before they ever come in for an onsite interview. But beyond determining is the person adept in technical abilities X, Y and Z, I want to know what kind of a thinker and learner they are.

The most valuable lesson I learned from my best (and by far the toughest) CS professor, Stan Compton, was him telling a class of senior and junior CS students, "What you learn in here will be outdated in six months, so it's your job to adopt an attitude of constant learning." Wow, six months and what I just learned in class is starting to get old? He was right, except it's less than six months now. I don't remember a lot from my assembler programming class but fortunately that bit of wisdom Mr. Compton imparted stuck in my brain. Don't get me wrong, I learned a lot in college and I value my education. What I walked away with is learning that I have a passion for computers and networking, and most importantly I learned how to learn. This is one of my primary areas I like to delve into during hiring interviews.

It usually starts by me asking something like, "What's the latest thing you've been working on learning, either at work or at home?", or something similar to that. If you've only been using .NET 3.0 and not bothered (or at least shown some interest) in checking out and starting to learn .NET 3.5 (just as an example), that's a problem. I like to see that a thirst for knowledge is part of a person's makeup. They're not going to wait from someone else to instruct them it's time to start learning something. They are self motivated, constant learners.

Constant learners usually have a pretty good library (online or in books) because they want to know, what's out there, what's changing, and how does that benefit or impact the work I'm doing. They know more than just C#, they're also up on patterns, using the MS Entity Framework, and higher order ideas about how to construct and design software. Or they're learning a new technology outside their direct expertise because it could influence and inform the decisions they make today. If you want to really sell yourself to me as a hiring manager, show how you invest your own time and resources into a passion for constant learning.

A second major area I look at is the kind of thinker the candidate is. Do they only know their part of the technology or application, and are pretty much oblivious to everything else? Or do they at least understand how all the parts fit together, even if they don't work on many of them. It's important to have expertise and depth in the areas of your focus, but you should also know how it works and fits into the rest of the app and its architecture. If you're a UI developer, you should know how the "backend" works. If you're using WCF to interconnect processes across systems, you still need to know how it really works and what that traffic looks like, how it traverses and impacts the network.

For example, I think the best developers are deep into understanding the OS, database, web server, app server, network and security. They not only want to know how it all fits, but want to get their own hands on it so they understand it, can work with it and know how to use it. They are their own sysadmin -- they are a self-sysadmin. They could set up everything they need to create a lab or environment for their software, and they probably have in order to learn the parts they're not versed in and to test design ideas.

One of the areas I spend a good deal of time on during interviews is asking the candidate about their home network. "What do you use at home?" or "Tell me about your home network." It's usually one extreme or the other'; "I've got 8 computers, my own servers, a couple of switches, a DMZ, VMware, I'm checking out Hyper-V, and I'm also learning [this new thing] over here". Yea! Rock on! Tell me more! Or it's "I have my home computer and a connection to the Internet". Boo. The worst answer in my book is, "I work with computers all day and the last thing I want to do when I get home is touch another computer." Big boo. Next, please. I understand work / life balance, but this tells me the work is your vocation, and not your passion.

The ideas of constant learners and self-sysadmins apply not only to software developers, they can be adapted to most any kind of IT role. The bottom line, is it important to you to stay on top of your chosen field and do you care about more than just the parts you work on? Do you take a broader, systemic view of things, and seek out to understand new things? Are you passionate about what this job entails or do you just want to perform the work and get out of here at 5:00pm?

Okay, now... did you say you have a CS degree? If the interview went well, we probably never got to that question.

Like this? Here are some of Mitchell's recent posts.

Mitchell's Book Recommendations: Also visit Mitchell's other blogs and podcasts:

Visit Microsoft Subnet for more news, blogs, opinion from around the Web. Sign up for the bi-weekly Microsoft newsletter. (Click on News/Microsoft News Alert.)

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.

Copyright © 2009 IDG Communications, Inc.