PHP Development Job Interview - Technical Test?

I would expect they would test your general knowledge of PHP and the internet. If this position relies on OOP knowledge, expect to have your grasp of OOP tested.

If I were hireling a PHP developer, I would test the hell out of him/her so see if they are going to be qualified enough for the position.

I think that if you are “self taught” in PHP, expect even more testing. If you have some education credentials to show you have attended and graduated from some sort of programming class, that may help you in terms of your interview.

I still feel that people are hired based on two things, talent and personality. You could be the best programmer on the planet, but if you have no/bad personality, don’t expect the job.

My advice, knock their socks off with your personality first, then focus on the skills.

Good luck! :slight_smile:

Agreed …

Bring in some examples of your code. I did for my asp.net interview and explained the pages and code (just a basic inventory management system I did for a company) and that showed them I knew what I was doing and I was offered the job.

However if you’re interviewing for some big company you’ll probably be talking to some HR person who knows nothing about technology.

I did that for an interview for my school “practicum”. They offered me the job but I turned it down for another position I was offered elsewhere.

If you have a notebook, I have friends who have shown their scripts “live” using their notebook. It’s like digital paper :wink:

Great question. I’m no expert, so I won’t say anything other than…

GOOD LUCK!

Also, let us know what they do ask, when its over!

I would also like to know what they ask you. Please reply when your interview is done… we are curious. :slight_smile:

If that’s the standard I doubt if they’ll bother with elementary Zend certificate type questions. Probably it will be assumed you have a copy of the manual and know how to use it.

The Zend Certification (as of 08/26/2005) doesn’t have any meaningful questions on OOP, as it’s based on the 4.3.x branch anyway.

It’s also not at all a meaningful criteria for guaging how good someone is. I’m sure that in a year or two, it’ll become an important thing to have under your belt if looking for work doing PHP, but right now it’s just lame.

Anyway, I digress.

Hi…

They are already asking the right questions. Likely there will be a pair programming slot, or something similar. Perhaps they will have a class for you to write. I have to agree with McGruff and Entu, Zend questions are unlikely for both of their reasons. This is a skills problem, and the skills take a while to pick up.

Regarding TDD, have you used PHPUnit or SimpleTest? Regarding OO, what level are you at? The basics of polymorophism or have you chomped through the GOF book and Fowler’s book.

Given that they are after skills rather than knowledge, you might be better off demonstrating a willingness to learn and to admit what you don’t know. You haven’t a chance of faking it with this stuff, so if you don’t know it you might want to get your foot in the door as a willing apprentice. Be humble.

At Wordtracker we put candidates through an enjoyable hell. We screen on sample source code before interviews. We don’t actually do interviews, but instead go for references (phone, not email) and auditions. Usually four 30+ minute tasks designed to show the skills and personality traits we are after. For an enterprise developer post it might perhaps be something like:

  1. Pair programming. We want to see how they work in a team and ability to compromise on the clever stuff to aid readability. We want someone who aids in development, not a one man band. Attitude is what we are after, but it’s difficult to fail this task in practice.

  2. Either a CRC or whiteboard session where a real problem would be discussed involving a half dozen classes. We only need contributions, not a design wizard. We are after mental agility here, being able to look at a problem from different angles. We want someone who can argue in order to reach an agreement.

  3. A code critique of some lousy code - usually ours. We want someone who can spot problems and is willing to refactor. We would leave them with the code to tidy it up (including the tests). This is a craftsman test, not a test of politeness. We want to see their brutal side.

  4. A requirements gathering role playing exercise. This is very important for sniffing out a tendancy to overdesign and gives the chance to demonstrate that they can see the wood for the trees. We don’t want code that we haven’t asked for.

At each stage we give feedback and ask the candidate if they would feel comfortable in that environment. You can tell from body language if the candidate is stressed. We’ll either ease off for a bit, or ask some questions about what troubles them.

I doubt yours will be that thorough. If it’s very perfunctory you probably don’t want to work there anyway.

Anyway, good luck.

yours, Marcus

Hi…

We certainly hire 50+ developers. Anyone with a mass of exerience that is having difficulty getting a job is of great interest to me ;). Experienced developers are orders of magnitude more productive the juniors and well worth higher pay and shorter hours.

If anyone is in this position, then mail me :).

yours, Marcus

Thanks for the post Marcus, very helpful. Your sig is the first time I’ve heard of PHPLondon, I might well have a look at that.

In terms of OO, I’d probably rate myself at about 7/10, I’ve worked on a fewprojects which have been extremely OO orientated, using MVC model etc and phpunit (im just using simpletest for the first time now) So yes I understand polymorphism, inheritance etc. mainly learnt from my first year at University studying Java. My weaknesses come in a lack of experience using design patterns and I’m very new to TDD. I reckon I’m skilled enough for this position though and unlike some I actually relish working in a team especially with PHP because it’s such a “fun” language, if you will. I’m hoping as it’s a junior role it won’t be TOO intensive, and that my personality can compensate for any gaps in my knowledge :slight_smile:

Better get some sleep though, thanks everyone for the input and I’ll be sure to let you know how it goes probably later this evening. (this was my first ever post in the sitepoint selected topics as well :D)

one company where i tried applying gave me a hands on examination, under tie constraint. give them a sample web application from scratch,with all 3 functions, add edit delete with mysql. they just wanted to filter out those who lie and those who really knows what to do.

others give me multiple levels of exams, one with php coding and other with the database, most likely mysql.

what i noticed is that many of us here knows how to program, at descent levels but… the lack of technical trms /knowledge breaks our chances. if you have a problem with memorizing, your a gonner if subjected to written exams, i prefer hands on exams.

good luck!!

Although the exam is over by now and I hope it went well, I would like to add my 2 bits to this topic. Someone touched on it earlier and I would like to reiterate… no one in their right mind expects you to have an entire programming language and all of it’s solutions committed to memory. It’s perfectly fine not to know something, as long as you can communicate your problem solving and adapting abilities to the employer. That’s far more important.

Speaking of problem solving… just because a position requires a certain language such as PHP, do not assume that your first exam will be PHP specific, especially for a junior position. They may be more interested in your problem solving abilites, your knack for logic… and some off-beat questions that demonstrate you are a good thinker - not so much a [insert language here] guru.

The test we give to junior programming applicants is not bound to any language. From what I remember, they are asked to write a few database queries, they are asked to solve a few problems in suedo code, We ask them what is the answer to 12 OR 5, and we top it off with a few logic riddles… that have absolutely nothing to do with computer programming.

That’s just something to keep in mind if you’re applying for a junior position… by its very nature, they are usually more interested in your potential as opposed to your experience.

It would be stupid to ask about function parameters, etc. Because that doesn’t give any real information. When you learn a foreign language, knowing a lot of words is helpful, but other things are more important.

But you’ve had the test, so what have they asked? [<– english is foreign to me, is that correct?]
I’m 15 years old, so I might have to do some test later :slight_smile:

Shameless spam nethost. :rolleyes:

Thanks for all your replies guys. I have been away for a few days so was unable to report back.

Now, off I went to the interview, expecting at some stage a verbal test of sorts, but in the end it didn’t quite happen like that. Obviously the personal interview was first, only touched on technical aspects lightly mainly regarding experience, just an initial talk I suppose so they can ascertain whether theres actually any point doing the technical test. Everything went well and then they started talking about the technical test, I expected them to whip out some long list of questions and PHP trivia which I’d have to answer on the spot. :lol: So it was music to my ears when they said I’d be able to go away and use one of their systems to work on the technical test.

The actual test spec I can not post here for legal reasons even though I have it in electronical format, however basically it gave a somewhat vague specification for a contact management system and I was allocated 2 hours to complete it. Now by vague I mean it didn’t go into great details as to what was required, but simply pointed out the key features it must have and some bonus points for extra features like CSV export of contacts. So it was basically down to me the developer to show what I can do. Luckily the test included no TDD but the application had to be OO naturally, and utilise Smarty for templating which I haven’t played with extensively but of course it’s not overly complicated to use.

Next point, they had Zend Studio which was great, but, no internet connection on the system! :cry: :shifty: So first things first, I set up jotting a few ideas down and then drawing up a prototype UML diagram, fired up Zend and started getting used to it again (been using Dreamweaver MX lately). 2 hours I thought was a reasonable time to come up with something half useful, so I commenced with the development of the main classes which were a simple database abstraction layer and some adding/editing/deletion of contacts. Zend feels clunky and the interface is a little suffocating but the features are vital considering I have no php.net or Google. :google:

Once I’d finished the bulk of it, the main features and the template integration I had about 30 minutes to throw in some bonus features. I did the CSV export of course which was quick and simple, I then had a great idea, how about using PHP’s imap functionality to allow users to send an email/attachment(s) to each contact on the fly. :blush: They had an internal mail server so the lack of internet connection was no problem for show purposes, at least.

Overall it was an interesting experience to partake in some extreme programming under tight time constraints which was fairly challenging because usually I am a very slow and methodical coder so I had to really get my skates on. Should find out tomorrow if it went well, won’t be the end of the world if I don’t because I’m not desperate for a job still being at University or College if your American but it would be nice. :agree:

Thanks for all the help and it was extremely interesting to see the discussions about this topic.

Thanks for your accurate description of this experience.

It reminded me of a similar situation, where a temporary agency sent me to an interview asking me to prepare for a translation test. In contrast to media communication group officer who asked me to answer questions on how to do a database using cgi. That was not what I expected and it went badly.

However, you added interesting insights and eye opening tips into the other world of php coding and programming.

From the myriad responses here, it seems like the only thing to expect is the unexpected.

I’m on the plus side of 50, so I get plenty of stares from the 20-somethings that imply “what’s the old guy doing here?” when I walk in for a developer interview. Background: I was a software startup manager/executive until the bottom fell out of the market a few years ago, and had to fall back on my technical skills to put food on the table. Fortunately, I had been a consultant for eleven years and have developed excellent interviewing skills. Having been a manager, I also interviewed many excellent candidates, as well as many who wasted the time of both of us.

Note that none of this applies to those “job shops” / head hunters / recruiters that will try to force you through formalized or automated testing before submitting you for an interview. In my experience, the jobs they are trying to fill are best suited to mindless drones, so if that’s what you want, have at it.

A couple of points from my experience: Perform due dilligence. NEVER apply for a job, nor interview for one, without knowing as much as you can about the company, the people/culture, and the job itself. Let me repeat: be as prepared as possible, arrive 15 minutes early and refresh yourself before meeting with anyone.

Second, establish rapport with the interviewer, as it will always work in your favor. Learn to “read” the person by their facial expression, how they greet you, where the interview takes place (office, conference room, cafeteria, or lobby), and how well-prepared they are.

Try your best to control the interview and the direction it takes. Keep asking questions (germane and relevent, of course) at every opportunity that build on information you’ve collected prior to, or during the interview. Make sure you understand every question - if not, say so. If you do not know the answer, don’t “wing it”; it’s far better to say that you don’t something than to sound stupid, especially since good interviewers, like good lawyers, don’t ask questions to which they don’t already know the answers. I know that when interviewing candidates, I never did.

As a senior-level developer, I emphasize how I’ve applied technical solutions to specific problems whenever possible. This elevates the conversation above the bits and bytes, and works best after I’ve spent a few minutes convincing the interviewer that I’ve mastered the prerequisites. Once you raise the discussion to his level, you’re really on par (or ahead of) the interviewer and can start sharing “war stories”.

By now, that person is thinking of how much you’ll add to the organization, and, if a manager, how good you will make him/her look. The next step will be negotiating the best deal you can. But, that’s another topic.

We recently held interviews for a position without having a test and the person essentially lied and got the job… Well, it took them about 2 weeks to “resign”. We were mad and they wasted a lot of time. I say this, “Im no tax auditor, so Im not going to pretend to be one. We work in a fast paced world where the $ is everything (unfortunately) so please, please dont screw around”. Honesty will get you farther than you think.

Good luck to you and most of all have fun with it all.

expect a snippet of code written on paper and tell them what it does. Optimization of functions or classes. They might take a look at your coding standards, how cleanly you format your code, stuff like that.
and just like phobbs said, in my experience, they kinda want to know more about how you go about finding a solution to a problem.

Aha, technical tests suck I always don’t pass those. Black outs when I don’t want them :frowning: