1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

questions to ask a potential php coder?

Discussion in 'General Programming Chat' started by Viltedali, May 4, 2009.

  1. Viltedali

    Viltedali Regular Member

    Feb 10, 2008
    Likes Received:
    Here are some that I've found on the web, but would like to get 'real world' questions along with their answers. Many are duplicates, I wanted to post this now, before I never do.

    I know that many of these questions don't deal with php, but it is a start.

    If anyone feels like answering any of the following questions, feel free.:)

    If you do, please put the answer in html code box so that it isn't spidered, if that's what the html code tags prevent.

    Also, is there a 'questions to ask a potential php coder' product out there? I've not found one.

    "...PHP coding skills..."
    Can you show where PHP 4's object/reference model breaks down?
    Can you explain how PHP 5 fixes this?
    Can you explain what "safe_mode" is?
    Can you code defensively around a "magic_quotes_gpc=on"?
    Can you write the code to execute a simple shell command from PHP and do something with the output?
    Can you explain what a "PHP extension" is?
    Do you know how to compile one or where to get one?
    Can you recommend a library or extension to solve the following problems: web scraping, image manipulation, etc? 
    Can you explain how PHP's Zend Engine works (just the basic process)? 
    Can you explain what a code caching extension does (like Zend Engine, APC, or Turck-MMCache)?
    Do you know what PEAR is? 
    Can you say how you would install a PEAR library? 
    Can you tell you how PEAR's error system works?
    How would you prevent SQL injection? 
    How would you create a single security audit point for such attacks? 
    Can you articulate what "filter-input, escape-output" means? 
    Can you evaluate "magic quotes" as it relates to that? 
    Can you explain an example of session fixation or the dangers of not properly filtering out script or css?
    Can you show a process by which one would i18n a PHP application? 
    Can you give some examples of interesting PHP quirks you've run across in their last project?
    "...Object Oriented Programming skills..."
    You want someone who can program Oo with the best of them but not someone entrenched in the idea of Oo that they lose flexibility. Here are some examples:
    Can you explain HTML templating as Model-View-Controller? 
    Can you explain how it is not Model-View-Controller?
    Can you explain the principles of package reuse? 
    Can you explain the strengths of a framework/weakness of it? 
    Can you explain Ruby on Rails in that light? 
    Can you explain why there is little to no adoption of a "PHP on Rails"?
    Can you explain what a programming pattern is? 
    Can you explain what "consequences" are? 
    Can you give an example of some "consequences" of patterns you've used?
    "...HTML/CSS coding skills..."
    Basically you want someone who is well-versed in HTML and CSS coding, but isn't afraid to look up the parts that they don't know nor is so brainwashed by "A List Apart" kool-aid that they spin wheels forever when a simpler, uglier solution might do.
    Can you mention some browser rendering quirks?  
    Can you explain what the box model is and how it differs in IE?  
    Can you give an example of a way to get CSS code to be read in one browser but not the other (without using server-side switching)?
    Can you explain the difference between logical and presentational markup?  
    Can you show how you might code a sliding doors or other div-based rounded rect?  
    Can you code a linked list markup that renders as an inline list or menu?
    "...practical Ajax skills..."
    How good is their javascript is the question you need to answer. They can bomb some of the specifics of Ajax implementation because there are libraries that handle it, but it makes a good model of general solutions on their programming abilities. Especially when Javascript is not coded like PHP?
    Do you know the JSON syntax? 
    Can you code with anonymous/alpha functions? 
    Do you know what a closure is? Can you make a generic onload handler? 
    Can you mention some Javascript browser-quirks that you've run across?
    Do you know the acronym of Ajax? 
    Can you explain the meaning of each word in the acronym (besides the second A)? 
    Can you explain the marshaling and asynchronous issues involved with Ajax?
    Can you code using Remote Scripting via iframes or explain how it could be done? 
    Can you articulate the pros/cons of ti? Can someone build an XMLHTTPRequest instantiation?
    Can you give examples of differing browser support/considerations at it relates to XMLHTTPRequest?
    Can you explain the readyState system and the callback system of XMLHTTPRequest?
    Do you understand what DOM scripting is?
    Can you make up a DOM scripting example?
    Can you explain how one might implement an i18n solution when some of the data is in Javascript?
    Can you articulate their favorite Ajax framework and how it works?
    Can you explain its weakness vis-a-vis some other framework or rolling your own?
    "...abstract thinking skills..."
    Basically can they think at a high level. This isn't necessary but it certainly helps if you want to trust that this person can do things with minimal guidance.
    Can you show areas where you may end up with race conditions in PHP?
    Can you explain how to guard against it?
    Can you explain how PHP is a HTML templating language itself?
    Can you explain Ajax as a "design pattern"?
    Can you give the advantages/disavantages of Ajax vs. Flash-based sites?
    Can you explain what XML is?
    Can you explain when to use and when to avoid XML as a transport especially in regards to client-side javascript?
    The hallmark of PHP is the self-deprecating nature of the language. If they can't look for solutions outside the "PHP box", you might as well code the thing in JSP, ASP.NET, or C. Finding the right level of solution for the problem saves a lot of hiring overhead down the road.
    Can they express what are the pros/cons of a HTML templating system and when to use or avoid it? Can they explain the practical reasons to use HTML templating?
    Can you show you'd use a library to solve a programming problem?
    Do you know how to use the Error Document to do lazy caching?
    Can you explain why CSS took so long to catch on?
    Can you give examples of weaknesses/pitfalls of using divs to replace tables as non-logical markup?
    Can you explain when you would use/avoid the following payloads: delimited format, JSON, XML.
    Can you explain when you would use/avoid the following RPC patterns: REST, XMLRPC, SOAP?
    PHP5 vs PHP4
    Do you know at least three major features that separate PHP5 from PHP4?
    Can you do some basic socket programming or at least understand how you would connect to other machines? (I need some sort of small test for them to do if possible)
    You should have a deep understanding of OOP. 
    How do private and protected methods differ? 
    Do you understand the following concepts and know why you would need them(not critical to know all of them)?:
    * interfaces
    * constructors
    * private, public, protected
    * inheritance 
    * polymorphism
    * static methods
    What is a normalized database? 
    What are primary and foreign keys? 
    Design Patterns
    Why are design patterns helpful, and do you know at least a 3? (not critical you use that many, but important you understand them) 
    Source Control
    Are You experienced in at least one major source control system? (ZIP FILES IN TEMP DIRECTORIES DON'T COUNT!)
    Can you name at least one reason cvs is a pain in the ass? (bonus points)
    (renames aren't tracked, as well as moves, which can be a hassle?...maybe an answer)
    Unit Testing
    What is unit testing, and why it's important?
    (bonus points:)
     for test driven design, 
    Do you know how to unit test javascript?
    Do you know how to use selenium?
    Part of the Community
    Are you part of and contribute to the php or web technologies community online?
    (bonus points for having a project of your own or contributing to one)
    Javascript Skills
    Do you know the methods used to manipulate the DOM? (appendChild, removeChild, nextSibling, etc)
    Do you know how to create your own classes in JS (FORM VALIDATION IS 1999)?
    (bonus points:)
    Can you show how to make a private variable in javascript?
    CSS Skills
    Do you know the box model thoroughly?
    Do you understand css selectors and how to use inheritance?
    questions from comments:
    Do you have a strong understanding of HTTP requests/responses and ways to secure your PHP applications? These are so important to understand as a developer (not just PHP, but understanding SQL injection attacks and the like).
    Instead of concentrating on front-end, these questions deal with operations and setup for high load sites."
    Mine are mostly about all the stuff non-php-javascript-html-css.
    Have you ever worked with high traffic websites?
    How do you administer those? 
    What do you do to speed up websites on both Win as Linux systems? 
    How do you secure a Linux box? 
    How do you work with a linux box securely? 
    How well do you work the command line? 
    Do you know shellscripting? 
    Do you know vim or emacs or any ohter texteditor via commandline? 
    How do you prevent data coruption? 
    How do you handle data coruption? 
    How do you set up backup systems? And in what situation is one backup setup preferable to the other? 
    How do you make sure your data is transfered safely?
    What about webservers?
    Have you ever administered Apache or IIS?. 
    Have you ever compiled PHP? 
    Tell me why Apache2 is not preferable for PHP and why Apache1.3 is? 
    How do you secure a apache server? 
    How do you tune apache? 
    How do DNS servers work? 
    How does HTTP work?
    How about database servers? 
    Do you use phpmyadmin or command line? 
    Have you ever installed and administered MySQL? 
    How do you tune a MySQL server? How about PostgreSQL? 
    What other database server do you have experience with? 
    What are the specific defining features of both database servers? 
    What are the situations for which you choose the one over the other? 
    Why does or doesn't oracle suck for the web? 
    When should you use sqllite, when should you use something else? 
    How do MySQL indexes work? How do you optimize MySQL queries? 
    How does PostgreSQL autovacuum work? Why is it useful? 
    How does MySQL replication work? 
    What does myisamchk do?
    Also, Coding in general. 
    What are best pratices when coding websites? 
    Have you ever used version control? What kind? Why are those useful? 
    Which editors do you use? 
    Do you know how to write Unit-tests? 
    Do you know how to write maintainable code? 
    Do you know unicode? 
    How do you handle internationalisation?
  2. _Austin

    _Austin Junior Member

    Apr 9, 2009
    Likes Received:
    Phew, where in the world did you get all these questions and just curious, are you using it to hire a full time programmer or just a freelancer?

  3. Viltedali

    Viltedali Regular Member

    Feb 10, 2008
    Likes Received:
    Wow, I figured this thread was dead and buried.

    I included the URLs of the pages that I got the questions from in the post above. I feel a bit funny about posting links or URLs here, that is why I included it inside the HTML tags.

    I was hoping to find a full-time coder. I tried bestj*obs.ph and hired someone but let them go after a month as I feel that they didn't get much done.

    I am now trying another person that responded to my job listing as part-time, but it looks like he may not have the time.
  4. _Austin

    _Austin Junior Member

    Apr 9, 2009
    Likes Received:
    Ah that must of been why I missed them.

    Were you able to get responses to all these questions when dealing with your two recent hirees[sic]?

    I wish I could point you in the direction of a reliable place to find a good PHP coder but alas I know none.