So, hiring someone - how can i test them

MrGuvernment

Fully [H]
Joined
Aug 3, 2004
Messages
21,817
Our company is hiring someone to fill a PHP/MySQl position.

my knowledge of PHP is not much but i can read scripts and tell you what they do, MySQL i am better with.

We have interviewed several people who claimed to know PHP and/or MySQL, once in the office, i just showed them part of a script and asked what it did... which to me, reading any mysql query - gives you the answer more or less!

These people just sat there with a dumb look on their face, clearly had no idea what the script did.. (something easy like select * from brain where brain is null type crap)

What are some things i can ask, show someone to see if they do know at least the basics of MySQL and PHP, our entire back end is based on these 2 and we need someone to come in, fix items not working and such (our last coder just left for the U.S)

....
 
Are you requiring them to provide samples of their work? A portfolio of sorts? Surely if they know the languages, they should have personal projects or something they've done for someone else (hopefully published to the web).

You could devise a test. My company actually has a pre-employment test that touches on various areas. Written communication, math, problem solving, etc. Not hard, of course, but your company can do anything they want for the hiring process.

If you really want to weed people out, you'll want to avoid T/F and multiple choice. Require that their answers be open-ended. Ask them to construct a simple query from scratch.

Hell, you could incorporate parts of your backend that you think have issues into the test.
 
GJSNeptune is spot on.

An open ended test is usually the best. Especially making them write simple queries. Give them an example database, and then tell them to write (hand written) a query to would perform XYZ Function. What you want to see is that they know the language and can understand the structure of the code. Not so much if it works or not (but thats always a plus!) At least this is how I remember being tested in school in our SQL Class. It would have to work, but if some things didnt quite execute correctly it didn't matter as long as we understood the concept.
 
Have you bounced that interview code off some people who know PHP?

It could be that your code is simply not easy to follow.

Another possibility is that there are so many different ways to do the same thing in PHP that maybe your approach is lost on them. One good example is the difference between those who code in Procedural style vs. Object Oriented style. If you're used to doing stuff one way, then viewing it another way can be confusing, add in the pressure of the interview itself and that may explain some of the "dumb looks" you've been getting.

I would suggest having a PC setup with MySQL, PHP and a text editor installed, then giving them a task to perform within a certain time frame. Make sure they have Internet access, since even experienced developers need to look up function references sometimes. For example, ask them to create a database that stores phone numbers and a front-end that allows a user to search and sort the list by last name. This exercise is fairly simple and touches on all the important PHP skills you'd probably be looking for. Bonus points for clean, commented code and valid HTML..
 
The code we showed was very basic, at least i think, and i know jack about PHP, but i also have a good learning curve and can following backwards and figure it out, i guess i think if i can do it, why cant they..lol

good info about the test, will try to get that set up.

Maw, thanks for that info, i had thought that PHP was PHP was PHP, there was right and wrong way to do things...but now i know!

here is one part of code i showed one guy - to me it makes sense, but i also know the databases off by heart on the MySQL side.. (some info removed)

Code:
$dbase=$database->Database;
		if (strlen($dbase)>18)
			{
				$realdbase=$dbase;
				$allhands=array();
				$archands=array();
				
				mysql_select_db("$realdbase",$dblink);
				errup("Retrieving info for $realdbase...",$dblink);
				
				$dbhands=mysql_query("select handid from hands",$dblink);
				while($hands=mysql_fetch_row($dbhands))
				{
					array_push($archands,$hands[0]);
				}

				$dbmmhand=mysql_query("select max(handid), min(handid) from hands",$dblink);
				$mmhand=mysql_fetch_row($dbmmhand);
				errup("Done",$dblink);
				errup("Retrieving info for in hands betwee $mmhand[1] and $mmhand[0].",$dblink);
				mysql_select_db("hands",$dblink);
				$dbhands=mysql_query("select handid from hands where handid>=$mmhand[1] and handid<=$mmhand[0]",$dblink);
				while($hands=mysql_fetch_row($dbhands))



the phone number one sounds good too... for if they can do that then they can connect php with mysql then....

I think most people who have applied, they know PHP - but they dont really know MySQL beyond connecting to it and that is it, or setting up a VBforum or something... they dont really work with the back end, but because they have "connected" to MySQL, they say they know it... would be the same as me saying i know Ubuntu, just cause i installed it once :)

Due to the nature of our database and info, people will need to be pulling queries and reports which will involve complex math stuff, things that PHP is needed for (from what i have been told) that MySQL cant do specifically on it's own...

The other issue is out current backend was coded by someone over 6 years who learned from scratch teaching himself, so we also have a mix of coding from php 4+ and such...


I would be more then happy with someone who knows the basics of MySQL to start - i can help people as long as they can suck in the knowledge and not ask the same thing over and over and over, and they at least tried before asking me.. i hate showing someone something that was obvious if they had of looked.. :0

Maybe i am too dam picky! , well no, i am just tired of doing someone else's job show claims they can do it...
 
any person reasonably knowledgeable with php/mysql should be able to figure that code snippet out. while it's coding style might not be the same as an theirs, it certainly isn't anything to weird.

if you were using cakephp, for example, i wouldn't expect any random person who hasn't used it to figure out what's going on within a reasonable amount of time.
 
There are testing websites like brainbench.com that are sometimes good to use on the spot during an interview.
 
that was my thoughts tim_m :)

will check that site Archaea.

got a busy week ahead of me, so hopefully will be able to get someone in for an interview..

Anyone here want to move to costa rica and work for cheap :) :)
 
I agree with MrGuvernment , so many way to write php to sql. Not everyone can read the php/sql if they never seen or was taught to work it that way.

Best way is have them write a little script and check to see if it works and is optimized under conditions. as well as see if they can read the scipts you have . But not judge by that alone.
 
Asking for a sample of work isn't exactly conclusive because you don't know if they did the work themselves or not. And you don't know how long it took, or how traumatic it was. Asking questions from interviewing websites can yield false positives because the candidate might have boned-up on well-known questions to study, or might have had the question in a different interview.

I think one of the important considerations is to decide who you want to hire, and why. Are you looking for a junior guy? A seasoned guy? A very senior guy? What's this guy's role in your company? An idea generator? A tool to solve and own a specific fact of your problem space? Or just a warm body who can fog a mirror and mindlessly crank out code? The questions you ask will be influenced by what kind of seniority and position you're looking for.

You also don't mention what kind of process you use. Are you doing just one interview? How long? Or a set of interviews, where the team gives feedback about the candidate and you decide as a group?

Asking one simple question is also a rather iffy approach: I like to ask increasingly tough questions. This helps me scope the level of the candidate, and see where their limits are. Are these questions just for the preliminary phone screen, or for the actual interview?

Neglecting these important issues and strictly going from your question, I'd ask simple language-feature questions of the candidate to see where they're at.

PHP has =, ==, and === operators. What's the difference? What are they called? When did you use them in the past, and why?

I'm not sure what you want to know about MySQL: are you asking if they're good administrators, database designers, or database developers? If they're an administrator, I'd ask them about backing up an online, production database that's under heavy load. If they're a designer, I'd ask them to build a simple data model for a payroll system. If they're a developer, I'd ask them increasingly complicated questions about writing queries and see where they break.
 
nice response mike, just heading out to work but once there i will respond to your points in detail :)
 
well if they can write it out from scratch then i think thats not to bad if its a complex script.
 
any person reasonably knowledgeable with php/mysql should be able to figure that code snippet out. while it's coding style might not be the same as an theirs, it certainly isn't anything to weird.
They should? I can't make any sense of it whatsoever.

Why does the database name need to be more than eighteen characters long? Why is it copied to two different temporary vairables?

The code gets all the handids from the hands table and builds an un-ordered array of them. This causes MySQL to scan the whole table and return every single row in it.

The next query gets the maximum and minimum handids from the same table. Why does it do that, when it already has them? This query will scan the whole table again, looking for information the PHP script already has. Why doesn't it order the first query, or scan the aray it built (or is building) itself, to avoid the extra load on the database server?

What's going to happen to this script when there's no rows in the table?

Then, we go to a different database named "hands" and get all the hands within the min-max range. The pasted codes doesn't show what we do.

I'm not trying to nit-pick; I'm trying to role-play this approach. I can't guess why this code does what it does. I'd be tempted to say that I really don't know what it does, even though I can accurately describe it's operation and even point out potential flaws and optimizations.

Is that what you're looking for in a candidate? Why is that important to you?
 
@mikeblas
uh, you just made sense of it as far as seeing what it does.

i didn't say that i thought the code sample was efficient or elegant. the op didn't say he wanted the candidate to understand the specific reason the code was written that way, or why it does what it just, just some idea of what it does. if you look at that and have "a dumb look on their face".

a separate issue would be if the op wanted the candidate to criticize hid code for efficiency.

i see your point but i was going by what the op said, not by what he might have meant ;)
 
i didn't say that i thought the code sample was efficient or elegant.
Maybe you didn't finish reading my post. It's easy to find people who can run off and write code in all directions. Such a guy would be able to verbalize what that code does--he can read it. Far more valuable are people who know why code was written, or what it does. Even more valuable still are employees who can decide which code to write, and when.
 
"our last coder just left for the U.S"

God that pisses me off. I graduated college with a degree in math, but I'm strongest in computer programming. I can't find any job programming though. All companies want are foreigners, no matter how dumb they are. It got to the point were I was advertising myself for 18,000K a year for the first 2 years. No takers. And don't get me started on the whole chicken and egg paradox about experience in this industry.

Luckily because I did extremely well on the Putnam Exam, GRE, and GRE Math Subject test I can get paid 18,000K a year just to be a grad student in math. I'm worth more as a grad student than I am as a programmer, which blows my mind. Every time I looked at Ph.D student code at my university when I was an undergrad, I could always optimize it to run in a small fraction of the time. Not just by making it multi-threaded and using good cache aware programming technique, but by using computer science: things like cleaver data structures for example.

And all the graduate students in computer science at my school were Indian (except for two). And these Indians were not good, but they were getting jobs!!! I don't understand companies' fascination with them. Maybe some of you employers here can explain this fascination to me.

Also, while in graduate school, what should I do in case I want to get a job programming when I get out? Should I make arbitrary programs and websites for no reason other to prove to employers that I know Oracle and PL/SQL and Java Script? And what can I do to avoid working with foreigners? Get a DoD clearance? I will work for 30K a year IF I get to work with smart people. That is the most important thing to me.
 
"our last coder just left for the U.S"

God that pisses me off. I graduated college with a degree in math, but I'm strongest in computer programming. I can't find any job programming though. All companies want are foreigners, no matter how dumb they are. It got to the point were I was advertising myself for 18,000K a year for the first 2 years. No takers. And don't get me started on the whole chicken and egg paradox about experience in this industry.

Luckily because I did extremely well on the Putnam Exam, GRE, and GRE Math Subject test I can get paid 18,000K a year just to be a grad student in math. I'm worth more as a grad student than I am as a programmer, which blows my mind. Every time I looked at Ph.D student code at my university when I was an undergrad, I could always optimize it to run in a small fraction of the time. Not just by making it multi-threaded and using good cache aware programming technique, but by using computer science: things like cleaver data structures for example.

And all the graduate students in computer science at my school were Indian (except for two). And these Indians were not good, but they were getting jobs!!! I don't understand companies' fascination with them. Maybe some of you employers here can explain this fascination to me.

Also, while in graduate school, what should I do in case I want to get a job programming when I get out? Should I make arbitrary programs and websites for no reason other to prove to employers that I know Oracle and PL/SQL and Java Script? And what can I do to avoid working with foreigners? Get a DoD clearance? I will work for 30K a year IF I get to work with smart people. That is the most important thing to me.

I'm guessing from your post that your attitude is what's keeping you from getting any offers. You made unfounded, stereotypical generalizations about ALL foreigners, then went on to brag about how much better you would be at coding than everyone else, and topped it off by implying that you would refuse to work with foreigners. That kind of outlook isn't going to get you far in any industry, much less this one; it gives the impression of a bitter, miserable person who would not fit into a productive work team.
 
I can't imagine hiring someone so openly angry, and hiring somebody that's prejudiced would seem like a mistake in any legal climate. I've often wondered how to find these things in interviews, but it seems like an easy way is to let the client do it to themselves--given enough time or rope, they'll just hang themselves.
 
"our last coder just left for the U.S"

God that pisses me off. I graduated college with a degree in math, but I'm strongest in computer programming. I can't find any job programming though. All companies want are foreigners, no matter how dumb they are. It got to the point were I was advertising myself for 18,000K a year for the first 2 years. No takers. And don't get me started on the whole chicken and egg paradox about experience in this industry.

Luckily because I did extremely well on the Putnam Exam, GRE, and GRE Math Subject test I can get paid 18,000K a year just to be a grad student in math. I'm worth more as a grad student than I am as a programmer, which blows my mind. Every time I looked at Ph.D student code at my university when I was an undergrad, I could always optimize it to run in a small fraction of the time. Not just by making it multi-threaded and using good cache aware programming technique, but by using computer science: things like cleaver data structures for example.

And all the graduate students in computer science at my school were Indian (except for two). And these Indians were not good, but they were getting jobs!!! I don't understand companies' fascination with them. Maybe some of you employers here can explain this fascination to me.

Also, while in graduate school, what should I do in case I want to get a job programming when I get out? Should I make arbitrary programs and websites for no reason other to prove to employers that I know Oracle and PL/SQL and Java Script? And what can I do to avoid working with foreigners? Get a DoD clearance? I will work for 30K a year IF I get to work with smart people. That is the most important thing to me.

you couldn't get a job because you are a hardass with a superiority complex. i seriously hope that until this is rectified that you never do get one.
 
Maybe you didn't finish reading my post. It's easy to find people who can run off and write code in all directions. Such a guy would be able to verbalize what that code does--he can read it. Far more valuable are people who know why code was written, or what it does. Even more valuable still are employees who can decide which code to write, and when.

mike your hired..LOL this IS part of the issue with the person who wrote this entire back end, over a 6 year period, always adding adding adding, never going back and updating or fixing., he does things that "make you go hmmmmmmmmmm" WTF!!!! He rarely, almost never used index's or anything, so crap is slow and could be SO much faster! If the person gave the response you did, i would hire them, because it at least shows me they can go through the code, question it,. but still in some weird 2nd dimension understand it for all it's included complete lack of organization :) For the last 2 years i have done what i can do on the hardware side to make things faster, but now the code needs to be taken care of.

"our last coder just left for the U.S"
.

Well just an FYI - the girl we had by no means was a high end programmer, she was learning, she had worked for us before as support, but left on maternity leave, she was in school for .net and was studying PHP, she could do MySQL queries for many basic things, but beyond that she could not do what we really need her to.

The reason she went to the U.S was because her American B/F (typical - Gringo comes to Costa Rica, dates local girl - gets her pregnant and so on) he went back to the U.S to study anesthesiology. SHe by now means would be taking anyone jobs in the U.S.
 
Asking for a sample of work isn't exactly conclusive because you don't know if they did the work themselves or not. And you don't know how long it took, or how traumatic it was. Asking questions from interviewing websites can yield false positives because the candidate might have boned-up on well-known questions to study, or might have had the question in a different interview.

Good point, they can just hit up google and do it...

I think one of the important considerations is to decide who you want to hire, and why. Are you looking for a junior guy? A seasoned guy? A very senior guy? What's this guy's role in your company? An idea generator? A tool to solve and own a specific fact of your problem space? Or just a warm body who can fog a mirror and mindlessly crank out code? The questions you ask will be influenced by what kind of seniority and position you're looking for.

I am aiming more for a seasoned person, someone who is not fresh out of school with no real experience but what they read in a book HOWEVER, there are people fresh out of school who can think outside the box and could be great as well......

The person role would be to
  • Create new queries / pages / reports for the CEO / Marketing
  • Maintain current / past reports and scripts
  • Fix / update our current system so it works - to which we would then like to start a new one from scratch.


You also don't mention what kind of process you use. Are you doing just one interview? How long? Or a set of interviews, where the team gives feedback about the candidate and you decide as a group?

Our CEO micro manages, so he always seemed to find someone and interview them, and pretty much after he decided if he was going to hire them or not, THEN let me meet them.. then i told him i wont work with people if you do that and i want to be part of the process (i have worked for the company 7 years now, as long as him), so about 2 years ago i became someone with some say. For this position however the CEO is not concerned and wants me and another worker to find someone, the other worker tried, interviewed 3 people and they were all a waste of time, then did nothing for 3 weeks in terms of trying to find someone, so now i am taking over on this , to hire someone. My thoughts we first for me to interview the person, see how they are, what they know, then have a 2nd interview to go into some more detail, perhaps do the test stage, some trial work.. also to meet the CEO and my other worker, see their thoughts... In the end i do have the final say now on who we hire.

Asking one simple question is also a rather iffy approach: I like to ask increasingly tough questions. This helps me scope the level of the candidate, and see where their limits are. Are these questions just for the preliminary phone screen, or for the actual interview?

Neglecting these important issues and strictly going from your question, I'd ask simple language-feature questions of the candidate to see where they're at.

PHP has =, ==, and === operators. What's the difference? What are they called? When did you use them in the past, and why?

Another good though, i certainly do not want to scare anyone off right away, to me the person's attitude and persona matter allot, i don't care if your a genius and can fix everything in a day, if i don't like you, i wont hire you cause i wont be able to work with you.. but it is hard for me not to like someone, so they have to be a real pompous ass for me to not like them

The questions i had thought could be for the first interview, but as you have now suggested, i could perhaps have 2 sets, one the very basic level to see if they know what their resume claims, and some more for a later interview, where we can sit down in front of some code, or a system and let them try somethings...?


I'm not sure what you want to know about MySQL: are you asking if they're good administrators, database designers, or database developers? If they're an administrator, I'd ask them about backing up an online, production database that's under heavy load. If they're a designer, I'd ask them to build a simple data model for a payroll system. If they're a developer, I'd ask them increasingly complicated questions about writing queries and see where they break.

the MySQL side of it is more just understanding the structure of queries, how to be efficient in your queries and get the most out of the system as you can with out having to always use PHP to make temp tables, dump this here, dump that there, copy this here then export it into excel to sort it, when MySQL could do it all...So i guess more a designer / developers would be along those lines. I handle all the systems and software, installations, performance tuning, all the fun stuff!

Basically our main site dumps an archive of the past days data on us once a day, we take the same format (MySQL) and structure and pull from that.

I personally know the tables in side and out, my issue is i know MySQL to a level i can pull data from any table, inner join tables, stuff like that, but i am not too well versed in the more complex MySQL commands (which i seem to learn a new one every day) So i can easily help any new person find their way around the systems, explain what is what and where it is and why it is there and how it can be used.....
 
The person role would be to
  • Create new queries / pages / reports for the CEO / Marketing
  • Maintain current / past reports and scripts
  • Fix / update our current system so it works - to which we would then like to start a new one from scratch.
Sounds like a journeyman position. I think that for positions like this, asking skills-based questions like the ones suggested so far in this thread are adequate. You want to identify diamonds in the rough, though; potential young stars. So it still makes sense to push them in the interview until they break.
 
"our last coder just left for the U.S"

God that pisses me off. I graduated college with a degree in math, but I'm strongest in computer programming. I can't find any job programming though. All companies want are foreigners, no matter how dumb they are. It got to the point were I was advertising myself for 18,000K a year for the first 2 years. No takers. And don't get me started on the whole chicken and egg paradox about experience in this industry.

Luckily because I did extremely well on the Putnam Exam, GRE, and GRE Math Subject test I can get paid 18,000K a year just to be a grad student in math. I'm worth more as a grad student than I am as a programmer, which blows my mind. Every time I looked at Ph.D student code at my university when I was an undergrad, I could always optimize it to run in a small fraction of the time. Not just by making it multi-threaded and using good cache aware programming technique, but by using computer science: things like cleaver data structures for example.

And all the graduate students in computer science at my school were Indian (except for two). And these Indians were not good, but they were getting jobs!!! I don't understand companies' fascination with them. Maybe some of you employers here can explain this fascination to me.

Also, while in graduate school, what should I do in case I want to get a job programming when I get out? Should I make arbitrary programs and websites for no reason other to prove to employers that I know Oracle and PL/SQL and Java Script? And what can I do to avoid working with foreigners? Get a DoD clearance? I will work for 30K a year IF I get to work with smart people. That is the most important thing to me.

You'll often find that in the work environment it's not how fast you can crank out code or how clean your code is, but rather how well you can deal with the users. I work in a large research hospital and at least 50% of my time is spent dealing with users or sitting in meetings with them. If you aren't a pleasant person, no matter how good you are at programming, they'll give you the axe. It just happened with a guy in my department because he was horrible at customer relations and treated all of our users like crap. This causes management to have to intervene to smooth everything out, which they definitely don't want to do.
 
I don't think anyone is planning on putting Negative_3 in front of users or customers.
 
lol

well for me i want them to be able to write good code, what good is a coder if they cant.. well code good? :)

but i do agree, if i cant sit with them to explain things or ask for things, then i cant work with them as i mentioned above. You could turn PHP code into gold and you were a prick i would still can you!
 
it's worse than that, though... from time to time EVERY person is going to make a coding mistake --that may range from an outright error to needing to re-code with efficiency in mind, or refactoring... this type of individual simply would not deal well with that.

another thought occurred to me after i made my first post in this thread... most people i've encountered who say they are great coders usually aren't... the ones that say: "i'm good at x, and y but i really need to improve on z and there's a guy i'm talking to on lunch breaks about it..." tend to be the best ones. it's likely that the individual who posted the flames against coders from other cultures is likely not nearly as good as he thinks he is because why would you WANT to hire someone from another culture if you have someone equally qualified in your own culture?

that's not an inflaming remark... language barriers are tough even for people who speak english as a second language (and believe me, i know. i have 2 friends i visit regularly -one is Chinese, one is Indian. I am American), and to learn the American market is tough if you've only been here to observe it for a couple years. in America, cultures other than the dominant one have a tough time simply because of the nature of the businessplace, and it takes the best and brightest to make it --not simply a darker complexion.
 
I didn't know the DOD = Smart people.....

Anyway, I am not a PHP programmer, I did some stuff in the past with it but haven't touched it in over 2 years. I have a pretty basic knowledge of it and I was some what able to at least follow what the code was trying to do. Now I have an extensive knowledge of other languages which may have helped me some what but I think if these people are experienced PHP programmers they should at least be able to get some grasp of what it is doing even if the code isn't clean/bug free/efficient.

Them saying anything about what they were looking at or even asking a question would have been 100% better than just sitting there with a DUH look on thier face.
 
Getting a grasp at what its doing and really knowing what its doing is not the same in programming thats as simple as that. Anyone can get a grasp lol.
 
Getting a grasp at what its doing and really knowing what its doing is not the same in programming thats as simple as that. Anyone can get a grasp lol.

Maybe what I was getting at is that if I can grasp what it does, and those people had zero idea, then they are not programmers at all, or at least ones worth even thinking about hiring. Someone with NO php knowledge would probably look at that code and go ??WTF?? You need to understand it some what to grasp it.

Like some one looking at a red hot stove and slapping thier hand on it. Most don't do that because they understand not to but if you don't, then you might just do it. (probably a really poor example but it popped into the brain)
 
^^ basically, these peopel claimed to know MySQL and PHP and were good at it, yet showing them that code just left blank looks, which to mean meant, your clueless and lied on your resume...

as you mention, even if they had of said "Well i am not familiar with that.. what does it do? or even went, "well here it is pulling something from the db" that is better then nothing at all.. I thought you were supposed to try and impress at a interview, not look like your brain is having a seizure..lol

we did interview one guy, and he said he would og LOVED to take the job but alot of what he saw was new for him, and he was used to working in a team of people where each other had their strengths, i was ready to hire him none the less as he actually seem enthusiastic at looking at the code and was genuinly interested in it and what it did, and to me that said allot! They seemed like the type you can sit them down they may not know right away but they will not stop until they do
 
I can't imagine hiring someone so openly angry, and hiring somebody that's prejudiced would seem like a mistake in any legal climate. I've often wondered how to find these things in interviews, but it seems like an easy way is to let the client do it to themselves--given enough time or rope, they'll just hang themselves.

I had a buddy at NIU who was working on normalizing a quiz that was legal to distribute within a company, which would indicate dispositions towards xenophobia or xenophobic behaviors. I'll have to ask him if he ever got his work published, or if he even finished it! I know he was having some serious issues with getting the normalization figured out, due to the nature of the questions asked and the broad target audience. His first questionaire was something like 175 questions, and had an accuracy of about +/-60%.... so he had some work left to do. :)

Anywho, yeah, sometimes if I feel something isn't right or if a guy is hiding something I'll make sure I start asking more open-ended questions. Focusing on their history (i.e. "how did you enjoy going to X university/college/trade school? What was the climate like? What challenges did you have to overcome there?) usually leads to some interesting answers which can help pin down potentially unsavory behaviors or characteristics.

202276
 
The one guy i am going to bring in, he has allot of jobs over the past 3 years, but i am guessing it could be because of the field he is in, coding and such, most are contract work??? (i hope),. but i will be contacting those other jobs to find out any info.
 
a more experienced (as far as interviews go) applicant generally understands that "tell me what this code does" type questions are questions about the big picture, not line-by-line analysis that really dont amount to anything at all. so its possible that dumb look on their face was similar to the dumb look i had on my face in thinking that there was some obvious and practical purpose behind the sample code that i was missing :)

i know very little MySQL and never touched PHP so its possible you had applicants that were even better off than me and didnt really notice it since they didnt seem to get it. there's also the whole nervousness factor. i think everyone has covered this thread pretty well, but FYI i think its possible you may have missed some potential candidates if you depended too heavilly on that part of the interview.

my buddy has been interviewing some people in a different department. he got someone i used to work with that fixed some rather hairy kernel bugs her day and seemed to be a really good employee, but did pretty poorly on the little "write a string reversal function in c" thing he devised. he ended up giving her a pass anyway, cuz she was obviously more valuable than the test implied.

i think, unless you're getting a ton of applicants and need to weed people out, it is sometimes better to step away from standardized tests and probe the applicant's knowledge a little more intuitively. they might be a good way to break the ice in that area, but i dont think they work well as a pass/fail measure.

though i should say, in my experience at my company applicants/new hires seem to be quite a bit more qualified than what i hear about online and from other people who get swarms of supposedly clueless applicants. so maybe i have a bit more faith in potential candidates than is actually warranted :D
 
my buddy has been interviewing some people in a different department. he got someone i used to work with that fixed some rather hairy kernel bugs her day and seemed to be a really good employee, but did pretty poorly on the little "write a string reversal function in c" thing he devised. he ended up giving her a pass anyway, cuz she was obviously more valuable than the test implied.

I've so totally been in that situation. Lots of the great coders I've met don't know every minute detail of their favorite language's syntax. It can be very easy to draw a blank or forget even a common function name when you're not totally immersed into it. So, ya, you might know there is a function to convert characters to uppercase, but not necessarily know the name of it off the top of your head. But if you tell me something like "I'd check this condition first, then if true I'd loop through this array, else display an error message instead". That tells we a whole lot more about a candidate that just knowing specific syntax off the top of their head.

Edit: Here's an example of an interview question I might ask

You are tasked with creating a web survey containing 5 multiple choice questions. Each question asks the user to rate something on 1-5 scale. We need to tabulate 1) how many users took the survey and 2) of that total, how many answered for each question's choice. Also, we would like to make reasonably sure each user can only take the survey one time.

Please outline (some pseudo-code is OK) how you would approach this assignment, specifically:
1) how you would design the database back-end
2) how you would design the web front-end
3) what technique(s) you would use to limit a user from taking the survey multiple times
4) how you would tabulate and display the results
 
to test someone, bring in mel gibson in a reprise of his role as the lethal weapon character.

have gibson convince the applicant that the device gibson has in his hands is a radio detonator to a very large explosive device and that all the applicant has to do is to write the proper code to search a database for the hash value that will decrypt the password and let you log in to the bomb and disable the bomb.

...of course, gibson should be juggling the detonator or something whilst this is going on and yelling "whoa! oops!" in a continuous loop.
 
All I'm going to add to this thread, as other mentioned, is not to be afraid of people that are willing to acknowledge that they don't know everything and they don't have all the answers. Asking "whats this function do again" doesn't mean they are a bad coder.
 
All I'm going to add to this thread, as other mentioned, is not to be afraid of people that are willing to acknowledge that they don't know everything and they don't have all the answers. Asking "whats this function do again" doesn't mean they are a bad coder.

--During an interview this is usually bad... you should know the basics if you are being quizzed on the basics.

--During regular employment this is bad... you should be able to find your own answers and shouldn't depend on others knowing the answer to your problem, since your problem may be sufficiently in-depth that a lengthy explanation could be required to fully understand the problem prior to the solution being discovered. This wastes a significant amount of TWO people's time when one person should be sufficient.

Overall, I can't see any case where asking "what's this function do again" is a good thing. Acknowledging that you don't know everything is commonplace, and shouldn't be done either--nobody knows everything. It's silly to say "Well, I don't know everything...." and it will sound like you are using that fact as an excuse for not knowing something that you should know. A better response might be "I know I need something in here which can handle X, Y, Z case(s), but I can't recall which class or method to use in this language to acheive that goal, but I do know it exists." You acknowledge your shortcoming, but also show that you would be capable of researching your own solution, since you can identify the missing piece(s) and can reasonably explain what it is you need to resolve the issue. I had to do this one during an interview when I couldn't remember some of the specific arguments for fwrite--I remembered most of the arguments, and I said "Well, I can't put these in the exact order, but I know I need a pointer to a FILE, a pointer to data to write, and there's two other arguments to calculate the total length to write." The interviewers were sufficiently happy with that answer and were confident that, if I had a book or Google in front of me, I would've found the answer in seconds and would NOT have wasted their valuable time on that part of the solution to their question.

202276
 
Back
Top