This all started with a thought experiment about WordPress recruiting. Something I’ve done a fair amount of in the past.
Let’s say I’m looking to hire a WordPress expert. What defines that person as a top tier WordPress developer? What knowledge or characteristics am I looking for?
WordPress powers a large part of the web. It’s also the livelihood for thousands of developers. Those are amazing things, but it also creates problems. One of them is that it’s hard to evaluate your or someone else’s skill level.
So we’re going to look into that. It’s worth noting that there’s no definitive or objective answer to that question. We’re all biased. We have our own opinions on what it means to be an expert.
That doesn’t mean that you shouldn’t try to answer the question. The goal here is to help you think about where you stand on the topic. It’s also an opportunity to think about where you are and where you’d like to be.
Let’s focus on things you can learn
It’s not that soft skills like a “strong desire to learn” or “problem-solving attitude” aren’t important. They’re mandatory for achieving any mastery (not just WordPress) and employers love them too. They’re just not something you can teach (at least I haven’t seen it).
The truth is that there’s no class to get a “desire to master WordPress” (I know… bummer). It’s about the actions you do every day. You woke up today and you’re reading this. It’s safe to assume that that desire is there (Yay!).
That’s why we’ll focus on topics you can learn.
What can be taught?
It’s possible you won’t agree with everything here. That’s ok! You can use it as a starting point for your own journey. If you feel I missed something, let me know in the comments.
These are some broad topics. That’s an intentional choice. They’re meant to help you get started and to guide you on your quest.
You should know and understand what affects WordPress performance. The bad news is that performance issues can happen anywhere. It can happen in your code, on your server or with your database (those are the big ones). The good news is that each piece is self-contained. You don’t need to learn them all at once.
Different performance changes will give you different levels of results. You can use that to prioritize what to learn. You should focus on what gives you the best return on your time investment.
You could say that caching is about performance. It’s true, but also a simple generalization. Caching has more of a multiplicative relationship with performance.
This creates a sometimes complex interaction between performance and caching.
You’d expect an expert to work with large WordPress sites. These sites will use various caching solutions. You have to understand the interactions between your code and those caching solutions.
For the same reason, you should be familiar with the different caching options. There’s some at all levels of a WordPress installation. Each of them has its own set of benefits. Some caching options are simple “install and forget” solutions. You also have solutions that require additional servers or custom code.
Security is another large topic in itself. You could specialize as a WordPress security expert. That’s not necessary for most of us. A WordPress expert understands how to write code without known vulnerabilities. That means understanding concepts like:
- Input sanitization
- Output escaping
- SQL injection
- Cross-site request forgery (CSRF)
These are all attacks and vulnerabilities that WordPress has built-in solutions for. It’s a question of knowing about them and using them properly.
You should also know the security standards for installing and configuring WordPress. (e.g. don’t use admin as a username). The precautions you need to take to keep your site secure.
This is more than just using an IDE (or Sublime/Vim/Emacs) or version control. Most experts tend to use more tools than the average WordPress developer. Experts use tools because they make you more efficient (once you’re comfortable with them).
Tools come in different flavours from task runners (like Grunt) to deployment tools (like Capistrano). You might feel a bit overwhelmed if you didn’t use a lot of tools before. That’s ok.
Even an expert doesn’t always use every tool available to him. There’s a lot of them out there. You prioritize which tools you need based on the needs of your project.
This isn’t to say that you have to become a sysadmin. Great system or database administrators are like magicians. You don’t need to be a magician to be a WordPress expert (whew).
You just have to be comfortable getting your hands dirty. This means that you’re not scared of making changes to your web server or database. Even if it’s only on your local development environment. That shouldn’t hold you back.
Knowing WordPress internals
That’s THE obvious one. You can’t be a WordPress expert without knowing WordPress (duh!). This doesn’t mean that you need to get a shiny core contributor card (although they’re pretty sweet). It’s about being familiar with dark seething underbelly of WordPress. There’s plenty there to see.
You have the APIs that let you interact with WordPress. You have the hooks that let you change its behaviour. Knowing about an obscure hook can make all the difference. It’s the difference between you writing several lines of code and you writing hundreds. There’s also weird and obscure functions (like capital_P_dangit) that you might not know about.
It’s also about knowing how WordPress works. There’s plenty of other things going on under the hood beside the loop. You have to be familiar with all that.
What about your coding skill?
That’s the question isn’t it. You expect that your skill as a developer means something. It does, but not as much as you’d like. The developer in me hates admitting that. Let’s look at why that might be.
Being a WordPress expert isn’t about you being a programming god (sad face). That doesn’t mean you won’t come across complex problems. Those problems might even push you to use some advanced programming knowledge. The issue is that those situations aren’t common. They’re more the exception than the rule.
An expert delivers extraordinary outcomes with WordPress
That’s the conclusion I came to after going through the thought experiment. You’re not trying to help someone build a site on a budget here. You’re paid a lot because you deliver expert level outcomes.
That’s why coding isn’t as important in the end. Coding is a tool used to help your client or the company you work for. You want to help them get the most out of WordPress.
That can mean new features, but it can also mean handling more traffic. It’s about your ability to create solutions that help them achieve their goals. That’s quite a tall order, but that’s why you’re the expert after all.