Resumes: StackExchange certainly believes it should be used as one, as it has a monetization strategy in its careers site, and I've heard more than a handful of times that your Github account ought to be your resume. Both websites are extremely useful for evaluation in addition to the typical resume and in-person interviews in hopefully determining what kind of skill and/or talent one might have for a professional programming position. Though, were it possible, I personally would rather see the logs or of a potential candidate from IRC networks and channels centered around discussing programming - freenode being the prime network for this and the one I use, though I knew others exist.
I realize this is almost entirely hypothetical as many folks in our field do not bother with IRC for multitudes of reasons. However, if I were trying to scour the Internet to find a potential hire as a developer, I'd argue that if one could view a potential candidate's behavior and displayed competence on IRC programming channels, then it would be more useful in ways that that Github and StackExchange may not provide.
For starters, IRC itself is a bit of a technical shibboleth in ways that differ from at least Github. Depending upon the choice of IRC client, in order to actually join a channel you would have to figure out how to get a client to connect to a server, likely register yourself with a nickserv, and figure out how to list out and join channels. Many clients hide this behind nice GUIs and menus, but it's still a bit of a ceremony when compared to more recent chat systems.
If you believe that alone is silly criteria and that any monkey could connect to an IRC server, consider that in the past a former colleague and I have actually decided not to work with specific developers before in a professional setting partly because they literally could not figure out how connect to freenode and join a keyed channel that we had already established months ago for work. They instead wanted to use email and Skype for our work, which are both wretched for team communication. Let that sink in for a moment – if a person's or team's stated skill set matches all of the criteria of being technically competent, but then they lack the persistence or savvy to even use to one of computing's most useful and enduring communication protocols, especially given how easy it is in modern graphical IRC clients, then do you really want to depend on them when it comes to delivering professional software?
Taking the point to a logical extreme, you can deduce a baseline about how technical and curious a person is based on their choice of tools for IRC. The response of `/ctcp $nick version` may end up being the name of a bouncer or a command line client and you can probably assume this person is going to be very comfortable working out of a terminal shell, which is itself a merit one should place much weight in. You may eventually find out the person maintains/develops an IRC bot or is making use of or writing plugins on their client – though getting this deep in to what tools a person uses for their IRC experience may be taking the technical aspects a bit far beyond what is useful.
Truly though, that's not where IRC's strength in evaluating a future teammate is. Github's technical requirement of actually using git for contributions, which I'd argue is actually more difficult, makes it better in this regard. Where the fun really begins with IRC is watching a person interact on an IRC channel:
- Do they know how to ask questions to actually get answers and what is the nature of their questions?
- How well do they help other people with their questions? Do they spoon-feed answers or 'teach a man to fish'?
- Do the openly discuss their choice of tools, libraries, and design decisions?
- How do they handle others' trolling? Do they themselves actually troll others?
- Can they communicate well enough in text? I mean full sentences with complete thoughts, without aolbonics, coming across like a college-aged stoner, and without hitting enter every fifth word.
- How well do they adapt to the culture and (unwritten) rules of a channel? How much do they influence, in a positive way, the discourse of a channel?
If the above sounds like unnecessary and contrived analysis from what is ultimately a chat room, substitute "workplace" for "channel" and then rethink the importance of knowing these things about a person you'd consider working with...
Question Answering and Asking: The first two bullets are pretty damn insightful in to how much of a self starter a person is, how they reason about problems, and how they go about solving them. A potential coworker may be dead weight on your team if they are the type to continually ask a questions on IRC without first using a search engine, trying to answer simple questions themselves by asking their interpreter/compiler, or attempting to produce a SSCCE. The lack of doing at least one of those three things shows a complete lack of respect for the time, attention, and mental energy of those around them and is indicative of selfishness. Conversely the person who tends to ask questions in a smart way, jumps on the difficult to answer questions, and provides thorough and guided (without handholding!) help to newcomers is going to raise the tide for all around them.
Open Discussion: Is a person on IRC discussing new tools and techniques and interested in learning new things - irrespective of their present skill? Do their preferences in tools align with what is both relevant, productive, and useful - or perhaps what you already use or wish to use on your projects now?
Trolling: Trolling is a bit of an analogue to passive aggressiveness and/or sarcasm - both of which are poison. It is a no-brainer to avoid people who act and speak in those ways, but what is equally important is to avoid people who waste time feeding such behavior and becoming, at best, distracted by trolling behavior.
Speaking Intelligently: It's a perfectly acceptable thing to be prone to misspellings or perhaps not being great at typing English because it is your Nth language. However, one thing I've anecdotally observed in reading the text of others that the ones who have to abbreviate "you" as "u", "question" as "q", "because" as "cuz", and type in such a way that leads one to believe they are text messaging are generally people who tend toward sloppy and often unnecessary shortcuts in most things outside of talking in text based mediums. There are exceptions to this rule, but in my few years of helping out and learning on freenode, this has been generally true.
Adapting and Influencing: Can a person shift just enough to make themselves fit into a culture and can a person actually influence the behavior of others? Every workplace has its norms, for better or worse, and so does each channel. One can't know with a day or two interviewing if they truly will fit in to a place. Further, workplace environments shift, management and coworkers often change, work pressures increase and decrease. Is a person adaptable when change happens and there are new people to work with and new situations? Can they positively influence their environment when it's new or when it changes? If a person can /join a channel, ask a question, and help others, adapt to the rules of a channel that may have hundreds of people in it, then that person can probably fit in at any workplace they wished to join.
Yes, you could possibly glean some of these things from Github, StackExchange, and others, but I'm of the opinion that such assessment is tarnished to the degree that I can't evaluate truly what kind of person I'd be working with by viewing their behavior on those platforms alone - so in that respect, they are just like a resume in that they don't tell me the whole story. Those platforms are their own cultures with their own rules and are gamified to a large degree by the owners of each platform.
So yes, IRC is a bit of the Wild West by comparison, but when judging a person with whom you'd like to work with, it would be truly interesting to see how act when such an environment around programming peers only and when there are not as many rules to follow. You can observe with much greater precision who, as a person and not necessarily a programmer, you are dealing with. That could potentially tell me much more about who you are than your Stackoverflow points or your Github profile.
Note to Readers Who Viewed the Original Post:
I made significant edits to this post four days after it was posted. I originally wrote this to dump my thoughts I had during one caffeine induced morning helping out newcomers on IRC after having the day prior discussed the usefulness of IRC and considering how people like the cliche of "github as a resume". The goal I intended would be to share my thoughts on how useful the medium is at identifying talented brains in programming that would also make for compatible coworkers. It helps to know my first full time developer position came from being identified from helping other newbies on a freenode channel. When I refer to IRC I'm specifically speaking about IRC channels and/or networks dedicated to discussion about programming languages, open source software, and computing in general - freenode being the most well known of those. And yes... there are probably a few orders of magnitudes more talented brains not on IRC, but the signal to noise ratio when trying to find them on the proper IRC networks/channels is a bit lower.
I passively watched discussion about the original post without engaging. I didn't realize the reaction would be quite as passioned as it was. Nor did I believe it would get as much attention as it did (8k views in a day is actually quite a lot for my writing). There was a miscommunication in what I ultimately meant to convey , and that miscommunication lead to undertones of elitism.
Human communication is a shared burden, but that burden is more heavily weighted on to the sender. I pondered why the reaction was the way it was and concluded that 1) I may actually be insensitive in subconscious ways I did not previously realize 2) I'm a rather poor writer and choose very poor words (see overuse of 'prick') to describe my ideas. I wanted to start writing again for that type of self growth - so that I may become a better writer and expand my mind through outward communication to a larger audience than friends/family. That is why I have edited this post.