A Personal Pantagraph

Prognostications, Epiphanies, and Banalities

What Prepares Students for Industry?

This is the second in a series of entries regarding the future of computer science education. In the previous entry, I talked about what the purpose of computer science education is, and I concluded that it was important to start from the bottom up; i.e., by considering what the students want out of the education first. Broadly speaking, what students want is either going to graduate school or looking for a job. And to get a job, a good job, students have to consider what employers want. In this post, I comment on an interesting post by Joel Spolsky on how he screens resumes from hopeful job applicants.

First off, Joel’s approach at Fog Creek Software is to use resumes strictly to decide which candidates to interview. If you want to work there, you will win an offer during your interview; the resume will determine whether or not you get that interview.

So what is Joel looking for in resumes? The answers, in Joel’s own words, are

  1. Passion: Do you really love to work with computers?
  2. Pickiness: Do you really want to work at Fog Creek Software, or do you just want a job?
  3. English: Can you communicate? In writing? In person?
  4. Brains: Just how smart are you, anyway?
  5. Selectivity: Have you made “the cut” anywhere? Where?
  6. Hard-core: Can you handle hard tasks? Can you understand difficult technology? Or is VBA pretty much it for you?
  7. Diversity: Will you fit in

Two possible answers that are deliberately not on the list are experience with specific technologies (e.g., .Net or J2EE) and extra hoops, e.g., programming quizzes. Many other companies use similar criteria, though some companies will emphasize specific technologies more, especially those looking to fill a need or hire for the short term.

How can you win an interview with Joel? How can you show that you have the right stuff? I will try to address these questions to students of my university, but most of this stuff should apply to those of you studying somewhere else.

  • Passion. This is easy. Realize that everyone who graduates with you this year will have taken nearly the same set of courses. To demonstrate passion, you must do something extra. So use your skills: write software for a non-profit organization, contribute to an open-source project, spend some of your free time writing a great program that interests you, learn new technologies that are not taught in school (e.g., new programming languages or web platforms). All of this shows that you love computers and working with them. It sets you apart form your peers (read: the competition). Of course, if you do these things, make sure your resume makes this clear!
  • Pickiness. Every career counselor will tell you about this one! What Joel wants is somebody who wants to work with Joel. So make your cover letter specific to Joel’s company. Make it clear that you looked at their website, you considered your options, and you have decided that you think their company is right for you, yes you. Nobody wants to hire somebody who just sent an application to 300 other companies!
  • English. Working in industry is all about communicating with others: your customers, your vendors, your coworkers, your bosses. If you can’t communicate, you won’t survive in industry. So one of the things employers look for is people with strong communication skills, both oral and verbal. Your resume and your cover letter are your first opportunities to communicate with your future employer. Make sure they show off your communication skills! If you need to, take the time now to brush up on your spelling and grammar. Yes, it is important. And if you do other things that show off your communication skills–for example, if you’re a member of Toastmasters– make sure you mention it in your resume!
  • Brains. You want to show that you’re not an average schmuck. Maybe you went to science camp, maybe you help with science camp at the university. Or maybe you like puzzles, or chess, or go. Let the employer know. And hopefully you have a high GPA! Grades matter, at least for your first job.
  • Selectivity. Joel is looking for a sign that somebody, anybody, has taken a look at you before and picked you over many of your peers. If you’re studying at Harvard, that’s an easy story to sell. If you’re studying at Wyoming, then you’ll have to work extra. How can you prove that you’re special? Think of any activity that puts you in competition with your peers. A direct activity can be something like the ACM programming contests. That shows evidence that you’re at the top of your programming game. Other direct evidence might be a leadership position in a student organization. Indirect evidence is also useful, e.g., a black belt in Karate or playing a difficult musical instrument. That shows that you’re capable of doing something that only a few people in the world can do.
  • Hard-core. Good employers want good employees, who can be let loose to solve a problem and come back with a good solution. Even if your job is to write applications that move data between a database and a web form; even if the only languages you ever use in your job are Visual Basic, SQL, and HTML; even if your job never asks you to invent a novel approximation algorithm, write a device driver, write a compiler, or design a new scheduling algorithm for an operating system; your employer will be glad to know that you could do some of those things. Put simply, an employer is more likely to value somebody who can do hard things than somebody who can only move data from a database to a web page and back. Your transcript will speak volumes about your tolerance for hard-core work. Did you always take the easy way out? What electives did you choose? What choices did you make for foreign language, science, art, social studies, humanities? What courses did you choose in computer science? In math? Were they the easier ones, or did you tackle some hard ones. Do you have abstract algebra in your transcript? Compilers? Computer theory? Operating systems? Graphics? Artificial intelligence? And what do you do with your computer at home? Does it read email, browse the web, play games? Or is it part of a homebrewed network cluster that you put together? Is it running an operating system that came out of a box? Or is it running an operating system that you tuned carefully to your system configuration? These things say a lot about you. And many of the choices you made are there in your transcript, waiting for the top employers to read them. It’s your job to make sure the employer knows about those those other choices that aren’t obvious, like your home network that links your hacked Xbox360 to your cluster of recycled computers running a stripped-down version of FreeBSD.
  • Diversity. Joel makes it clear that he’s not talking just about hiring minorities. Yes, that’s part of it. But the bigger part is your background and experience, which should be different than that of your peers. The good news is that it almost certainly is! If you study at Wyoming, chances are you come from a small town, you have spent a lot of your time outdoors hiking, hunting, fishing, mountain biking, rock climbing, or skiing. Most kids from other schools will have completely different backgrounds! So put that front and center.

I think we have a good program at Wyoming, and there is no reason why you can’t get a top job in computer science if you graduate from this university. But you will have to work harder to get it. Hopefully this list gives you some ideas of what you can do to make sure you stand out and have great jobs competing for your services, not the other way around.

Comments are closed.