This is on the easier end of the scale to be sure, but as someone who’s interviewed candidates with similar questions, it eliminates a surprising number of people…
My theory is that modern coding bootcamps stuff their students full of buzzwords instead of letting them learn the basics
Which shouldn’t be surprising. The company I was interviewing at only feed me the top ~1% of CVs to interview… Of course half of them were stuffed with bullshit
Yeah, this is the problem. Someone who has legitimately built a basic application or website from scratch may know everything you need, but HR will filter it out.
They don’t really understand what they are looking for, so someone who says they are an AI Researcher with 8 years of experience in the language “Zendaya” and work experience at five moon rocket startups will be at the top of the pile.
Companies need to beef up their training programs so they can literally take in whoever and teach them what they need to know. Forget trying to get the top people. Just take the first 20 who can make it through an interview without drooling on the floor. You will probably get at least 9 ok developers and 1 good one.
When I interview people, I don’t care how they get an answer, I want to see that they can get to the answer, ideally the correct one, but it doesn’t matter if it’s wrong. I want them to show me their problem solving skills and that they understand their own solution.
If you can read existing code and understand complexities you are already better than 80% of these hires.
That’s like stage one where you filter out the obviously incompetent ones.
You wouldn’t believe how many candidates with years of experience can’t figure out those simple problems. Or even the super well known fizzbuzz.
It’s insane, people will claim like 2-3 years of experience with Ansible, they can’t even get a file copied. Couple years of Python, they don’t understand async, generators and other pretty basic features.
People have always been lying a bit about their experience but it’s getting way, way out of control.
Knowing specific features of a language is one thing, but not being able to even pseudocode a FizzBuzz shows they lack the basic logical problem solving ability that programmers need.
You might get something harder after that. But there’s a reason one of the most common code interview questions is FizzBuzz. There’s a shocking number of applicants that can’t do it.
We eliminate half our candidates when they can’t even answer what is static in Java. Or what is object oriented programming. Ours is less coding tests and more explaining Java concepts.
Correct. It’s mainly used for quick helper methods where you don’t need an object context like the Math class. It’s also used for class variables like out stream in the System class.
So. Many. People think it means it’s a constant variable.
To be fair, the static keyword is overused in various languages and has various other purposes.
IIRC: C has both static functions and variables. Static variables keep their value for the next time a function is called, no idea what static meant for function declaration.
Rust has static variables, which are similar to constants but can be abused as global variables.
That’s true, but these are also the same people who say they are a 9/10 in Java at career fairs. I’ve been working in Java for 10+ years and I’d still only consider myself an 8/10 maybe.
I always feel bad when I try out a new coding problem for interviews because I feel I’m going to offend candidates with such an easy problem (I interview mostly for senior positions). And I’m always shocked by how few are able to solve them. The current problem I use requires splitting a text into words as a first step. I show them the text, it’s the entire text of a book, not just some simple sentence. I don’t think I’ve had a single candidate do that correctly yet (most just split by a single space character even though they’ve seen it’s a whole book with newlines, punctuation, quotes, parentheses, etc).
That is totally a non-trivial problem, which requires a lot more conception before it can be solved. Even for English, this is not well defined: Does “don’t” consist of one or two words? Should “www.google.com” be split into three parts? Etc.
And don’t let me start with other languages:
In French, “qu’est-ce que” is one word (what).
In the German sentence “Ruf mich an.”, the “Ruf an” is one word (call) while mich is another word (me).
In Chinese, you usually don’t even have spaces between words.
If I got that feature request in a ticket, I’d send it back to conception. If you asked me this question in an interview, I’d ask if you wanted a programmer, a requirements analysis, or a linguist and why you invite people for a job interview if you don’t even know what role you are hiring for.
That is totally a non-trivial problem, which requires a lot more conception before it can be solved.
Most candidates don’t realize that. And when I say they split by single space I mean split(' '). Not even split(/\s+/).
Does “don’t” consist of one or two words? Should “www.google.com” be split into three parts? Etc.
Yes, asking those questions is definitely what you should be doing when tackling a problem like this.
If I got that feature request in a ticket, I’d send it back to conception.
If I got it, I’d work together with the product team to figure out what we want and what’s best for the users.
If you asked me this question in an interview, I’d ask if you wanted a programmer, a requirements analysis, or a linguist and why you invite people for a job interview if you don’t even know what role you are hiring for.
That would be useful too. Personality, attitude, and ability to work with others in a team are also factors we look at, so your answer would tell me to look elsewhere.
But to answer that question, I’m definitely not looking for someone who just executes on very clear requirements, that’s a junior dev. It’s what you do when faced with ambiguity that matters. I don’t need the human chatGPT.
Also, I’m not looking for someone perfectly solving that problem, because it doesn’t even have a single clear solution. It’s the process of arriving to a solution that matters. What questions do you ask? Which edge cases did you consider and which ones did you miss? How do you iterate on your solution and debug issues you run into on the way? And so on
There is no single definition, for what a word is, which is exactly my point. Some linguists even argue that “word” is inherently undefinable and refuse to use it as a category.
One common (but still ambiguous) definition is though, that a word is the smallest unit in a language that can stand on its own and conveys a meaning. By that definition, “Ruf … an” is one word, as “an” is not a word by itself. It might not be too obvious, as “an” can also be a word by itself , just not in this context.
Another example, where it’s more obvious, is “innehalten”. “Inne” is not a word, it has no meaning by itself, it cannot be used on its own, so in the sentence “halte kurz inne”, “halte inne” is one word. Another example would be “Stelle etwas dar”, where “dar” is obviously not a word by itself.
Fun fact: Verb literally means word in Latin, so saying they are the part of the same verb, but not the same word is kind of an oximoron.
I am curious how you’d deal with the ambiguity of contractions vs. ending single quotes. I guess that character between letters can be assumed to be part of the word, but not if it’s between a letter and a space, for example. If you ignore contractions, hyphenated words, and accented characters, you could just match on /[a-zA-Z]+/.
Still in university, never did an interview. Is that seriously the avarage difficulty of interview questions?
This is on the easier end of the scale to be sure, but as someone who’s interviewed candidates with similar questions, it eliminates a surprising number of people…
My theory is that modern coding bootcamps stuff their students full of buzzwords instead of letting them learn the basics
I find the experience of the applicants to be hilarious lies.
Which shouldn’t be surprising. The company I was interviewing at only feed me the top ~1% of CVs to interview… Of course half of them were stuffed with bullshit
Yeah, this is the problem. Someone who has legitimately built a basic application or website from scratch may know everything you need, but HR will filter it out.
They don’t really understand what they are looking for, so someone who says they are an AI Researcher with 8 years of experience in the language “Zendaya” and work experience at five moon rocket startups will be at the top of the pile.
Companies need to beef up their training programs so they can literally take in whoever and teach them what they need to know. Forget trying to get the top people. Just take the first 20 who can make it through an interview without drooling on the floor. You will probably get at least 9 ok developers and 1 good one.
When I interview people, I don’t care how they get an answer, I want to see that they can get to the answer, ideally the correct one, but it doesn’t matter if it’s wrong. I want them to show me their problem solving skills and that they understand their own solution.
If you can read existing code and understand complexities you are already better than 80% of these hires.
This is our approach when we ask what is system, out, and println in System.out.println(). Just talk it out. Look at capitalization.
That’s like stage one where you filter out the obviously incompetent ones.
You wouldn’t believe how many candidates with years of experience can’t figure out those simple problems. Or even the super well known fizzbuzz.
It’s insane, people will claim like 2-3 years of experience with Ansible, they can’t even get a file copied. Couple years of Python, they don’t understand async, generators and other pretty basic features.
People have always been lying a bit about their experience but it’s getting way, way out of control.
Knowing specific features of a language is one thing, but not being able to even pseudocode a FizzBuzz shows they lack the basic logical problem solving ability that programmers need.
You might get something harder after that. But there’s a reason one of the most common code interview questions is FizzBuzz. There’s a shocking number of applicants that can’t do it.
We eliminate half our candidates when they can’t even answer what is static in Java. Or what is object oriented programming. Ours is less coding tests and more explaining Java concepts.
Just to be sure (I haven’t done a lot of java and don’t exactly like it):
static in OOP means that we don’t need an Object of a class to call a static Method or access a static value, right?
Correct. It’s mainly used for quick helper methods where you don’t need an object context like the Math class. It’s also used for class variables like out stream in the System class.
So. Many. People think it means it’s a constant variable.
To be fair, the static keyword is overused in various languages and has various other purposes.
IIRC: C has both static functions and variables. Static variables keep their value for the next time a function is called, no idea what static meant for function declaration.
Rust has static variables, which are similar to constants but can be abused as global variables.
That’s true, but these are also the same people who say they are a 9/10 in Java at career fairs. I’ve been working in Java for 10+ years and I’d still only consider myself an 8/10 maybe.
I always feel bad when I try out a new coding problem for interviews because I feel I’m going to offend candidates with such an easy problem (I interview mostly for senior positions). And I’m always shocked by how few are able to solve them. The current problem I use requires splitting a text into words as a first step. I show them the text, it’s the entire text of a book, not just some simple sentence. I don’t think I’ve had a single candidate do that correctly yet (most just split by a single space character even though they’ve seen it’s a whole book with newlines, punctuation, quotes, parentheses, etc).
That is totally a non-trivial problem, which requires a lot more conception before it can be solved. Even for English, this is not well defined: Does “don’t” consist of one or two words? Should “www.google.com” be split into three parts? Etc.
And don’t let me start with other languages: In French, “qu’est-ce que” is one word (what). In the German sentence “Ruf mich an.”, the “Ruf an” is one word (call) while mich is another word (me). In Chinese, you usually don’t even have spaces between words.
If I got that feature request in a ticket, I’d send it back to conception. If you asked me this question in an interview, I’d ask if you wanted a programmer, a requirements analysis, or a linguist and why you invite people for a job interview if you don’t even know what role you are hiring for.
Most candidates don’t realize that. And when I say they split by single space I mean
split(' ')
. Not evensplit(/\s+/)
.Yes, asking those questions is definitely what you should be doing when tackling a problem like this.
If I got it, I’d work together with the product team to figure out what we want and what’s best for the users.
That would be useful too. Personality, attitude, and ability to work with others in a team are also factors we look at, so your answer would tell me to look elsewhere.
But to answer that question, I’m definitely not looking for someone who just executes on very clear requirements, that’s a junior dev. It’s what you do when faced with ambiguity that matters. I don’t need the human chatGPT.
Also, I’m not looking for someone perfectly solving that problem, because it doesn’t even have a single clear solution. It’s the process of arriving to a solution that matters. What questions do you ask? Which edge cases did you consider and which ones did you miss? How do you iterate on your solution and debug issues you run into on the way? And so on
They’re both parts of the verb anrufen but I’ve never heard someone say they’re still a single word when there’s a space (or more) inbetween
There is no single definition, for what a word is, which is exactly my point. Some linguists even argue that “word” is inherently undefinable and refuse to use it as a category.
One common (but still ambiguous) definition is though, that a word is the smallest unit in a language that can stand on its own and conveys a meaning. By that definition, “Ruf … an” is one word, as “an” is not a word by itself. It might not be too obvious, as “an” can also be a word by itself , just not in this context. Another example, where it’s more obvious, is “innehalten”. “Inne” is not a word, it has no meaning by itself, it cannot be used on its own, so in the sentence “halte kurz inne”, “halte inne” is one word. Another example would be “Stelle etwas dar”, where “dar” is obviously not a word by itself.
Fun fact: Verb literally means word in Latin, so saying they are the part of the same verb, but not the same word is kind of an oximoron.
I am curious how you’d deal with the ambiguity of contractions vs. ending single quotes. I guess that character between letters can be assumed to be part of the word, but not if it’s between a letter and a space, for example. If you ignore contractions, hyphenated words, and accented characters, you could just match on
/[a-zA-Z]+/
.That’s the thing, nobody even asks this question.
That would already put you in the top 10% of solutions I’ve seen so far on this problem.
My confidence in my job security and general programming abilities has skyrocketed after visiting this thread
Depends if you’re working for a good company or one trying to hire people in a third world country for a dollar a day.