One of the things that we often hear about WordPress is that it has a low-barrier to entry for those who are interested in programming and/or for those who are interested in applying what they’ve learned about computer science or software development.

Generally speaking, I have a hard time saying that out loud. I’ll talk about this in more detail momentarily, but suffice it to say that I’m suspect of saying that.

Barreir

Don’t get me wrong: There are some nice things about working with WordPress that are easier than working in other environments, but that’s all assuming you’ve worked in other environments before.

Secondly, I think it’s important to also know where you fall on the spectrum of developer maturity (that isn’t a real thing, so don’t bother googling it, but I’m using it for the sake of this post :). This has always been a fun topic to talk about, but Matt Briggs of Google recently wrote an article that did a great job articulating this.

I highly recommend reading it before continuing with this post, though I’ll be quoting a few parts of it.

WordPress (And Its Low Barrier)

As mentioned earlier in the article, I said that I often times have a hard time telling other programmers – especially new ones – that WordPress is a good place to start because of it’s low-barrier to entry.

Perhaps I’m doing a terrible job of explaining it, or maybe I go on for too long (I’ve been that sometimes I’m too concise and sometimes I ramble so maybe I don’t even know how to communicate :shrugs:).

Starting with WordPress

Anyway, here’s why I think telling those interested in programming that WordPress is a great place to start is a hard sell:

During the course of our conversation, I always end up telling people that they’ll need to know HTML, CSS (perhaps Sass), maybe some JavaScript (and it may require some knowledge of jQuery and/or Backbone), and definitely some PHP.

It's not that easy to get started.

That’s a lot of stuff for a low-barrier to entry, isn’t it? This doesn’t even hit on the topics of open-source licensing, versions of PHP (and features of the various versions), themes, plugins, the differences thereof, and so on, and so on.

I know, I know: Many of those topics, you could argue, are for those who get more advanced in WordPress, but if they aren’t aware of them early on, they may end up creating more problems for themselves had they just had someone to educate them along the way.

The WordPress Development Environment

No matter how you spin it, you’re going to have to get your hands really dirty just to get something up and running on a local machine – a web server (that isn’t always Apache), a database, and the WordPress software.

And should they use an all-in-one solution like XAMPP, MAMP, or WAMP, or should they install each piece of software individually? If they’re interested in building themes and/or plugins, there’s Subversion-based source control that you have to use as well as some of the tooling that’s required to submit things to either repository for WordPress.org.

For those who are able to make it through that, there’s also the topic of getting started with contributing to WordPress core and that’s an exercise in and of itself as it requires becoming familiar with the various Make blogs, Trac, discussions, Slack, patches, and so on and so on.

If you’ve made it this far and you’re a little nervous or anxious about starting with WordPress, then you’re likely a junior developer – and that’s not a bad thing (some associate junior with negativity and that’s a shame).

If you’re someone who reads and thinks that it doesn’t sound terribly daunting and you could tackle it, then maybe you’re more of an intermediate developer.

A Real Programmer

And if you’re someone who reads this and believes that bringing people up to speed on WordPress does require a bit more work and that it doesn’t have such a low-barrier to entry, then maybe you’re an intermediate developer or maybe you’re a senior developer.

And that’s exactly what Briggs talks about in his post.

The Spectrum of Developer Maturity

Again, this phrase isn’t a thing. It’s just something that’s being used in this post to cover junior, intermediate, and senior developers (and everything in between).

A good junior developer can be given a known task, and be expected to execute it quickly, and well.

A good intermediate developer needs less supervision. They can be trusted to raise issues of code design, and play a valuable role in design discussions. They are also the “workhorses” of the dev team. However, further mentoring and higher level supervision is still vital.

A senior developer understands that you cannot do everything yourself, and that their primary role is to help their team get better, in many of the same ways they themselves strive for personal improvement.

There are so many good things in the article it’d be easy to quote the whole thing. But no.

Anyway.

It can be difficult to determine what type of developer you are. Some will have a level of intuition as to where they are, some will overestimate their skills, and some will underestimate their skills (though this is not the post to talk about the science of all of that).

There are a lot of great things to take away from the post, but – with respect to WordPress and getting more people involved in the project on whatever level – it’s important to understand where we fall in terms of our experience and maturity and where those fall who are trying to get into the project.

If someone is looking for somewhere to start in WordPress and they’ve never really gotten involved in programming before, then they’d obviously be defined as a junior developer so they’d need someone with a more experience than them to help bring them up to speed.

If, on the other hand, this is not the person’s first time working with a programming project, then they may still be a junior developer or they may be teetering on the edge of being an intermediate developer.

If someone is looking to contribute to WordPress core, make the overall development process of WordPress easier, contribute something significantly more advanced to the entire economy around WordPress, or something more, then they may be a more mature intermediate developer or perhaps a senior developer.

Finally, if someone is looking to help speed up the process of the next set of people who will be working on WordPress, then they’re likely a senior developer.

And, as with most things, there’s a flip side to this: If you’re somewhere along this spectrum but you’re not where you want to be, then you need to know at least two things:

  1. Where you currently stand with respect to your development experience
  2. Who is available or worth reading and/or following with respect to advanced WordPress development

Nothing here is groundbreaking, is it? I mean, I’d like to think it’s all common sense.

Know Where You Are (Make Things Better)

So what’s the point of all of this?

The point is that we all fall somewhere along this spectrum. Some are happy to stay where we are or get better at our own pace, and some are extremely eager to learn and apply as much as we can.

Similarly, there are some who are eager to bring others along and provide some type of leadership or some type of mentorship, and there are those that aren’t. To that end, I think it’s important for those who are looking to help other people share as much information as they can about the topic – be it blog posts, tweets, repositories, talks, etc.

Ultimately, if you’re looking to up your skill or you’re looking to up the quality of tools and software being built around your WordPress, then it’s important we know where we fall with respect to our experience, and seek out people to help or seek out those willing to help.