WordPress Job Interview Preparation

I’m interviewing for a job as a WordPress Developer. I’ve only been working with WP for a year now and feel I have a good overview, as in how to set it up, what functions.php does, where to modify themes, etc.. But the interview I have next week is going to be asking me all about WordPress and Linux with some MySql thrown in. All I know is that they will be giving me a laptop and a test.

How do I prepare for such a thing? Should I practice writing a plugin today? I know how to set up a Linux server, but I’m not great with advanced file manipulation or shell scripting. I’m good at setting up, troubleshooting and configuration. And I read the WP Codex a LOT. What would be a good homework assignment to give myself to prepare properly? I’ve noticed there aren’t many resources for studying for a WP-centric interview out there.

Related posts

Leave a Reply

2 comments

  1. If I were to hire a WordPress developer, my wish list would look like this:

    • Knows HTML and CSS inside and out;
    • Has at least a basic grasp of JavaScript;
    • Knows their way around PHP, and produces beautiful code (clean, consistent, DRY)
    • Has a good grasp of database design and SQL: if I show you a database schema and a few queries, can you tell whether they’re well-designed and efficient?
    • Understands their .htaccess file;
    • Understands The Loop thoroughly;
    • Understands how taxonomies, custom fields, custom post types, and post formats work, and what they’re for;
    • Knows how themes work and understands the template hierarchy;
    • Knows how plugins work and how to write a simple one.

    There’s a lot more I can think of, but I think the above would be a pretty solid start.

    And here’s a trick question: what sucks about WordPress, and what would you change in the next major version to fix it? If you can give a convincing answer to this, you probably know quite a bit about WordPress.

    But setting aside the above wish list for a second, the most important thing to me is not whether you know the solution to a problem: it’s whether you can find the solution.

    Know where to look (the Codex, the PHP manual, places like this), and be genuinely interested in doing things the right way. Don’t be satisfied when the thing that didn’t work suddenly works: was that the right solution? Could you do it in a more elegant way, with less code? Can this solution scale, can it be reused when a similar problem crops up?

    Hope this helps.

  2. File manipulation and shell scripting is not often what you do with WordPress. At most something you do to it, like backup or deployment stuff. It is something WP itself and plugins try to keep to a minimum for good compatibility with different hosting environments.

    What kind of WordPress development is it actually going to be? Field is quite wide from very front-end stuff to very back-end stuff and load of things in between.

    This is far from comprehensive, but things that I would personally consider strong basic foundation for WP development are:

    • in general

      • ironclad understanding of hooks – what they are, how they work, how they work with classes, how one code can manipulate hooked events of other code
      • Settings API, adding things to admin area in general
      • security concepts, validation, sanitization, output to screen, checking for authority and intent
    • theme development

      • queries and loops, different ways to run them and which to use for what
      • template tags, basics (get_ vs the_), global variables they rely on
      • template hierarchy and conditional tags, what it is, how to bend it
      • parent and child themes, load order, template inheritance, setup process
      • script and style queue
    • plugin development

      • changing plugin states (actiivation, deactivation, uninstallation)
      • logical differences between plugins, must use plugins and code in themes
      • code organization (prefixes, classes)
      • core and plugin loading logic, when is it too early, too late and appropriate to run code
      • Ajax implementation