Absolutely not. I've interviewed people who had amazing Github profiles who couldn't write a simple loop on the whiteboard. Either they hadn't written the code in their github, or they code only by copy/paste.
ps. It might be a good idea to be slightly more gender neutral in your question. :)
About your PS: using "he" and its associated pronouns as the neuter pronoun is a well-established and common occurrence. It's not being sexist, or non-gender-neutral, it's just a way to have neuter pronouns without awkward constructions such as "they" or "he/she". Those are fine, but they read awkwardly to some people. Using "he" is a perfectly acceptable alternative.
I'm aware that technically he/him are both gender neutral, as they derive from "human"(Latin) and not "man"(German).
None the less, in today's common usage, it has lost that multifaceted meaning and the preferred language today is using the 3rd person as the gender neutral pronoun, or s/he or he/she.
While "they" may be the more common usage (though I personally doubt it), it doesn't really matter: it's fine to use whatever you want, and there's no reason to call him on it when it's not actually sexist. I have no problem with you using "they", but I don't see any reason to have a problem with the OP using "he", either.
> While "they" may be the more common usage (though I personally doubt it), it doesn't really matter
In your opinion. It matters to some people.
> it's fine to use whatever you want
Be aware that if you use the "he" form with some audiences, you will get a negative reaction. As to whether this is "fine" it depends on the purpose of your communication.
And even if it was derived from that word, words change mening over time so the current meaning could be radically different from the ancient meaning. For example, "silly": http://www.etymonline.com/index.php?term=silly
> the preferred language today is using the 3rd person as the gender neutral pronoun
"he", "she", "it" and "they" are all 3rd person pronouns. I'm guessing you meant the 3rd person plural pronoun ("they").
Just because something is well-established doesn't mean it is right. "He" is obviously not a gender neutral word because it refers to a male. Now why should you make an effort to use correct language here? Because it matters. Language forms thought and if we continue to add genders to professions such as programmer -> he, nurse -> she, laywer -> he, au pair -> she then that has detrimental effects for the excluded sex.
Do you deny that always envisaging programmers as males put female programmers at a disadvantage? Read the usage note here and think for yourself: http://www.thefreedictionary.com/He
I don't think you're thinking this through. Using "he" as the neuter is not assuming the subject is masculine. It's reusing "he" for another purpose. It's one word with two meanings. It's fine if you don't want to use it, but it's not inappropriate or sexist when others do.
That is exactly the same logic that people who use "gay" as a derogatory term uses. But it is wrong as it adds connotations to a word where none should be, such as gay=bad and he=the norm. Ask yourself why you would want to use imprecise language that can be misunderstood when exact alternatives are available?
If I may be frank: you're completely missing the point. You're the one adding masculine connotations to a usage that is well-established, well-documented, and connotationless. When someone uses "he" that way, it isn't masculine. That's my entire point, which the rest of the thread seems to have grasped. There's plenty of evidence for it.
I know "he" isn't the most common usage, but it is still acceptable (and is probably more common than you realize). I don't think it needs to be the common usage, and I have no problems with the other techniques for a gender neutral English pronoun. There's no offense, and no implied masculinity.
Why would I want to use this idiom? Because to my ears, and in my brain, the other usages don't feel right. They seem awkward and contrived, and break the flow of writing. It just bugs me - just like "he" seems to bug you. However, I don't go around telling people who use "they" or "he/she" that they should be using "he" - it's their choice, since it's their writing. I'd appreciate it if you'd grant the same courtesy.
Stated another, simpler, way: the same word can have different meanings depending on context. (The word "tie" means both a large, square, wooden pole used in railroad tracks and a decorative piece of men's formal attire). This is one example of that. "He" has two meanings: one masculine, one neuter. This is an example of the neuter usage, and doesn't have a masculine connotation.
It's important to realize that language isn't a fixed thing, that different people will use it differently, and that's okay. Different dialects exist, and that's okay. Different styles seem fluid or awkward to different writers, and that's okay. Chill out, it's not hurting anybody, and an overreaction like this isn't helping "women in programming" or "non-discrimination in language" or any other cause that you want to champion. I'm not stereotyping women, I'm not claiming the superiority of men, I'm not describing things in offensive or discriminatory terms. I'm using a pronoun. That's it. Sometimes a pronoun is just a pronoun.
You're not going to be able to fix every little thing that you consider sexist, because people are human. I absolutely advocate improving the situation, but I acknowledge that it will never be perfect. Perhaps your effort would be better spent arguing against actual sexism instead of leaping at every little thing that just might be discriminatory even when it's clearly not.
Then by the same token you should have no problem using "gay" as a general derogatory term. You happened to not address that point. If you can't see why using gay both as the label for male homosexuals and for bad stuff, then it is not strange that you can't see why using gender neutral pronouns are important.
Just because I think words can have different meanings by no means implies that I think any meaning of any word is valid. So my correct, formally acceptable use of "he" implies nothing about my opinions on the slang, informal derogatory use of "gay". That's nonsensical.
Again, you seem to be missing the point. I'm not using non-gender-neutral pronouns. "He" is gender neutral, and there is plenty of evidence supporting that. I agree: gender neutral pronouns are important. They're necessary for using the language. "He" is one gender-neutral option among others. That's why it's use by the OP was perfectly acceptable.
I'm not sure why you think that riddle even resembles relevancy, but it doesn't. There's no incorrect language here, all there is an oversensitive overreaction to a normal , unoffensive, formal, well-used idiom. I immediately grasp that the doctor is the patient's mother. Using "he" is not going to change that.
Just give it a rest. You're getting pretty desperate at this point.
"Gay" as a derogatory term is common in English. You can find it in most dictionaries and it is neither slang nor "informal" (whatever that means).
Here is the thing. If you can accept that "gay" as a derogatory term is incorrect, despite it being present in dictionaries then it's a small step to question other word usages in dictionaries. It allows you to think for yourself instead of just parroting "he is gender neutral" because you read it in a book.
It's not "incorrect". You just don't like it. There's a fundamental difference.
> It allows you to think for yourself instead of just parroting "he is gender neutral" because you read it in a book.
That would be meaningful if English grammar was some kind of performance art. Instead, it's a fact that must be learned through study - yes, by reading books that detail what the rules of the grammar actually are. If the established grammar says that "he" can be a gender-neutral pronoun then it can be a gender neutral pronoun. It's not a matter of opinion. It's not up to you to be, like, independent of The Man's English, or whatever.
This is the problem with the software industry right here. Managers who think it matters if a developer can draw code and solve problems on a whiteboard. In my whole 10 years and counting in the industry, I have never once seen a whiteboard used a pre-coding pad because at the end of the day, developers are hackers, not professors writing a code thesis on a whiteboard. The whole whiteboard approach is severely outdated, it might work for some companies, but it's 2013, not 1979, developers have the Internet to solve most of their problems now.
I think the real test of a developers skill is to ask them to code something for you. As a developer myself, i would fail any whiteboard interview because most of the problems I solve aren't because of solutions I've come up in my head, they are because I knew what to search on Google to find the solution. And to anyone who thinks this makes a bad developer, round up a group of 20 developers and ask them how often they use Google searches to solve problems they encounter. The difference between good developers and bad developers is not if you can solve every problem on your own, it's having the skills to know what to search when you encounter a problem. Us developers are over-glorified web searchers with a simple understanding of the language we are developing in.
Mostly agree with minor exception of ask them to debug something not code something. More time is spent fixing changing (for the sake of change of course) and updating and upgrading than plain blank sheet starting.
Also, debugging code is harder. Any idiot can write something that occasionally works with some limited simple input and doesn't need to scale or do much error handling or recovery or cooperate with the OPS guys and their designs in any way. If you hire a guy who can code but not debug what he wrote, you're in big trouble sooner or later.
Give em a fizzbuzz with pathological parenthesis which mess it up, or half a fizzbuzz and ask them to finish it. Or give them a mortgage amortization calculator or similar with an obvious fencepost/off-by-one error (this is almost more of a spreadsheet problem than a real programming problem, but...). This is almost too stereotypical of a classroom task, but give them an OO design of a simulation of an elevator (literal, not an analogy) and ask him to add another floor to the elevator design, or add a fire dept override keyswitch, or maybe implement those door sensors so it doesn't move if any doors are open. Given a really crude simple importer for CSV text files, make it smarter so it can handle embedded commas inside quotes. Here's a crude simple roman numeral to decimal translator which handles I and V, now either add X or add prefix notation or whatever its called where IV = 4 not 6. Here's the worlds dumbest prime number checker which tests all positive integers smaller than the test number for divisibility... your task is make it faster.
> Any idiot can write something that occasionally works with some limited simple input and doesn't need to scale or do much error handling or recovery or cooperate with the OPS guys and their designs in any way.
You'd like to think so, but what I'm saying is that isn't the case.
> Give em a fizzbuzz with pathological parenthesis which mess it up, or half a fizzbuzz and ask them to finish it.
I ask them to write regular FizzBuzz and they can't. :(
I predict you're in SV or perhaps NYC. Everywhere else the supply of programmers exceeds the demand such that only the top programmers/grads are in any danger of even getting an interview.
You could be running into people with bad attitudes. I'll blame youthful indiscretion or whatever, but one really bad interview I was in, I couldn't believe I took a day off work and drove half way across the state to interview for what amounted to a ridiculous low entry level position (bait and switch) so I started flirting with the cute HR lady and talked ham radio antennas for an hour with my future bosses boss because if they wasted my time I was going to waste theirs. Well, kids have never been known for excessive professionalism, I wouldn't do that now but I wouldn't get caught in a bait and switch either. So I guess what I'm getting at is do they look smoking hot pissed off or more confused?
In Python:
[x+1 for x in range(100)]
is not a loop but it prints out the numbers 1 to 100
map(lambda x: x+1, range(100))
is also Python and more legible to some people but the former is more idiomatic.
The key to fizzbuzz is to make the decision for a number x, whether to map it to itself or fizz or buzz or fizzbuzz. Given a function which does thatm, just map it over whatever list of integers you want. Still no loop.
Modern functional programming style does not generally write loops; that job is left to the compiler. Python does allow one to write loops, but it is fairly well known that doing so causes your code to run slower because you are fighting against the compiler and the underlying VM.
Right, people don't solve problems in 5 minutes and on the whiteboard. Resolving problems require a lot more of testing, research and maybe, collaboration from other teams. Making someone do a silly test imho is just testing the smartness of person but that doesn't tell me anything more...
> I think the real test of a developers skill is to ask them to code something for you.
That's exactly what we do. I say "please get on your computer and write a loop to print the numbers 1 through 100 in your language of choice" and they fail to do it.
This is very common, and there was a pretty lengthy discussion about interview anxiety on HN a few weeks ago. Had this person been tasked with writing a loop outside of an interview environment, they likely would have had no issues at all.
I think the whiteboard experience is very loosely correlated to programming ability and hope that the simple loop fiasco was an exaggeration. Many good programmers have a great deal of social anxiety, and being put under the microscope is not how they work. A better test of their prowess would be to hire them as a contractor if they can talk shop and have some live projects/open source code out there that isn't obviously copied. Short of that you could always stick them in a room for half a day, with an internet connection for their own laptop, ask them to solve a problem, then have them explain their rationale, stepping you through the code when they are done. Either of these would be a much better measure of how the candidate would perform for you if hired.
@jedberg is totally right!
It's like judging people by the way how they pack their suitcase.
To be perfectly honest, you can obtain metrics from Github that have nothing to do with coding, but behavioral analysis. I'll not go into details, because I think it's an unfair advantage.
Github is mostly used for personal projects. You can find a lot of dotfiles, frameworks, many smaller and some larger projects done for a hobby/friend/school/course or out of frustration/boredom.
What my Professor did is the way to go! Just hire that guy for a project, see how it's going and come together in a meeting to talk about the code, the solution and rationale behind the thinking. Then either conduct another team project to understand how he integrates in your company, or just hire that guy. Simple as that.
well, honestly and with a guilty tone I write a lot of code, work on projects and do stuff, close to good at github.
But, when put to test on my ability with time limits and sneak peeks, I do tend to forget why I'm writing that loop for.
I know several ROM/app developers in the Android community (including one close friend) that have been approached solely based on their contributions to their own Github account and organizations they are a part of on there. At least one of them was not even a college graduate and was offered competitive pay + benefits by several different companies. However, each also ended up going through at least part of the traditional interview process as well (phone calls, in person, etc). I don't believe any of them had to write code though.
In all of the cases, the companies were interested in not only their Android development skills, but that they had shown they could collaborate/communicate well with others. Each had also been a core contributor a major Android ROM project for at least 2 years, besides maintaining their own side projects.
Here is my stored.
I was hired via somebody looking at my Github repo. My English wasn't that good to have a good interview with many company I tried before. My Github wasn't that great to attractive top notch company. My skill isn't that good to be a killer dev.
I was just a so-so dev who really loves to code, and the company hired me based on that. Only looking at my Github repo.
I would still want to spend some time talking with them. It's rarely all about just pure coding ability. I want to know if they can communicate effectively and if they can work as part of a team. If someone showed a great set of open source contributions before interview, I wouldn't necessarily need to see them code in the interview and would focus on the other things important to the role.
It's also worth noting that even good developers might not understand GitHub.
I worked with a guy (around 8-10 years experience, and a good senior dev/technical architect) who spoke to me about someone he was interviewing for a mid-level role. He told me that his GitHub profile was great, and that he had a ton of great code and specs that he had written. In fact, he had forked most of this great code, and the only code that was his was a few tutorials from some books he had read to try and learn C# a year or two ago.
He wasn't a bad developer by any means. He didn't get the job because we couldn't get the budget to land another dev. However, there's a big difference in perception between a good developer on merit, and someone that has written some commonly used tools.
I still want to see the thought process behind problem solving, and associated communication, especially when in unfamiliar territory - code output alone doesn't show that.
But the existence of a github account is strongly correlated to a hire. It's depressing how many candidates haven't even heard of github...
These days, now that word has gotten out, it's not unusual to see fake GitHubs, with an unmodified fork of another project in say. HR is not equipped to evaluate this, it needs an engineer to git clone and take a look.
No. I wouldn't hire anybody based solely on one signal.
Great hiring requires evaluating more thoroughly than that. Have no less than one conversation with any candidate you're considering. Get a feel for their history, how they communicate, if they've any experience or passion in your ___domain, etc. E.g. All else equal, I'd more likely hire a candidate for my music start up that had experience integrating music apis, was an avid music lover, etc. That's not required, but helpful.
And yes, I'd still have any candidate write code in an interview. Too many times simple sql queries, OO, or basic understanding of data structures have defeated candidates, despite code samples that implied otherwise. If a candidate can't write simple code to solve simple problems, they likely can't help the company solve much bigger problems efficiently.
Thanks for the info. My point was more to the tune of - when you can tell so much more from a candidate's github work -- his algo's, coding, coding style, commit notes, commit times, descipline.. why would you want to poke his coding again ? Why not just discuss his prior github work and clear the coding part of his interview ? Agreed on the need to check if you can work with him, team work, problem solving ..etc. But isn't github eliminating the need for vetting coding ? Fake github profiles is surprising! Never heard of that before!
Always interview the person. Always give them a code test - at the very least a simple 30 minute test.
My current employer currently hires people without doing any sort of code test, and we have recently had to let people go because they just weren't very good. 30 minutes could have saved us a lot of wasted time and money.
Absolutely not. Online presences, while a plus, should never be used as a hiring requirement. Also, what if they contribute to a bunch of private repos (e.g. their previous company)? You have no way of knowing this beyond what they will tell you.
I'm going to support what could perhaps be a unpopular opinion - there is a lot more to a good programmer than simply writing good code.
I'd take communication skills over someone's ability to optimize a while-loop any day.
As a slightly tangential argument for hiring in general, I would like to offer that no matter what position you are hiring for, only looking at one facet of someone's abilities is very poor judgement.
Another useful angle is to investigate their personal ___domain; who is hosting DNS, are they using DNSSEC, do they run their own code on platforms they have built-out? Where are their MX pointing?
Gives a good understanding of how much or little they understand implementation & deployment.
And, of course, check that they can sign their e-mails with their own PGP key :)
Only if the job I was hiring for was to write code in a vacuum or a closet. If they needed to interact with customers or my team, I'd have to assess their personality as well.
ps. It might be a good idea to be slightly more gender neutral in your question. :)