Why Learning WordPress Development is Hard
Over years of teaching WordPress development, we’ve realized something: learning WordPress development is really hard.
We’ve been teaching WordPress development since 2009, and here’s the truth: teaching WordPress development is really hard.
The reason why is because learning WordPress development is really hard.
Here, we’ll talk about why that is. This article’s for you if you’ve ever wondered, “How hard is it to learn WordPress development?” It’s also for you if you already know that learning WordPress development is difficult, and you want to know why.
One thing this article doesn’t do: offer quick fixes for how to make learning WordPress development easier. (One thing at a time!) Of course, we have previously outlined strategies that can help to an extent with some of the challenges mentioned below.
It’s helpful to actually consider the challenge we take on when we say, “I’m going to learn WordPress development.” That’s hard, and if we don’t pay enough attention to that fact, we’re liable to forget that—wait, it really is hard.
How Hard is it to Learn WordPress Development?
What does “hard” actually mean? Let’s examine what you can expect when you set out to learn WordPress development.
So that we’re clear, “learning WordPress development” means learning to become a WordPress developer. A WordPress developer is someone who creates WordPress websites and solutions using full knowledge of WordPress’s PHP-based codebase and its principles as a software system. If you’d like to learn more about the job description, read our article describing its technical and practical elements.
Okay, so how long does learning WordPress development take? This deeply sane article gives some basic timelines that have been accurate to my own experience as a WordPress development learner. The good rules of thumb it gives, slightly tweaked, are:
- Time to become a basic-level WordPress user: 10 hours or less. Again, a WordPress user isn’t a WordPress developer. A user is a person riding a bike, and a developer is a bike mechanic. This article’s about becoming a developer.
- Time to become an entry-level WordPress developer: 6 months to a year. This is 6-12 months of steady, active learning—a minimum of 10 to 20 hours per week of active coding on WordPress projects. The outcome of being an “entry-level developer” is the ability to take on simple WordPress projects with minor twists: “Build a straight-ahead site for my bowling league, and can we have a calendar of our upcoming tournaments?”
- Time to become a full-fledged WordPress developer: 2 years, plus continual ongoing learning. A full-fledged developer approaches WordPress projects with confidence, including for challenges (like e-commerce optimizations, site migrations, and critical bugfixes) that are crucial to get right. This type of developer spends a lot of time solving coding challenges that junior developers couldn’t figure out. As dramatic as it may sound, two years of active learning does seem like a bare minimum to begin to feel this level of confidence in the job. My own WordPress development career only started to feel on firm footing after this amount of nearly full-time work.
That’s a basic outline of what we’re in for. Of course, learning WordPress development can be easier or harder—and take more or less time—depending on your choices. We get into that in the rest of the article.
But, returning to the main point: Two years? That can’t be right. What on earth takes two years to even start feeling comfortable in? I learned how to use WordPress in an evening after work, and I was watching Black Mirror on splitscreen the whole time.
In other words: Why is learning WordPress development so hard?
Why It’s Hard to Learn WordPress Development: Technical Reasons
The first set of challenges in learning WordPress development have to do with WordPress’s nature as a technical system, and the nature of a WordPress developer’s technical work as applied to real projects. We’ll examine these challenges first.
“WordPress Development” Covers So Many Topics
In practice, being a “WordPress developer” actually means knowledge across a vast array of topics:
- The WordPress PHP codebase
- WordPress’s plugin and theme ecosystems
- Practical tools and workflows (FTP, SSH, Git, CLI… Gulp, Grunt, Bower, Composer?)
- Server and database administration
- Digital security
- Web design, UI, UX
- Graphic design and image editing
- Digital marketing
- Digital strategy and entrepreneurship
…And more. Want to know if your project is GDPR-compliant? Time to learn a bit of international law. Client wants background videos on every page? Time to learn about digital video production and compression. Client will only give you access under a VPN connection, and his VPN settings aren’t working, and he’s convinced the problem is on your end? Time to learn far more than you ever wanted to know about configuring your home office router.
Learning WordPress development is difficult in part because it’s not one thing, but rather a wide range of competencies.
So learning WordPress development is difficult in part because it’s not one thing. Rather, it’s a range of competencies, each of which is needed to different degrees on different projects. As I’ve written before, you could be a near-deity at CSS, but still not know enough SEO to properly 301 redirect a site’s permalinks when you migrate it—and literally ruin a client’s business because of that lack of knowledge.
A common challenge in the first few years of working as a WordPress developer is a perpetual sense of being off-balance.
Ruining your client’s business is an extreme case (although, again, not especially uncommon, unfortunately). A more common challenge in the first several years of working as a WordPress developer is simply a perpetual sense of being off-balance, as every project asks something from a new angle you weren’t expecting.
So Much WordPress Development Knowledge Isn’t Book-Learnable
Probably most of what a working WordPress developer does can’t be taught in books. I’m not even talking about things like “setting rates” or “people skills,” which are massively important in their own right. I’m talking about technical knowledge that simply isn’t book-learnable. I’ll explain a few types of technical knowledge that are challenging this way.
Tacit knowledge is things that you don’t know you know.
Tacit knowledge is a really fascinating subject: it’s things that you don’t know you know.
An example from outside WordPress would be English grammar. I actually know almost nothing of English grammar at a formal level. (What’s a preposition? No idea.) But I’d also never write a sentence like “They it should is.” What keeps from doing that is my tacit knowledge of English grammar: stuff about English that I “just know,” without really knowing how—or even that—I know it.
This becomes a problem when you’re trying to learn something completely new. My first attempt at a sentence in Mandarin Chinese would probably read very much like “They it should is.” to a Mandarin speaker. So what am I doing wrong? Well… Yikes, where to start?
WordPress development is a minefield of tacit knowledge. Here are a few of WordPress development’s many tacit knowledge-rich topics:
- What WordPress (or any CMS) actually is.
- How a DNS record, a web server, WordPress’s software, and a web browser interact to generate a webpage.
- What languages a server speaks, what languages a browser speaks, and why those sets of languages are different.
- What lives in a database, what lives in a filesystem, and why.
- What it means to “update” software.
- What exactly terms like “post,” “page,” “cache,” and “template” mean in WordPress, and how this changes depending on context.
Cheerful plug: In our paid WordPress development course, Up and Running, we’ve tried exceedingly hard to fill in these kinds of tacit knowledge gaps. Our readers have consistently told us it’s a more helpful resource than others precisely because of this. Highly recommended. 🙂
Serious About Learning WordPress Development?Up and Running is our complete “learn WordPress development” course. Now in its updated and expanded Third Edition, it’s helped hundreds of happy buyers learn WordPress development the fast, smart, and thorough way.
Here’s what they have to say:
“I think anyone interested in learning WordPress development NEEDS this course. Watching the videos was like a bunch of lights being turned on.” -Jason, WordPress developer
“Other courses I’ve tried nearly always lack clear explanations for why WordPress does things a certain way, or how things work together. Up and Running does all of this, and everything is explained clearly and in easy-to-understand language.” -Caroline, WordPress freelancer
With tacit knowledge, you start with a question, and then slowly realize you’re confused about something more fundamental that no one is talking about.
Industry-leading guides like Up and Running can help a lot (we promise!), but tacit knowledge still does make learning WordPress really hard: you start out with a question, and then you realize that you’re confused about something more fundamental that no one is talking about. It’s a very frustrating feeling, and strap in for a lot of it as you learn WordPress development.
To introduce rabbit holes, here are three real-life WordPress development questions I’ve needed to solve in the past month. See how you do on them!
- Can a single MemberPress member have more than one membership at the same time, and if not how difficult would it be to modify the plugin to allow multiple memberships per member?
- Is it possible to hack the GravityPDF plugin to save user-uploaded images, and if so how many iPad-camera-sized images will it save into a PDF in one go before throwing a fatal error on average shared hosting?
- Search Replace DB is timing out on a 700MB database table. The server’s PHP timeout limits aren’t changeable without upgrading the hosting. Is there another solution to change URLs in the table?
Rabbit holes are exceedingly specific bits of knowledge that you can only learn by digging deeply into them one by one.
Do you see the pattern? All of these questions are “rabbit holes,” exceedingly specific bits of knowledge that you can only learn by digging deeply into them one by one.
And each one of these questions has major implications for client questions as simple as, “Can you migrate my WooCommerce store?” “Which membership plugin is the best for my project?” and “How do I save client form submissions, including images, to a PDF?”
The only way to learn these things is to be constantly exposed to new challenges in WordPress. I know way more about WordPress membership plugins than I did six months ago, and way more about saving user form inputs into PDFs than I did ten days ago—and I’ve been working as a WordPress developer full-time for going on six years.
The chance to always be learning is one of the great things about working as a WordPress developer, but that’s most true when you already know quite a bit and get to learn new things as a challenge. On the way up for the first time, it’s really difficult.
An experienced WordPress developer rivals an old cowboy as a source of folk knowledge.
“Folk knowledge” is a bit like tacit knowledge, but different: you know you know it, but it’s hard to explain or justify because it’s in the form of hunches, superstitions, intuitions, second-nature habits, and rules of thumb.
An experienced WordPress developer rivals an old cowboy as a source of folk knowledge, on topics like:
- What’s the likely type of cause of a site’s problem: a coding error, a caching issue, a plugin incompatibility, a problem with the server environment…
- Which companies do good work in WordPress (hosting, page builders, themes, plugins…) and which ones don’t.
- When to take a step back and “Okay, I know there’s an easier way to do this.”
- When to Google for a solution to your problem, how to write proper search queries, and how long to look before giving up.
This is all stuff that helps you solve concrete technical problems, but the knowledge itself is exceedingly human—intuitive, vague, “squishy”—in nature. It’s very hard to learn “on purpose”: you just need to do the work for long enough, and be around other experienced people in the same field.
Why It’s Hard to Learn WordPress Development: Personal Reasons
WordPress development learners typically face tough personal challenges relating to finances, free time, motivation, and accountability.
The second set of reasons it’s difficult to learn WordPress development are the personal challenges a WordPress developer typically faces as he or she is learning, related mostly to finances, free time, motivation, and accountability. These are every bit as challenging as the technical hurdles, and they contribute greatly to making learning WordPress development difficult. Let’s examine them.
Chicken-and-Egg Problem: Learn First or Get Paid First?
In most cases, learning WordPress development on the job while also making a real income at it is very difficult to do, especially initially.
In most cases, learning WordPress development on the job while also making a real income at it is very difficult to do, especially initially (within the first six months to a year). Some happy exceptions exist—you were hired by an agency, and they’re paying you to do on-the-job training—but we won’t be discussing them further because thinking about them makes me angry.
So for the entire first two years (!) of your trajectory as a WordPress developer, you’ll be constantly asking yourself questions like the following:
- Should I commit to charging a competitive rate even though I don’t really feel up to lots of challenges yet?
- Should I take this project for free/very little/way below my rate because it’ll be good experience and will look good in my portfolio?
- Am I ready to quit or scale back my other job? I’m learning WordPress development much more slowly than I’d like, but taking a bigger plunge feels really risky.
All these questions are really permutations of the basic chicken-egg conundrum of learning WordPress development:
- How can I possibly learn all this material without getting paid for my time?
- How can I possibly charge for my time when there’s so much material I don’t understand?
Learn for free, or charge for incompetence: not a fun choice.
Learn for free, or charge for incompetence: not a fun choice. Get comfortable—you’ll have a lot of time to puzzle this one over.
There are things to do about this, but for now I want to leave you with the basic sense of challenge that confronts all WordPress development learners who: (a) have a conscience and (b) do not have a cushy agency job.
Loneliness and Drift
Many WordPress developers are freelancers. Freelancing can look an awful lot of ways—digital nomad telecommuting from paradise, coworking-space power networker, and so on—but many of us:
- Work from home offices.
- Work alone.
- Spend quite a bit of time by ourselves.
- Are fairly introverted.
For people matching this general description, a lot of things are true:
- When we get stuck on something, it’s not obvious whom we can turn to for help.
- Because we personally handle all the overhead of our work—sending invoices, doing bookkeeping, renewing software licenses, etc.—simply keeping our business operating smoothly is at least a full-time job.
- Because our personal strengths and weaknesses are strongly reflected in our businesses, we often struggle with something—finding clients, charging the right amount, attracting repeat business and referrals, etc.—meaning that our businesses often feel or are in near-crisis.
- Our daily routines are extremely repetitive and can quickly become closed-in and discouraging if we don’t take active steps to prevent it.
- We are our only sources of accountability.
Stressed-out solopreneurs who still haven’t filed our annual taxes, who might be filing our quarterly taxes wrong come to think of it, who have spent 50 hours so far this week listening to our boiler click in the next room, and who need at least two large clients to come through in the next ten days or else we’re going to have to Craigslist the flatscreen to make the car payment: Is any of this sounding familiar?
Imagine you’re that person (if you aren’t in real life). Now, it’s 8 PM, the time when you’ve finally finished with your urgent calls and emails for the day, and it’s time to learn the next piece of your WordPress development journey: fetching custom post bundles with
Learning this will involve any number of topics you don’t understand and have never used—object-oriented PHP and PHP object syntax,
$args associative arrays, arrays as function arguments,
while loops, and so on—and which may leave you confused for several hours. At the end of the lesson you will be a significantly more capable WordPress developer, on future projects you haven’t yet landed.
For most WordPress development learners, you can simply stop learning, and no one will say anything.
Or you could just stop learning.
No one will say anything: you’re by yourself! You might even make a plan to get to it first thing tomorrow morning—until tomorrow morning, when the boiler finally decides to give up and leak water all over the house; or your largest client decides to pull out and leaves your business in a tailspin; or you simply don’t feel like learning ten new abstract programming concepts by yourself for free at 7:30 AM, either.
This is Why We Stop Learning
Staying motivated and keeping forward motion is a really hard problem in WordPress development learning.
This is why most people who get curious about WordPress development—and even people who do paid client work as WordPress implementers, who are partly but not fully empowered within WordPress—don’t become full-fledged developers. Staying motivated and keeping forward motion is a really, really hard problem. It asks a lot of individual people who, structurally, oftentimes don’t have a ton extra to give.
Again, we could tie this up neatly with some sort of best practice like “Find a coding buddy!” For now, though, it can be helpful to sit with the challenges we’re actually facing, and to acknowledge them as challenges. Learning WordPress development is not easy to do, and it’s definitely not easy to fit into an already-packed-full life.
And That’s Why Learning WordPress Development is Hard
You’ll have the best shot at meeting your own WordPress learning goals if you’re aware of the challenges going in.
Hopefully now you have a better sense of the challenges that face WordPress development learners. We definitely do recommend learning WordPress development—we wouldn’t have spent a decade teaching it otherwise—and we think you’ll have the best shot at meeting your own WordPress learning goals if you’re aware of the challenges going in. (And if you’ve already been struggling with this stuff since forever, at least you’ll know it’s not just you.)
If you are serious about learning WordPress development, we genuinely believe that the best first step you can take is to learn your way through Up and Running. Have a look if you haven’t already.
Ready to Learn WordPress Development?Up and Running is our complete “learn WordPress development” course. Now in its updated and expanded Third Edition, it’s helped hundreds of happy buyers learn WordPress development the fast, smart, and thorough way.
Here’s what they have to say:
“You guys rock! I have taken several WordPress theme development courses and read two books on it. By a landslide, yours is better because you have been careful to not talk over people’s heads.” -John, WordPress developer
“If you’ve been wanting to learn WordPress development, or if you’ve been hacking your way through WordPress with piecemeal tutorials, I think Up and Running is the perfect way to learn because everything you need is collected in one place.” -WPLift review
We’ve been thinking about these challenges for a long time, and we want to give you the best tools possible to work with them, so that you can meet your own WordPress learning goals. What makes WordPress learning hard for you? We’d love to hear in the comments below!