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.
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.