Earlier quoted context omitted.
I care about my profession. I go the extra mile. Last year, I read Programming Language Pragmatics and the Dragon book because the semester I wanted to take programming languages, the course was offered when I had to work and I never got a formal background. Last month I read 22 research papers in ad-hoc mobile networking in an effort to broaden my horizons beyond what I'm currently working on. Sure, I could write ns…
This is not about how good of a programmer you are but about how a hiring manager can decide whether you are a good programmer or not. When a programmer has an active github account with lots of quality code, hiring manager has an easily verifiable proof of programmer's abilities (or lack of it, if the code is bad). When a programmer can only talk about papers he read, hiring manager has no way to verify if he actual…
People have a tiny itch and write a tiny program to solve that itch. That's fine - I have nothing against someone doing that. However, to take that tiny program and others like it as more than minor evidence of programming ability is a huge leap of faith that I'm not prepared to accept.
For example: I work with a guy who just released an Android app that is a Starcraft 2 build order trainer. It runs a timer and displays an image of what you should be building in the game at that exact moment (assuming perfect efficiency). The idea is that you plug in the order you want to build units ahead of time, and you're "racing" the timer to become more efficient. Supposedly he has about a hundred downloads, so it's not a huge success but it's also not an abject failure as far as apps go. Here's my problem. It doesn't DO anything.
It doesn't suggest reordering your build to account for obvious problems (e.g. never building a military unit). It doesn't optimize your build to account for obvious parallels (e.g. it won't tell you it's stupid to queue up units for production when you could put your resources to work elsewhere for immediate benefit). It doesn't even track wins/losses that I know of. It basically displays a series of images based on a script that you provide.
I'm sure it's very well written software based on the contributions he makes to our codebase at work, but it doesn't say very much about him except "here's a guy who was able to write one mobile app." He's not bad at coding, but he's really not great at solving ill-defined problems, and that costs him when he's confronted with something new. For example, he spent a week as part of a performance effort writing an aspect to generate timestamps whenever a method was called and when it returned. This sort of thing is commonly known as a profiler, a tool which we had access to from the start and which would have worked fine for our purposes. He didn't know about that, and wasted a week getting AspectJ set up and configured and writing his homegrown profiler while the rest of us were making actual, obvious performance improvements based on data from a real profiler.
Yet, according to popular wisdom on this thread, his SC2 app proves beyond a shadow of a doubt that he is a demonstrably superior developer to someone who doesn't code in their spare time. Most of the apps and hobby programs I'm aware of fall into this category. My point is that a program is a solution to a problem, nothing more. If you're trying to hire someone to solve problems (e.g. an engineer or developer - what have you), a demonstration that this person can solve relatively trivial problems should not be taken as a bell-ringer for engineering talent like it frequently is.