Interview questions?
-
Hi, I'm giving an interview (2nd round) to a potential VC/C/C++ software engineer (4 years experience) later this afternoon. What sort of questions should I ask? Do you have some good sample technical questions you can share? I'd kind of like to test this guy's technical knowledge and see how he handles both easy and difficult questions... Thanks! Chris
-
Hi, I'm giving an interview (2nd round) to a potential VC/C/C++ software engineer (4 years experience) later this afternoon. What sort of questions should I ask? Do you have some good sample technical questions you can share? I'd kind of like to test this guy's technical knowledge and see how he handles both easy and difficult questions... Thanks! Chris
There's a website called "Joel On Software" (I'd give you the URL, but I'm using a dog-slow Internet connection at my client's right now). He has a "guerilla interview" article. HAVE THE PERSON RIGHT SOME CODE! Simple examples would do: Fibonacci series, primes, etc. My favorite is "read a text file and output it as a hex dump". WATCH the person write the code. See if they are familiar with the tools--editor, compiler, debugger. See if they use the mouse to cut and paste, or do they know the keyboard shortcuts. How a person uses the mouse and keyboad will tell you a lot about whether they are motivated to be as efficient as possible. (Ooh, I'm going to get flamed for that, I can just tell!). Good luck, Marc
-
Hi, I'm giving an interview (2nd round) to a potential VC/C/C++ software engineer (4 years experience) later this afternoon. What sort of questions should I ask? Do you have some good sample technical questions you can share? I'd kind of like to test this guy's technical knowledge and see how he handles both easy and difficult questions... Thanks! Chris
If you know anything about the STL, question them about some of the classes and what uses they could be put to. Roger Allen Sonork 100.10016 I think I need a new quote, I am on the prowl, so look out for a soft cute furry looking animal, which is really a Hippo in disguise. Its probably me.
-
My favorite one is: calculate the sum of all integers from 1 to n. If guy writes a loop for that, you know his math background is lacking ;) Tomasz Sowinski -- http://www.shooltz.com
To some its a six-pack, to me it's a support group
Tomasz Sowinski wrote: you know his math background is lacking Just curious but what on earth has math got to do with everyday programming?
Paul Watson
Bluegrass
Cape Town, South Africa -
My favorite one is: calculate the sum of all integers from 1 to n. If guy writes a loop for that, you know his math background is lacking ;) Tomasz Sowinski -- http://www.shooltz.com
To some its a six-pack, to me it's a support group
So how would you solve this then*, as that would be my first step.... * Shows he is lacking in a maths background? Roger Allen Sonork 100.10016 I think I need a new quote, I am on the prowl, so look out for a soft cute furry looking animal, which is really a Hippo in disguise. Its probably me.
-
Tomasz Sowinski wrote: you know his math background is lacking Just curious but what on earth has math got to do with everyday programming?
Paul Watson
Bluegrass
Cape Town, South AfricaI'm not sure what do you mean by 'everyday programming'. Surely it has nothing to do with javascript ;) Tomasz Sowinski -- http://www.shooltz.com
To some its a six-pack, to me it's a support group
-
Tomasz Sowinski wrote: you know his math background is lacking Just curious but what on earth has math got to do with everyday programming?
Paul Watson
Bluegrass
Cape Town, South AfricaThere are many people, including myself who feel that a math background goes a long way towards being a good programmer. You get analytical thinking, problem solving, and logic. Unfortunately for me I chose to forsake all that when I turned to the dark side and became a republican. (Joke for Chris L.) :) Tim Smith "Programmers are always surrounded by complexity; we can not avoid it... If our basic tool, the language in which we design and code our programs, is also complicated, the language itself becomes part of the problem rather that part of the solution." Hoare - 1980 ACM Turing Award Lecture
-
Hi, I'm giving an interview (2nd round) to a potential VC/C/C++ software engineer (4 years experience) later this afternoon. What sort of questions should I ask? Do you have some good sample technical questions you can share? I'd kind of like to test this guy's technical knowledge and see how he handles both easy and difficult questions... Thanks! Chris
second round ? does that mean he was already interviewed ? if so I would assume that all the technical questions were already asked and answered, and that he answered correctly ! If you need to ask technical questions, keep in mind that you are trying to hire someone, not trying to destroy this poor dude's ego, I prefer asking/answering questions that can show how this person can solve a problem not to code it, but talk to me about the answer, or the process that he/she will take to look for the solution. for second round interviews, I concentrate on how this person reacts to the questions, not the only the answer. if, to one of the queston, he answers right away that he doesn't know the answer but will look at it when she goes home after the interview, that can be a good thing, he knows that she doesn't know the answer, and acknowled it, and is ready to work on it to better herself. if she just babbles and make mistakes that are just stupid ( stress aside ) and doesn't "retreat" it might show something else of this person's character. Remember, your job is to hire someone, not break him! Max.
-
So how would you solve this then*, as that would be my first step.... * Shows he is lacking in a maths background? Roger Allen Sonork 100.10016 I think I need a new quote, I am on the prowl, so look out for a soft cute furry looking animal, which is really a Hippo in disguise. Its probably me.
Roger Allen wrote: So how would you solve this then total = n * (n + 1) / 2; Of course, you can use template metaprogramming as well, but IMHO it would be overkill ;) Tomasz Sowinski -- http://www.shooltz.com
To some its a six-pack, to me it's a support group
-
There are many people, including myself who feel that a math background goes a long way towards being a good programmer. You get analytical thinking, problem solving, and logic. Unfortunately for me I chose to forsake all that when I turned to the dark side and became a republican. (Joke for Chris L.) :) Tim Smith "Programmers are always surrounded by complexity; we can not avoid it... If our basic tool, the language in which we design and code our programs, is also complicated, the language itself becomes part of the problem rather that part of the solution." Hoare - 1980 ACM Turing Award Lecture
Tim Smith wrote: There are many people, including myself who feel that a math background goes a long way towards being a good programmer. You get analytical thinking, problem solving, and logic. I failed math at school, failed it utterly and miserably. Failed it so badly my future son can feel my math teachers pain. Yet I consider my problem solving to be rather good. I am logical (no really I am logical when it comes to doing programming, the rest of me is not, as you have seen :-D) and being partly a systems analyst consider my analytical thinking to be good. I don't think it has much to do with math, just clear, logical, good thinking, which are helpful attributes if you want to do well at math (I assume.) Though as someone awhile back pointed out I probably could have done well at math, I just honestly did not care about school math. It was pointless to me. Also what do you consider to be "good at math" to mean? Algebra? Geometry? Adding? Are all math skills condusive to good programming? It seems to me more like the type of person who is good at math (logical, analytical etc.) is suited for programming, not because they can do complex algebraic equations (which I can't because why is the x important? and what does the y represent? and will this make the world better?) but because of those traits you mentioned. Is math maybe your way of developing those traits?
Paul Watson
Bluegrass
Cape Town, South Africa -
I'm not sure what do you mean by 'everyday programming'. Surely it has nothing to do with javascript ;) Tomasz Sowinski -- http://www.shooltz.com
To some its a six-pack, to me it's a support group
Tomasz Sowinski wrote: Surely it has nothing to do with javascript Hardy har har. Tomasz Sowinski wrote: I'm not sure what do you mean by 'everyday programming' The kind of programming that creates apps that users use to get their job done better. I fully agree math is important if you are working for Intel or doing scientific applications, but how many of us actually do that kind of programming? Most of us are data-managers. We make systems which allow data input, data output, data processing and data transformation. Not much else. So far I have had very little need for math beyond adding. Where there are calculations to do, they are hardly complex and are understandable because instead of
x2 * 2y / cos(50)
we have((warrantPrice * totalWarrants) / strikePrice) - (sharePrice2)
or something. All in all though the calculations are (while critical) a very small part of the code you write.Paul Watson
Bluegrass
Cape Town, South Africa -
There's a website called "Joel On Software" (I'd give you the URL, but I'm using a dog-slow Internet connection at my client's right now). He has a "guerilla interview" article. HAVE THE PERSON RIGHT SOME CODE! Simple examples would do: Fibonacci series, primes, etc. My favorite is "read a text file and output it as a hex dump". WATCH the person write the code. See if they are familiar with the tools--editor, compiler, debugger. See if they use the mouse to cut and paste, or do they know the keyboard shortcuts. How a person uses the mouse and keyboad will tell you a lot about whether they are motivated to be as efficient as possible. (Ooh, I'm going to get flamed for that, I can just tell!). Good luck, Marc
i know some good programmers who use the mouse for copy/paste. i don't understand it, at all. i have the same feeling about them that i do about people who enable every toolbar an app offers, leaving them all of two inches of actual workspace. then there are the people who enable/disable breakpoints or start builds, or any number of things from the toolbar (just use the keyboard!) it infuriates me. (have i insulted everyone here yet? :) ) -c
"Kate said / The flowers of intolerance and hatred / Are blooimg kind of early this year / Someone's been watering them. -- Robyn Hitchcock, Devil's Radio
-
Hi, I'm giving an interview (2nd round) to a potential VC/C/C++ software engineer (4 years experience) later this afternoon. What sort of questions should I ask? Do you have some good sample technical questions you can share? I'd kind of like to test this guy's technical knowledge and see how he handles both easy and difficult questions... Thanks! Chris
What's the most efficient way of showing that you have a single-linked list that is broken? i.e. one link points to somewhere *earlier* in the list, instead of to the next item. B.
-
Hi, I'm giving an interview (2nd round) to a potential VC/C/C++ software engineer (4 years experience) later this afternoon. What sort of questions should I ask? Do you have some good sample technical questions you can share? I'd kind of like to test this guy's technical knowledge and see how he handles both easy and difficult questions... Thanks! Chris
Personally, I'd stick to the fundamentals - create a class that has a copy constructor, write a class that performs case-sensitive and case-insensitive string comparisons and demonstrate its use (allow the developer to use the CRT, STL, whatever), create a simple class hierarchy and demonstrate polymorphism - things like that. If you're really concerned about the interviewee's abilities, ask him/her to either write a templated class or review one, describe what it does, and how to use it. I think anything advanced and/or current is easy to study for and you're likely to get similar answers from differnet people . Also remember that an interview is pretty streesful as it is, and asking someone really advanced/detailed/technical quesitions only adds to it. Besides you should get a feel for how savy the candidate is based on your discussion/conversation that you have as part of the interview process. Erik Westermann
-
second round ? does that mean he was already interviewed ? if so I would assume that all the technical questions were already asked and answered, and that he answered correctly ! If you need to ask technical questions, keep in mind that you are trying to hire someone, not trying to destroy this poor dude's ego, I prefer asking/answering questions that can show how this person can solve a problem not to code it, but talk to me about the answer, or the process that he/she will take to look for the solution. for second round interviews, I concentrate on how this person reacts to the questions, not the only the answer. if, to one of the queston, he answers right away that he doesn't know the answer but will look at it when she goes home after the interview, that can be a good thing, he knows that she doesn't know the answer, and acknowled it, and is ready to work on it to better herself. if she just babbles and make mistakes that are just stupid ( stress aside ) and doesn't "retreat" it might show something else of this person's character. Remember, your job is to hire someone, not break him! Max.
Maximilien wrote: Remember, your job is to hire someone, not break him! Agreed. Also, if you are going to be working with the guy, the most important thing is to decide if you and your co-workers will like him. Andy Cowenhoven
-
Tomasz Sowinski wrote: Surely it has nothing to do with javascript Hardy har har. Tomasz Sowinski wrote: I'm not sure what do you mean by 'everyday programming' The kind of programming that creates apps that users use to get their job done better. I fully agree math is important if you are working for Intel or doing scientific applications, but how many of us actually do that kind of programming? Most of us are data-managers. We make systems which allow data input, data output, data processing and data transformation. Not much else. So far I have had very little need for math beyond adding. Where there are calculations to do, they are hardly complex and are understandable because instead of
x2 * 2y / cos(50)
we have((warrantPrice * totalWarrants) / strikePrice) - (sharePrice2)
or something. All in all though the calculations are (while critical) a very small part of the code you write.Paul Watson
Bluegrass
Cape Town, South AfricaPaul Watson wrote: Most of us are data-managers. We make systems which allow data input, data output, data processing and data transformation Ok, let's focus on 'data processing / transformation' part. You're using some algorithm for that. If you're programming in C++, chances are that you can apply one of the STL algorithms/containers. You may have to choose one based on their performance guarantees. So you have to understand what makes O(log n) insertion time different from O(n). Tomasz Sowinski -- http://www.shooltz.com
To some its a six-pack, to me it's a support group
-
i know some good programmers who use the mouse for copy/paste. i don't understand it, at all. i have the same feeling about them that i do about people who enable every toolbar an app offers, leaving them all of two inches of actual workspace. then there are the people who enable/disable breakpoints or start builds, or any number of things from the toolbar (just use the keyboard!) it infuriates me. (have i insulted everyone here yet? :) ) -c
"Kate said / The flowers of intolerance and hatred / Are blooimg kind of early this year / Someone's been watering them. -- Robyn Hitchcock, Devil's Radio
Chris Losinger wrote: copy/paste. i don't understand it, at all It's very easy. With copy/paste you can select a word, sentence or more and move/copy it to different location. No more retyping ;P Tomasz Sowinski -- http://www.shooltz.com
To some its a six-pack, to me it's a support group
-
Hi, I'm giving an interview (2nd round) to a potential VC/C/C++ software engineer (4 years experience) later this afternoon. What sort of questions should I ask? Do you have some good sample technical questions you can share? I'd kind of like to test this guy's technical knowledge and see how he handles both easy and difficult questions... Thanks! Chris
Chris - Make sure you do not ask the candidate to *write* any code. I know, I was surprised too when I heard it from our HR. There is some legal mumbo-jumbo to back it up. Our company, as a policy discourages this practice. The candidate has the right to sue your company if he writes the code and you do not hire him for any reason. I work in a large telecom company and we had training for interviewees. One of the first things the HR dept told us was not to ask candidates to write any sample code. Another gotcha is dont probe too much on his assignments in his current company. As far as C++ questions go, ask him what a vtable is. I also like the idea of asking him about public, protected, private and static attributes and methods. Thanks Vivek
-
second round ? does that mean he was already interviewed ? if so I would assume that all the technical questions were already asked and answered, and that he answered correctly ! If you need to ask technical questions, keep in mind that you are trying to hire someone, not trying to destroy this poor dude's ego, I prefer asking/answering questions that can show how this person can solve a problem not to code it, but talk to me about the answer, or the process that he/she will take to look for the solution. for second round interviews, I concentrate on how this person reacts to the questions, not the only the answer. if, to one of the queston, he answers right away that he doesn't know the answer but will look at it when she goes home after the interview, that can be a good thing, he knows that she doesn't know the answer, and acknowled it, and is ready to work on it to better herself. if she just babbles and make mistakes that are just stupid ( stress aside ) and doesn't "retreat" it might show something else of this person's character. Remember, your job is to hire someone, not break him! Max.
Maximilien wrote: second round ? does that mean he was already interviewed ? if so I would assume that all the technical questions were already asked and answered, and that he answered correctly ! Actually it could be quite the opposite, many times companies have a front ( I like to call them HR departments) where they have associates try to run you through the ringer with some techno-babble (that of which they don't understand) and if they like you, you progress to stage two; speaking with someone who is in the IT department :cool:. My suggestion is keep in mind that there are always many ways to do the similar task. Given Tomasz question at the top, he may initially list off a for loop where you use a simple math algorithm. Then again you probably don't know everything and at sometime he may actually shed some light as to a more efficient way to do another process than you. Don't initially strike them for good because they didn't answer a question exactly as you thought was *best*. Nick Parker
-
Roger Allen wrote: So how would you solve this then total = n * (n + 1) / 2; Of course, you can use template metaprogramming as well, but IMHO it would be overkill ;) Tomasz Sowinski -- http://www.shooltz.com
To some its a six-pack, to me it's a support group
OK, so how often in your programs have you needed the sum of a bunch of integers from 1 to n? I personally don't recall ever having to do this in any of the programs I've written in the past 10 years. And much less do I remember when (or if) I learned this algorithm in any of my math courses. So my point: I would never torture a programmer with this sort of (you're-probably-not-as-brilliant-as-me) question. Regards, Alvaro Insanity: doing the same thing over and over again and expecting different results. - Albert Einstein