in a high tech world, who needs résumés?
Marketing celebrity Seth Godin, who once made an appearance on this blog to talk about why people can be so willing to accept gravity but not evolution, decided to issue a call for summer interns and apparently wasn’t very impressed by the resumes he received in reply. In his typical manner, he didn’t proceed to just give future applicants more detail about what he wants to see, but decided to tackle the entire notion of a resume. His suggestion? You don’t really need a resume because in the digital world, you can show real world projects in action and your online persona should be the strongest argument to invite you for an interview. Sounds great, right? Just pitch that tired old resume and work on your own blog and social media skills. No more job sites demanding that you fill out your work history in septupluicate and upload a dozen copies of your resume just so you can be one of the several hundred faceless applicants to a position described with some vague, often canned requirements drafted by HR once upon a time. It’s all going to be about you, right? Well, I’d advise you to keep that resume handy just in case since your online persona turns out to be insufficient to get hired.
Funny enough, I’ve heard some rumblings about the uselessness of resumes in the tech world, especially in trying to hire programmers. Some IT managers even commented how easy it is to develop your own apps on the web and mobile platforms and that every good programmer should have at least something handy just to show at an interview. Seems a little unrealistic to me. Sure, you can build an app to demonstrate something, but what exactly? If you’re trying to show depth and breadth as a programmer, a one-off app won’t tell a future boss very much about how you work in a team and if you show your source code to other programmers, you’ll quickly be reminded that an awful lot of programmers think that their colleagues’ code is an awful mess that should’ve never been written. Besides, in the real world, you’re probably not going to write a complete system on your own. Instead, you’ll be working on chunks, modules, and distinct functionalities. Want to present that code at your next interview? You’re very unlikely to be allowed to show it to a possible competitor. After all, that code is your bosses’ property and they don’t want anyone scouring it for a potential vulnerability or places that would allow a hacker to inject a worm. So what about coding exercises? Again, code can be subjective.
Obviously whatever you write has to do its job correctly but the logic behind how it’s written is always open to a personal interpretation. Coding tools are extremely open-ended because they have no idea what you could be writing tomorrow or the day after, so they give you a vast myriad of options and it’s up to you to figure out how you’re going to design the app. For example, take what could be a little coding exercise: a calculator that could parse an entry like 5 + 5 and produce the correct result without using any if or while statements. In C#, here’s how I initially tackled it and if you have Visual Studio at home, I invite you to try this code out. It doesn’t do any real user validation but we could always add that later. The important part is that it works. But hold on, there’s another way to do it, using Actions instead of Functions. Which way is more correct? After all, both work. And for the programmers out there, you might notice I used the “var” shortcut to declare new variables and I could have went without a custom little struct there mostly to keep things pretty and easy to follow. Was that bad? Is this a sign of code bloat or do you like how the logic is splayed out for future modification? Oh and you can do the same thing with Tuples too, though it does start getting a little messier. My point is, what in those simple bits of code would convince you that someone is a good programmer and can work on a large system? How much did all those samples tell you about that and what’s really imporant in them to you?
Now imagine non-technical people scouring through all that in a search for a new programmer or a systems architect about a hundred times a day since you can’t exactly pull off programmers to sit there and evaluate a whole lot of code all day long. It would be a nightmare for the HR folks so it’s much more human to give them some sort of resume which lets them see that you spent some time in different companies and managed to hold down those jobs because whatever you turned it obviously worked well enough for your bosses. Hiring a person is always a difficult task and you never know how things will ultimately work out. A superstar from one of the best names in your industry, a person whose reputation truly precedes her might crash and burn when entering a new corporate culture and working with new people. Business magazines are littered with tales of such woes in every field of commerce and no amount of vetting, looking at code, or technical screening could ever completely prevent these incidents from happening. When looking at hundreds of applicants, there’s no way that HR would be able to spend the time required to really get to know someone’s online profiles, study a few of their projects, and make decisions based on such a complete package after days of scrutiny. A search like that could take years per position. And while a resume is often rather cold and impersonal, just as the oft derided (and rightfully so!) practice of searching resumes by keyword, we’re stuck with for now.