Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The reality is the majority of tech interviews today are filled with questions/tasks that have little or nothing to do with the actual job you are going to be assigned. In fact an average programmer doesn't actually need to know a single piece of computer science or math (almost all such stuff is abstracted by common libraries and frameworks, whatever is not can be looked up on demand) nor to memorize anything (thanks to auto-completion and all the docs and Q&As being just a couple of clicks away), let alone to have skills in solving puzzles. Yet every other interviewer will ask you to write code on paper and give you puzzles on computer science, physics and everything. They will also ask you about your previous salary and the reason you have left the previous job (both matters are purely private IMHO), why have you chosen them (ridiculous, I just want to earn living in a sound company and have sent the CV to a number of companies to land the first one that feels fine and wants me), what do you want to achieve in n years (never thought about this, just want a job) etc. And a funny thing: a friend of mine (an experienced developer with history in multinationals) has once told me he was rejected told being "too unsociable", "talking too little" which is the perfect opposite of what he actually is (dozens of his friends would undoubtedly confirm). Puzzles are fun, intelligence is reasonable to be benchmarked, nevertheless the interviewing thing is done at least slightly wrong usually IMHO. I just hope some scientific research is going to emerge in this area in near future to help rationalize the hiring process. As for myself I ask nothing but the candidate's opinion on some relevant subjects (the opinion itself doesn't really matter much but it can indicate certain degrees of awareness, understanding, intelligence and motivation, also the talk can somewhat demonstrate the personality) and their GitHub profile.


> and their GitHub profile.

I have nothing in my GitHub profile. Some toy repos of no particular significance, one contribution to Rust that I've made before realizing it takes too much of my spare time... and that's it. I don't think that should make me un-hireable ... people that have kids tend to not have much spare time besides work, learning new stuff to stay relevant, and taking care of said kids. Not to mention, my company has me going through some bureaucratic process for any sort of open-source contribution that I intend to make.


> I have nothing in my GitHub profile. Some toy repos of no particular significance... I don't think that should make me un-hireable...

Same thing with me but I don't think it's hard to spend some weekends and write something to express your motivation an illustrate your coding skills.

> people that have kids tend to not have much spare time... my company has me going through some bureaucratic process for any sort of open-source contribution that I intend to make.

I understand your point perfectly but what I don't understand is how does it make sense to hire a coder whose code (a real (though not necessarily big) app code, not a 5-minute puzzle code) you have never seen.


> what I don't understand is how does it make sense to hire a coder whose code (a real (though not necessarily big) app code, not a 5-minute puzzle code) you have never seen.

Well, let's break this down a bit:

- if you hire a junior, all you care about is smartness & maybe culture fit. You get both of these better through interview than GitHub repo - if you hire a senior, you hire for social/organizational skills, problem-solving skills, diverse expertise etc. GitHub is not particularly relevant

GitHub makes sense when you look for someone with deep specific expertise in a narrow, open-source-related technical area. Which is rare. I think it's more often used to check that "this person has coding style preferences similar to mine", which is IMO not really a great idea.


Makes sense, thanks. We are just speaking about different things then. All the times I were looking for coders I was interested in neither juniors (whom I would have to teach) nor seniors (who would lead the team) but middles (who would just write good code given a very specific task and very detailed design).


Having less time to "learning new stuff to stay relevant" makes us de-facto less hirable. The "github" thingy is just a proxy (as is the "whiteboard CS exercise").


I actually do learn new stuff. While on the current job, I've been doing:

- Code-hinting (semantic analysis) in an IDE - Product management - Low-level JIT codegen & optimisation (for ARM Neon & Intel SSE) - Some datascience (technology/ product evaluation for a 8-digit aquisition) - One of the early contributors to a web standard - Distributed systems, bigdata (mostly graph-processing at quite big scale - Facebook-big)

and probably other stuff I can't remember right now. I worked in half dozen different programming languages. I'm pretty sure I've "stayed relevant" more than the average Joe, but you wouldn't know it from github.


If you're not learning on the job you should probably find another one that's more challenging.


I suspect that Github repos, SO accounts, toy problems etc. are simple tools interviewers use to make some form of rigorous decision when the applicant's CV gives them little concrete evidence of skill. A couple of years of job experience will speak far louder than those at any company you would want to work for. Especially if you employed in a similar position at the time.


StackOverflow and Github repos are a wealth of information about a possible applicant. There's the code... yes. But there's also the comments on Stack Overflow and issues on Github.

Given that the person is presenting StackOverflow as an example of their profession, comments on SO would be very telling for how the person would be responding to critiques of their code and their responsiveness to questions. Much can be seen in the attitude and professionalism that would be seen in email. Things like:

* Do they write in complete sentences?

* Do they use spelling and grammar that would be appropriate to send to a client? A director?

* Do they range against all that is wrong with the world over little things?

Likewise, with Github there are issues that they have logged on other projects - do these issues contain sufficient information about the problem so that the person working on the issue can diagnose it? For issues on their own projects or projects they contribute to (and have taken ownership of the issue), are they responsive and provide useful information to help someone provide a good bug report?

I'm not too concerned with the code. That's easy to fix. But a person's attitude and providing these sites as an example of their professional mindset is something that can be difficult to get at in an interview when they are only trying to put their best on display.


I don't think these kind of coding interviews are given to average programmers though, and if they are I'm sure they are taken with a pinch of salt (or with a lot of help from the recruiter, or using simple tasks such as FizzBuzz [1]).

In my experience, having been an average programmer (and maybe still being, I hope that by now I'm at least slightly above average) who worked in The Netherlands at a "system integrator", a web dev "sweat shop" (some projects using 10 year old tech, relatively high staff turnover) and even a startup, such companies don't ask for whiteboard coding, however take home projects are quite common.

I also interviewed at some more "hot" unicorns in Japan, which do have these kind of questions (using a dehumanizing online test in fact).

1: http://wiki.c2.com/?FizzBuzzTest


FizzBuzz test is actually pretty great interview question, but most interviewers miss one crucial ingredient: time pressure. Original idea was that any competent programmer should be able to solve it in under 1 minute (only limiting factor being your own writing/typing speed). It is a good indicator of familiarity with the basic programming constructs (loops, conditionals, print statements). It's like writing down the alphabet - you should be able to do that without thinking. I have seen many developers who fail to do that.


> I have seen many developers who fail to do that.

How do they happen to be developers then? Doesn't being unable to implement a FizzBuzz quickly imply they can't code anything that is more complex, by definition?

By the way although I do understand programming (OOP, FP, SQL) and can develop a considerably complex app from scratch in an IDE like Visual Studio with ReSharper or IntelliJ Idea that would expand code snippets, offer auto-completion and highlight errors on the fly I doubt I can code anything more complex than a "hello world" using just Notepad and expect it to compile and run without errors immediately - I use to make small typos and miss some syntactical elements all the time thanks to my ADHD (but modern IDEs solve this problem). Also, a person standing behind my shoulder watching me code and counting time would decrease my performance by an order of magnitude at best. Does this count as a failure from your point of view?


I will highlight the most glaring problem I find in your take.

> FizzBuzz test is actually pretty great interview question [...] you should be able to do that without thinking

If you are going to code for me, I'm not interested in what you can do in 1 minute, I'm interested in what you can do in 1 year. I want you to spend more than 1 minute just thinking about any problem that is remotely worth solving. And that's the underlying problem: FizzBuzz is not representative of the problems I hire you to solve, and solving it fast is not representative of the approach I want you to take for solving the problems I hire you to solve.

FizzBuzz can be a reasonable point to start a conversation about approaches and style. But that's true of almost any piece of code - I used strcmp() for a number of years.


If you are not able to write FizBizz without thinking that means that you've probably written no more than a handful of for loops and if statements in your whole programming "career". That's a very bad indicator for someone who applies for a programming job.


This obviously is true (a truism) but doesn't answer any of the questions.


It's a fitness test. Are you going to bring me value, or are you on the verge of burnout with outdated skills, trying to live off your past? "What did you do for me today?" is what matters for company to stay afloat and brutal competition is the way to achieve it. What kind of society it creates is another question.


I'm a proponent of whiteboard tests and am in charge of conducting for potential hires on my team.

However I don't see how they guard against an outdated skillset? My company employees five Infor Sys21 RPG programmers who thought the term "web service" was synonymous with SOAP until I ran a workshop.4 out of 5 worked most of their career for IBM and all have bachelor's or masters in CS, EE, or Math. With a weekend of refreshing they would definitely pass a whiteboard for me (although not necessarily with the most optimized solution). They are all over 50 btw. And work slow and steady (but efficient) with no burnout in site.

I can come up with a "good" solution for nearly every question related to algo on leetcode and have very in demand skills as well as been the top SO poster and core open source developer on a Java platform that is #1 in a Gartner magic quadrant. At 27 and am on the verge of burnout that as happened as a result of getting large Adderall / Vyvanse scripts (legally) and being on the computer for nearly 14 hours every day.


Dude...

I read this and I wonder if you will understand what I'm saying when I tell you that it is specifically BECAUSE proponents like you fuck themselves up beyond comprehension that I consider whiteboard tests to be a massive red flag when I'm interviewing at a company.

Your career should be a source of service, joy, growth and challenge for your entire life.

Don't destroy it for yourself (and others!) right at the beginning.


If you can afford to, take 6-12 months break, travel the world, meet new people, get some hobbies that are opposite of programming like model photography or playing/making music with multiple people. 14h/day behind the screen is pathological and you need to learn how to counteract it. You might get some peak off it, but it's short-lasted and won't help you in a career (if there is any long-term career in programming is another question).


How did you get Adderall legally?


Businesses with this attitude need not software specialists, but need to hire through (sub)*x-contracting. Just go to a global chicken farm like capgemini/accenture and get the required workforce. This solution has multiple downsides though.


The same kind of companies that when times comes to fire people they will just randomly choose X people from each department, regardless of their skills or sweat given to the company.

So much for the fitness test, maybe we should have one for employers as well.


Hazing is the word you are looking for.


You want too see public projects on my github profile? I'll work on my public projects during office hours, deal? There are companies which become hysteric on the mere mentioning of the words "public", "open source", and "GPL" and doing it, while already employed, will undoubtedly initiate multiple meetings with a bunch of security and legal guys staring judgmentally at you. I hope such companies are more forgiving when candidate has no public github/gitlab/bitbucket.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: