On Wptuts+, we talk a lot about how to achieve certain things using WordPress, how to apply practical tips within WordPress projects themselves, but one overlooked area of working with WordPress is bringing aspiring developers up-to-speed on how to quickly get started with building WordPress-based products.
Sure, there are a lot of guides for beginners that are out there, but what about experienced developers who've yet to really hop over into WordPress, or who have worked in environments like .NET or Rails before but are now faced with the task of building something for WordPress?
In this post, we're going to look at some general, educational, and development related tips that are geared towards the experienced developer in order to bring them up to speed in WordPress development.
One of the reasons that WordPress isn't often viewed as a viable application platform by other developers, at least in my opinion, is because if its name.
It sounds and represents all things publishing related. Of course, it should, right? It is a CMS and its heart is based in publishing content, but when you consider that "publishing content" includes a wide range of information - anything from blogging, journalism, to updating a web site - then you've got more of a case for looking into it as a platform.
On top of that, the application has seriously matured in the past few years such that you get a lot of boilerplate code out of the box.
- A database structure
- An email system
- User registrations
- User roles
- Database manipulation utilities
- Multiple APIs
All of the things that normally come in the form of gems, packages, or libraries are all part of WordPress as well. It's simply a matter of learning how to use them.
Get Comfortable With the Codex
To that end, if you've been working with another language for sometime, then you're likely familiar with said platform's documentation.
WordPress is no different. Its core set of documentation is called the WordPress Codex. Because WordPress is geared towards both users - or authors - as well as developers, it doesn't fit the typical mold of a listing of various classes, functions, and so on.
Instead, you have to seek out the development documentation and then drill down into the specifics that you want.
From here, you can now review the full set of APIs that are available. These include:
- The Plugin API
- Widgets API
- Settings API
- Options API
- Transients API
- ...and more, and more
As you can see, the WordPress API is rich. Although the documentation is relatively strong, if you happen to come across something that's confusing or that could be improved, the Codex is a wiki so you can simply edit the given page.
This not only helps clarify whatever point caused you to stumble, but also gives back to the community which is ultimately at the heart of the open source model.
Learn the Coding Standards
Like any good platform, there are coding standards that WordPress defines which all developers should follow.
But, then again, like any other platform, developers tend to adopt their own set of standards when building products for any given platform. In the case of WordPress, it's a little bit different: Because the platform is open source and anything built on WordPress falls under the GPL, then its source code is subject to the same license.
As such, I think it's important for any code written on WordPress to follow the predefined standards. But if that's not enough, note that code - especially written by a team - should be written in such a way that it looks as if a single developer wrote the entire code base.
Standards help to provide this foundation. This makes the code more readable, easier to maintain, and more acceptable by the community at large.
Sure, it's easy to question this logic, but when you've worked with themes, plugins, and applications that follow the conventions then have to maintain a project that doesn't, you feel the pain.
Any experienced developer knows that you're never really done. You've never really leveled-up to a point where you've maxed out your programmer points.
In short, there's a constant level of education that you must pursue in order to make sure that you're on the top of your game. This comes whenever you need to learn a new library, a new design pattern, a new technique, or an entirely new platform.
In addition to staying close to the Codex, there are a couple of things that will make your life much easier as a WordPress developer.
Reading, Writing, and Comments
I don't know if I can fully stress the importance and significance of this particular strategy enough, but I believe that it's extremely important for developers to read other people's blogs, write their own blogs, and comment within the community.
In doing this, you're learning from other people's mistakes, successes, and general learnings. You're also sharing your own experience which, in my opinion, puts your work on the stage for others to critique.
Sure, it can be intimidating. After all, who likes to put their work on display only for it to be criticized? But the truth is that it can help you become a better developer faster by learning from others who comment on your work that have been there before.
And for what it's worth, very few people are critical in a negative way. In my experience, I've found that developers want to help other developers. Not always, but most of the time.
The WordPress community is filled with people more like the former.
Find Your Following
I realize that this almost sounds like something out of a marketing guide for social media, but the truth is that you can learn a lot by following people on Twitter who are popular in the WordPress community.
Even if you opt to be a passive tweeter - that is, you simply want to read what others are saying - then do it. Not everyone blogs, but a lot of people 'microblog' and share important announcements, links, and content that can make your life as a developer a bit easier.
Finally, the last thing that any good developer needs to do to get started with building WordPress-related projects is to develop.
Up to this point, we've mentioned a number of different things to help you accelerate your involvement and experience with WordPress as a platform, but we've not actually given any particular tips on what you can do to up your developer chops.
Find a Niche
You can think of WordPress as being segmented into two particular areas: themes and plugins.
For those of you who are just coming to WordPress, themes are like the skin or the layout of what's built on WordPress. It's responsible for formatting the content that's stored within the WordPress database. Sure, it can offer some other functionality, but at its core, it's responsible for presenting the data.
Plugins, on the other hand, are more like "apps" for WordPress. That is, they introduce functionality, features, or improvements to the core WordPress applications. Granted, some plugins are significantly more advanced than others, but they all do the same thing - extend WordPress.
Finally, it's worth mentioning that developers are beginning to create more and more web applications using WordPress. This normally comes in the form of advanced themes with more "application-like" functionality.
Regardless, it's worth discovering your niche, finding what you enjoy the most and focusing on that. To do that, you'll obviously need to experiment with building themes, plugins, and possibly even applications.
All the APIs, Inside and Out
Next up, it's important to learn the various WordPress APIs that we discussed earlier, inside and out. This doesn't necessarily mean that you need to memorize every function or feature of the available APIs, but it does help to be familiar with what WordPress offers.
Ultimately, this means that whenever you're faced with a problem and you're not exactly sure how to solve it, you know what facilities are available to solve it. From that point, it's a matter of looking up the documentation or implementing your own solution by following core features (and the coding standards!).
Write a Lot of Code
This particular point transcends working with WordPress. In fact, I almost didn't bother mentioning it because it's relevant to anyone that's learning any new programming paradigm, technology, or platform.
Then again, it never hurts to hear a good thing more than once.
So in order to continue leveling up your WordPress development skills, it's important that you write a lot of code. It's not enough to passively participate in the community - don't just read blogs, leave comments, or follow others on Twitter.
Put your own posts, plugins, and themes out there. Make some mistakes, learn from them and produce better work.
There's really never been a better time to get into WordPress development, so why not start now? The community is as active as it's ever been, the efforts are underway to continue improving the handbooks for plugins, localization, theme development, and so on.
Finally, more and more of the web is becoming powered by WordPress - both sites and applications - so it's worth looking into even if it's just as a hobby.
Regardless, the tips above should help you get started whether you're looking to pick up WordPress in your free time or professionally.