Remix.run Logo
Clubber 2 days ago

We do this too, works fine. We ask open ended questions like, "What's your favorite thing you've done in your career and why?" and "What was the most challenging project in your career and why?" If you listen, you can get a lot of insight from just those two questions. If they don't give enough detail, we'll probe a little.

Our "gotcha," which doesn't apply to most languages anymore is, "What's the difference between a function and a procedure." It's a one sentence answer, but people who didn't know it would give some pretty enlightening answers.

Edit: From the replies I can see people are a little defensive about not knowing it. Not knowing it is ok because it was a question I asked people 20 years ago relevant to a language long dead in the US. I blame the defensiveness on how FUBAR the current landscape is. Giving a nuanced answer to show your depth of knowledge is actually preferred. A once sentence answer is minimal.

I'm editing this because HN says I'm posting too fast, which is super annoying, but what can I do?

aleph_minus_one 2 days ago | parent | next [-]

> We do this too, works fine. We ask open ended questions like, "What's your favorite thing you've done in your career and why?" and "What was the most challenging project in your career and why?" If you listen, you can get a lot of insight from just those two questions. If they don't give enough detail, we'll probe a little.

The problem is: there is a very negative incentive to give honest answers. If I were to answer these questions honestly, I'd bring up some very interesting theorems (related to some deep algorithmic topics) that I proved in my PhD thesis. Yes, I would have loved to stay in academia, but I switched to industry because of the bad job prospects in academia - this is not what interviewers want to hear. :-(

> "What's the difference between a function and a procedure." It's a one sentence answer

The terminology here differs quite a lot in different "programming communities". For example

> https://en.wikipedia.org/w/index.php?title=Procedure&oldid=1...

says: "Procedure (computer science), also termed a subroutine, function, or subprogram",

i.e. there is no difference. On the other hand, Pascal programmers strongly distinguish between functions and procedures; here functions return a value, but procedures don't. Programmers who are more attracted to type theory (think Haskell) would rather consider "procedures" to be functions returning a unit type. If you rather come from a database programming background, (stored) procedures vs functions are quite different concepts.

I could go on and on. What I want to point out is that this topic is much more subtle than a "one sentence answer".

michaelt 2 days ago | parent | next [-]

> I'd bring up some very interesting theorems (related to some deep algorithmic topics) that I proved in my PhD thesis. [...] I switched to industry because of the bad job prospects in academia - this is not what interviewers want to hear.

In my experience you'll be fine giving that answer assuming you're going for the kind of programming job that hires PhDs.

You remind them you have a PhD - and in something deeply algorithmic. You can successfully answer any follow-up questions from them, as you literally have a PhD in the topic they're asking about. There's no shame in entering industry because you want jobs and money - in fact, those things are precisely what the hiring manager is able to offer you.

You'd rather be in academia but it doesn't have the pay and job security? Well, the hiring manager would rather be a snowboard instructor in Aspen but doesn't for the same reason. So you've got common ground with them.

jimbokun 2 days ago | parent | prev | next [-]

> Yes, I would have loved to stay in academia, but I switched to industry because of the bad job prospects in academia - this is not what interviewers want to hear. :-(

I would love to hear that from a candidate I'm interviewing. Who can't relate to the distinction between your ideal job and the job that will actually pay you money?

Clubber 2 days ago | parent | prev [-]

>The problem is: there is a very negative incentive to give honest answers. If I were to answer these questions honestly, I'd bring up some very interesting theorems (related to some deep algorithmic topics) that I proved in my PhD thesis.

This is unfortunate that you would get that response. FWIW, I would be interested in hearing all this in an interview and I would look at it favorably.

>What I want to point out is that this topic is much more subtle than a "one sentence answer".

Yes, you would definitely get bonus points for nuance. The one sentence answer was minimal. What it filters out are people who don't know anything about Delphi but applying for the job with highly embellished resumes hoping to get lucky. This was for software used in hospitals, so bugs or errant code could have pretty drastic consequences.

bdavisx 2 days ago | parent | prev | next [-]

Here's an interesting thought on your "gotcha" - I'm 57 years old, been programming as a career for over 30 years, a lot of languages and I have no idea what the difference is.

michaelt 2 days ago | parent | next [-]

If I'm applying for a Java position and I claim to have Java experience on my resume, it's perfectly valid for them to ask me the difference between an int, an Integer, and a BigInteger.

But it's certainly not a universal question applicable to all programming languages.

Likewise, Clubber says in their post that their 'gotcha' question doesn't apply to most languages.

dennis_jeeves2 2 days ago | parent | prev | next [-]

I have no idea either. I can easily look it up though. You can often tell an inexperienced interviewer from the extremely domain specific question they ask which _they_ are familiar with.

ctkhn 2 days ago | parent | next [-]

There are some absolutely ridiculous qs I've been asked like this and they've all had no followup question to illuminate why it would have been relevant 1. what version of java do you use? we used 8 at the time 2. what is the engine and version underneath your sql db?this was not for a dba role, just standard backend engineer 3. why did you use python instead of r for x project? this was about a gui automation script

Clubber 2 days ago | parent | prev [-]

>You can often tell an inexperienced interviewer from the extremely domain specific question they ask which _they_ are familiar with.

Lol a bit touchy aren't we?

Like I said, it's not really relevant in today's languages. It was for a Delphi/Pascal position. If you do any type of database code (like T-SQL), you would also know it. If your experience is mainly in C type languages, everything is a function so it doesn't apply.

If you hired a guy for a Delphi position who didn't know the difference between a function and a procedure, you hired the wrong guy.

  procedure Hello;
  begin
    ShowMessage ('Hello world!');
  end;

  function Double (Value: Integer) : Integer;
  begin
    Double := Value * 2;
  end;
Function or procedure is defined in every subroutine. It's a very basic question for Delphi, like what's the difference between an integer and a string.
alexjplant 2 days ago | parent | next [-]

> Our "gotcha," which doesn't apply to most languages anymore is, "What's the difference between a function and a procedure." It's a one sentence answer, but people who didn't know it would give some pretty enlightening answers.

If you're asking this question (by virtue of the present-tense "is") in the year 2025 even though by your own admission

> it's not really relevant in today's languages.

then you aren't giving candidates a good impression. Even though I would have nailed this question I would have serious reservations about any job that would ask it in an interview because it means that the person interviewing me has more concern for legacy minutiae than broad technical knowledge or problem-solving skills.

Clubber 2 days ago | parent [-]

Ya sorry, this was way back in the late 90s-early 00s. It's still only relevant in SQL dev.

dennis_jeeves2 2 days ago | parent | prev | next [-]

>Lol a bit touchy aren't we?

No. I just looked up other responses to your post. It's obvious you got exposed as being inexperienced (or an idiot), while posing to know the definitive with your "gotcha". Being inexperienced (or ignorant) is not a problem, but being cocky is.

Clubber 2 days ago | parent [-]

I think you're projecting. You aren't posting this using your real name are you?!

Here's something to consider, Dennis. Instead of using any type of reasoning that maybe I'm interviewing for a language you aren't familiar with where functions and procedure differences matter, you decided to just go off the handle and call me inexperienced and/or an idiot. This is what we call in the hiring business a "huge red flag." I recommend maybe use some of that big brain you have and apply some deductive reasoning instead of just calling people names.

dennis_jeeves2 a day ago | parent [-]

Look up my other responses - I decided to call you names _later_ . Other people also pointed that out to you. I'm sure you would thick twice before asking your 'gotcha' again (the question is fine in general but not as a gotcha).

Clubber a day ago | parent [-]

>>You can often tell an inexperienced interviewer from the extremely domain specific question they ask which _they_ are familiar with.

>Lol a bit touchy aren't we?

You lost your composure and decided to start calling names after this. I haven't asked it since the late 90s, early 2000s. It was a for a Delphi position. It's a bonehead easy question any Delphi developer who got to chapter 2 of any Delphi book would have understood. It's still an applicable question for a SQL developer and it's just as easy. I even showed you sample code. I don't see why you aren't getting it.

dennis_jeeves2 2 days ago | parent | prev [-]

I think you are missing my point.

Words like functions/procedures tend to have different connotations across languages and once one crosses one's 15th language, and each having some 20 different keywords, it become difficult to remember what the exact connotation of a word is, in a specific language/framework. This is the most likely situation of the guy whose post I responded to.

The exception to the rule is, if you have been working quite a bit _recently_ on a specific language. You are presumably talking about this situation.

ttyprintk 2 days ago | parent | prev | next [-]

It’s ok to say that it’s never professionally mattered. No one has ever been paid to know that. “Are side effects a bad pattern?” Lotsa people have needed to know that on day one.

2 days ago | parent | prev | next [-]
[deleted]
Clubber 2 days ago | parent | prev [-]

A function returns a value.

https://stackoverflow.com/questions/721090/what-is-the-diffe...

aleph_minus_one 2 days ago | parent [-]

> A function returns a value

... in Pascal/Delphi.

Clubber 2 days ago | parent [-]

Yup, it was for a Delphi job in 1998.

vips7L a day ago | parent [-]

Isn't this something the compiler is going to enforce anyway? Why does it matter? If that's the only difference it's kind of inconsequential isn't it?

Clubber a day ago | parent [-]

It's a question to filter out people who don't know a lick of Delphi for a position where the person was coding Delphi. It's like level 2 after the hello world chapter. It's easier than asking a database developer the difference between a query and a view. It's a bonehead simple question that 70% of applicants couldn't answer.

You would be surprised how many bad applicants interviewers get. It's only gotten worse over the last 20 years.

bluefirebrand 2 days ago | parent | prev [-]

> Our "gotcha," which doesn't apply to most languages anymore is, "What's the difference between a function and a procedure."

My answer would be along the lines of "It's 2025, no one has talked about procedures for 20+ years"