Immediate PHP programming interview prep.
February 4, 2013 11:19 PM
I have a programming job interview TOMORROW. Can you help a fellow out?
I have a remote video chat interview for a WP programming position (mostly PHP with some JavaScript/jQuery) coming up within 24 hours. I'm nervous and would appreciate some guidance. The company has a few other products, but the WP side is a single plugin, and that is what I would be working on. I believe the entire company consists of under 10 people. I believe I would be a remote worker (I am in the US; they are located in another country).
What sort of questions should I expect? What language specific information should I have at my fingertips? Generally speaking, what sort of stuff beyond FizzBuzz might I be expected to demonstrate in this scenario? Sample questions, particularly of esoteric or advanced PHP and WordPress features/problems/etc. that you might want someone joining your team to be aware of, would be very welcome.
What sort of salary numbers are "good" for this sort of position, and what would be a lowball offer? I am concerned about this since they are located in a country with a lower cost of living, and that may be reflected in their offer (to put the cart well ahead of the horse). If they ask for me to put a number out there, and I can't avoid doing so, what should I say?
Finally, I'm nervous because this will be a big step in my life. I am capable and think I can overcome whatever obstacles might come up. I'm so psyched about getting into a full-time programming position with more experienced programmers. But I do have gaps that might need to be navigated/addressed in the interview, and I'm hella nervous about them:
1. Limited experience working with a team of programmers. I've always done solo freelance work. I might be cleaning up after someone else, but I'm not actually coordinating my work with another programmer.
2. I don't have a comp sci degree. I majored in the humanities. I think that's an asset in some ways, but to be perfectly clear, I will likely flounder at least a bit if they require me to give an accurate big O analysis of anything but a very simple algorithm, or if I'm expected to reproduce insertion sort in PHP or pseudo code without looking up the steps, or... whatever else along those lines.
3. I'm worried that my freelance work, which has never had to scale beyond a single server, is limited enough that they'll ask me some question for which I won't have a working frame of reference. Small business owners, arts groups, and non-profits haven't given me a certain scope of problem to tackle (which admittedly may or may not be relevant here, since the product is a plugin rather than a service).
4. This will be my first programming interview. I work in tech, and I freelance with web design, but I don't believe any of my past interviews will be very relevant.
On the other hand:
1. I'm psyched. I want this job. I'm eager, and I will put in the necessary effort to fill in any gaps.
2. Nervousness aside, if they give me a feature to implement, I can implement it. If they assign me a bug to squash, I can squash it. (Dunning-Kruger Effect? I hope not!) And what more do you want besides an eager, capable candidate?
No really, tell me. Please.
I have a remote video chat interview for a WP programming position (mostly PHP with some JavaScript/jQuery) coming up within 24 hours. I'm nervous and would appreciate some guidance. The company has a few other products, but the WP side is a single plugin, and that is what I would be working on. I believe the entire company consists of under 10 people. I believe I would be a remote worker (I am in the US; they are located in another country).
What sort of questions should I expect? What language specific information should I have at my fingertips? Generally speaking, what sort of stuff beyond FizzBuzz might I be expected to demonstrate in this scenario? Sample questions, particularly of esoteric or advanced PHP and WordPress features/problems/etc. that you might want someone joining your team to be aware of, would be very welcome.
What sort of salary numbers are "good" for this sort of position, and what would be a lowball offer? I am concerned about this since they are located in a country with a lower cost of living, and that may be reflected in their offer (to put the cart well ahead of the horse). If they ask for me to put a number out there, and I can't avoid doing so, what should I say?
Finally, I'm nervous because this will be a big step in my life. I am capable and think I can overcome whatever obstacles might come up. I'm so psyched about getting into a full-time programming position with more experienced programmers. But I do have gaps that might need to be navigated/addressed in the interview, and I'm hella nervous about them:
1. Limited experience working with a team of programmers. I've always done solo freelance work. I might be cleaning up after someone else, but I'm not actually coordinating my work with another programmer.
2. I don't have a comp sci degree. I majored in the humanities. I think that's an asset in some ways, but to be perfectly clear, I will likely flounder at least a bit if they require me to give an accurate big O analysis of anything but a very simple algorithm, or if I'm expected to reproduce insertion sort in PHP or pseudo code without looking up the steps, or... whatever else along those lines.
3. I'm worried that my freelance work, which has never had to scale beyond a single server, is limited enough that they'll ask me some question for which I won't have a working frame of reference. Small business owners, arts groups, and non-profits haven't given me a certain scope of problem to tackle (which admittedly may or may not be relevant here, since the product is a plugin rather than a service).
4. This will be my first programming interview. I work in tech, and I freelance with web design, but I don't believe any of my past interviews will be very relevant.
On the other hand:
1. I'm psyched. I want this job. I'm eager, and I will put in the necessary effort to fill in any gaps.
2. Nervousness aside, if they give me a feature to implement, I can implement it. If they assign me a bug to squash, I can squash it. (Dunning-Kruger Effect? I hope not!) And what more do you want besides an eager, capable candidate?
No really, tell me. Please.
Interviews are such a subjective thing. When we're hiring, I probably do 2-4 "php" interviews a week, for my team in a big company you've probably heard of - ie a place significantly different than a 10 person shop. And to be honest, I don't ask a lot about PHP. I'm more about solid development concepts, ideas, what-if scenarios, compare x to y technologies, and more.
For example - you say if give you a feature to implement, you can implement it. Great. One step down. But can you implement it well? How do you structure your code? If it's one giant blob mess with business logic mashed in with the template code, well... you wont get too far with me. What about extensibility and maintainability? Will someone coming in 3 months from now be able to improve on your feature, or will they just give up and re-write the thing? How will the feature stand up on a high traffic site? Etc, etc.
Now, I will freely admit I'm not the best interviewer, and it's been a while since I've been on the other side of the table, so maybe this is not how others do it, I dunno :) I do work with people who like to ask the obscure stuff (build me a linked list in PHP of O(n)!)" and I hate them for it (j/k... they're nice guys! really!!) For me, however, I think at the end of the day I have a really good understanding of who I want and who I'll pass on doing it my way. I hate the tricky questions; they're not something you do in the day to day of a PHP dev, why should you do it in a interview? I prefer to start with a basic problem and just walk though it, asking you how you'd build it, and I'll expand on it as we go, getting you to explain how you'd add specific features, throw in a constraint, etc. I want to know how you think. If it's in person there may be a white board, but over the phone, not - its more a conversation than a programming task.
On, and on preview - I ask the POST vs GET thing too. If they get that, then I ask them the difference between POST and PUT :) I do expect a solid understanding of how HTTP works, what REST means to them, some basic design pattern-y stuff, are they familiar with unit testing tools, what version control systems do they prefer and why, etc. Are you familiar with some of the "new" features of PHP (I'm not talking OO here - more like namespaces, closures, etc.). Why are these beneficial?
And if you don't know something - say so. The best answers are the ones that start with "I don't know the exact answer to your question, but I'd guess it has to do with X,Y,Z... and then they continue to explain pretty much the answer to what I was looking for, without realizing they know the answer until they were done. Alternatively, if they get it wrong, it gives us a place to have a good discussion about the pros/cons of what they're talking about, or maybe I'll even tell you the answer and we can talk about that. I respect that sort of "I don't know, but..." answer so much more than someone who tries to bullshit me and make something up. It works if you're right, but if you're wrong, well, it doesn't go over so well.
Ok, I've written enough. Note this is only how to get through an interview with me - OIMV (other interviews may vary)!
Good luck! :D
posted by cgg at 8:00 AM on February 5, 2013
For example - you say if give you a feature to implement, you can implement it. Great. One step down. But can you implement it well? How do you structure your code? If it's one giant blob mess with business logic mashed in with the template code, well... you wont get too far with me. What about extensibility and maintainability? Will someone coming in 3 months from now be able to improve on your feature, or will they just give up and re-write the thing? How will the feature stand up on a high traffic site? Etc, etc.
Now, I will freely admit I'm not the best interviewer, and it's been a while since I've been on the other side of the table, so maybe this is not how others do it, I dunno :) I do work with people who like to ask the obscure stuff (build me a linked list in PHP of O(n)!)" and I hate them for it (j/k... they're nice guys! really!!) For me, however, I think at the end of the day I have a really good understanding of who I want and who I'll pass on doing it my way. I hate the tricky questions; they're not something you do in the day to day of a PHP dev, why should you do it in a interview? I prefer to start with a basic problem and just walk though it, asking you how you'd build it, and I'll expand on it as we go, getting you to explain how you'd add specific features, throw in a constraint, etc. I want to know how you think. If it's in person there may be a white board, but over the phone, not - its more a conversation than a programming task.
On, and on preview - I ask the POST vs GET thing too. If they get that, then I ask them the difference between POST and PUT :) I do expect a solid understanding of how HTTP works, what REST means to them, some basic design pattern-y stuff, are they familiar with unit testing tools, what version control systems do they prefer and why, etc. Are you familiar with some of the "new" features of PHP (I'm not talking OO here - more like namespaces, closures, etc.). Why are these beneficial?
And if you don't know something - say so. The best answers are the ones that start with "I don't know the exact answer to your question, but I'd guess it has to do with X,Y,Z... and then they continue to explain pretty much the answer to what I was looking for, without realizing they know the answer until they were done. Alternatively, if they get it wrong, it gives us a place to have a good discussion about the pros/cons of what they're talking about, or maybe I'll even tell you the answer and we can talk about that. I respect that sort of "I don't know, but..." answer so much more than someone who tries to bullshit me and make something up. It works if you're right, but if you're wrong, well, it doesn't go over so well.
Ok, I've written enough. Note this is only how to get through an interview with me - OIMV (other interviews may vary)!
Good luck! :D
posted by cgg at 8:00 AM on February 5, 2013
This links to a few offsite and then another thread on StackOverflow of some questions. http://stackoverflow.com/questions/2074924/php-competency-test
Whenever I've been quizzed they almost always have a FizzBuzz question.
http://codepad.org/fizzbuzz
http://c2.com/cgi/wiki?FizzBuzzTest
http://www.kevinfrancis.net/journal/2007/04/fizzbuzz-in-php/
posted by wcfields at 11:24 PM on February 5, 2013
Whenever I've been quizzed they almost always have a FizzBuzz question.
http://codepad.org/fizzbuzz
http://c2.com/cgi/wiki?FizzBuzzTest
http://www.kevinfrancis.net/journal/2007/04/fizzbuzz-in-php/
posted by wcfields at 11:24 PM on February 5, 2013
« Older Asked Out A Friend. Rejected. Now What? | Help with simple plumbing question - how tight... Newer »
This thread is closed to new comments.
What to expect really depends on the purpose of the phone interview. If it's a technical screen interview (all kinds of people with no apparent qualifications or ability apply for programming jobs) then it will mostly be questions designed to uncover your familiarity or lack of such with PHP. You don't have to dig very deep to do the basic weed out; I remember we asked a guy applying for a web developer position to discuss POST and GET. Response? "Uh, I'm gonna have to pass on that". Thanks for your time! Unfortunately some organizations think that obscure language lawyer puzzles are appropriate here. If they ask you that kind of question, and you don't know the answer, the only way to salvage the situation is to impress them with some kind of coherent problem solving thought process, I guess.
If it's later in the game, then it will be more designed to see if you are a good fit for the organization. More touchy-feely stuff, describe a time you overcame a difficulty at work, etc. If you could be any kind of power tool, what would it be? If someone asks you idiotic questions like that, remember to not laugh and to pretend that you think they are an interesting and revealing exercise.
Video chat is a little odd if you are not used to it, especially in a pressure situation. I like to look right at the camera, on the theory that this will seem like eye contact. Answer questions fully but bring your responses to a clear end; do not ramble on. It's okay to be nervous, everyone is: if you missspeak or need to correct yourself, just do so, without making too big a fuss of it.
posted by thelonius at 2:43 AM on February 5, 2013