I have created more than 50 personal products on the web and mobile space and none of them are open source.
I am not for or against open source. I just haven't thought about it. Period.
There is a big debate raging on Hacker News and elsewhere where I learnt that people are increasingly favoring candidates' Github profiles over resumes.
Now, I could learn about how open source works and the philosophy behind it, but for the sake of this debate I don't want to (relax, I am sure it is noble) as I feel that's missing the point.
I want to question how a personal belief could somehow become a dangerous fad.
As a recruiter I might decide to look at the candidate's code quality OR look at actual working end products the code has produced. Looking at code is in some ways putting the cart before the horse.
This takes us to another concept that some programmers are in love with... beautiful code. What? How about a beautiful product? That's all that matters. If the product is beautiful(useful, is the right word), that's the end of discussion.
The focus is somehow heavily on the code not product. The focus is biased towards a very fashionable belief system - Open source software.
You might as well say, to judge your personality and character, I will look at how frequently you visited the church or temple in the last month. What about atheists? or agnostics?
Let's also chill a little bit. If a candidate offers me his Github "resume" I might even look at it. It just opens a ton of questions for me, tough. But in the end, a working end product he/she has created is the absolute real measure of programming skills.
Agree?
Don't.
The end product being important is MY belief. I subconsciously fall prey to it all the time. Not all code needs to turn into a product. People could love writing algorithms or components that are not visual in nature. They might be good at creating tools that help themselves. I once wrote a scraper that could easily extract content from a webpage without using complicated RegEx. By the way, there was guy in my office who believed that writing RegEx code was the true test of a programmer. I begged to differ and wrote a wrapper around it so anyone could write pattern matching web scrapers! I use my wrapper to this day. I haven't open sourced it. Why? I just haven't thought about it.
Personally, I don't focus too much on skill and during interviews I try to ask open ended questions where I fish and find my way into the candidate's psyche. The questions I ask are extremely open-ended like the following...
"What is the most impressive thing that you have built or achieved?"
"What do you understand about your job that other people in it just don't get?"
When I ask these questions I am hoping for a great answer or a revealing insight about the candidate. In fact, I am presupposing that the candidate has an amazing answer to provide. It might fail with most candidates. That's the point. I have no idea what the questions might reveal. The reason comes afterwards. Y Combinator's application form is a great example of brilliantly designed questions. It is this thinking that led me to design a service for recruiters at FastCandidate.com.
Let me end with this.
You are NOT a true programmer if...
- You love one programming language over another.
- Are constantly getting into heated debates over Linux vs Windows.. Bill Gates vs Steve Jobs on internet forums.
- Believe everything should be "open source" and free.
- Are obsessed about writing "beautiful code".
- Spend more time reading about coding than writing it.
- The more difficult and complicated the construct you work in, the better the programmer you think you are.
- Have rigid rules about how code should be written.
- Look down upon "other" programming languages/programmers.
- Call yourself a [insert programming language here] programmer while introducing yourself.
There I go again... Don't take me seriously. Those are just MY beliefs at this moment in time. They are subject to change.