This weekend, we received the following tweet basically asking “where do I start with WordPress?”
@wpdailyco If I want to get serious about WP code, where do I start? I got basics, but I go deeper and feel overwhelmed! Tips?
— Josh Wagner (@jbwagner) December 15, 2012
Love this kind of stuff! Not only is it the kind of tweet that we can provide insight on, but it’s something that you guys in the community can chime in on as well.
Remember, our Manifesto specifically states:
- Collaboration, not Competition
- Community, not Agendas
- Friendship, not Formality
- People, not Personalities
- Participation, not Observation
And this particular question is a perfect opportunity for those of you to step up and act on exactly that. After all, we’ve all got our different learning styles, techniques, preferences, favorite sites, tools, applications, and so on.
First, I want to highlight some of my personal insights on how a person can get started with building things for WordPress, managing the firehose of information that’s available, and how to generally become a better developer, but then I’d love for you guys to chime in with your opinion.
Ultimately, let’s aim to give the most comprehensive answers possible in order to help Josh – and others – have the best place to start with learning to build projects using WordPress.
Identify How Your Learn
One of the key components to learning anything new is learning how you learn. Some learn by reading, some learn by doing.
Case in point: I learn by doing. I used to be the type of person that would try to read books, articles, and so on and then apply what I read in order to see if I learned it.
It didn’t work.
Instead, I have to take a more active and/or practical approach. That is, I have to literally write code, break stuff, and then fix it before I truly “get it.” This doesn’t mean I don’t read, but I have to read and then practice what I’m reading.
On the other hand, others hole up with a book, read it cover to cover grokking all of the information that’s provided, and then are good to go as soon as they’ve finished. This isn’t to say they won’t make mistakes, but they’re wired in such a way that their brain handles the information better that way.
Of course, this isn’t to say that one way is better than the other – it’s not. Instead, you have to identify what works for you and then take that particular approach when attempting to learn something new.
Know Your Environment
Every developer has a development environment whether they know it or not. The key is to optimizing your environment so that it’s conducive to your form of learning and your productivity.
Regardless of what that looks like, you’re going to need several tools:
- A web server
- A database server
- An installation of PHP
- A copy of WordPres
- An IDE or a text editor for writing code
Furthermore, I’ve published two articles on exactly this topic:
All of this can be combined to help lay the foundation for going further, faster in becoming a WordPress developer.
But What About PHP?
One of the most common things that I hear is that budding developers feel the need to learn PHP prior to learning to build things for WordPress.
The logic goes something like this:
- WordPress is built using PHP
- I want to build for WordPress
- Therefore, I need to learn PHP
But when it comes to development, it’s not always a prerequisite that you learn a language prior to building for the platform that’s built on said language.
You can learn them in tandem.
Prepare To Google
Even with all of that said, prepare to google and google a lot. At first, you’re likely to feel as if you’re googling for everything, and rightly so! After all, you’re attempting to learn something new.
By definition, you’re saying “There’s something I don’t know [yet], and want to learn.” As such, you’re going to have to do research. The more you google, the more you learn, the more you learn, the less you google.
At least, to some degree.
This isn’t to say that you’ll ever reach a point where you stop doing research – I’m years into WordPress development and am making a living building things with it, but I still research, discuss, share, and have my work critiqued to make sure I’m still learning as much as I can.
The thing is, things that are seemingly difficult at first become easy. As you become a better developer, it’s the more nuanced issues or the more niche issues that become more difficult tackle.
Know Your Niche
When it comes to building things for WordPress, you can opt to build plugins, themes, or applications. I’m not here to say one is better than the other – I don’t think the case can be made for that – but a case can be made for which thing you enjoy building the most.
The easiest way to determine this is to explore all the avenues and find out what you enjoy building the most and what you’re best at building.
Personally, I’m best at building plugins and applications. Yes, I can build a theme (in fact, we do!), but I don’t spend the majority of the rest of my time building themes. I focus on plugins and applications because I believe that that’s what I’m better at doing, and I gain a lot of satisfaction from that.
As mentioned, this is something that comes through a process of trial and error. Work with all of them, determine what you enjoy doing the most and what helps you help others the most, and you’ll find it.
Try, Fail, Fix, Repeat
As with learning any new thing, you’re going to have to fail before you succeed. By this, I mean that you’re going to need to begin trying to build something, get frustrated, and try again until you get it right.
In the case of building, say, a plugin, you can start off with an idea. You map out a high-level idea of how it will work, what it will do, and how it will look, and then you sit down to begin developing it only realizing you aren’t sure where to start.
From there, you do research on similar plugins, review their code, google and/or research other articles for how to accomplish a certain task, attempt to implement it, fail, try to resolve the debug messages, fix, and repeat.
This is development and it never stops. It just moves to different places during the lifecycle. Accept that this is the nature of the beast, and you’ll be far better prepared with the frustration.
At this point, you’re on your way. Recognize, though, that it’s an uphill battle for a long time. From the very beginning, there’s a lot you don’t know.
The paradox is that the more you learn, the more you learn how much you don’t know. And although you become better and building things that once seemed impossible, you always find yourself hitting a new challenge that you have to repeat the process of learning how to build a solution for it.
The nice thing is that there’s always information out there, someone is always going to be better at you at part of development, and in the open source community they are often a resource more than competition.
As such, don’t be afraid to put your code on GitHub asking for help or tapping a fellow developer to review your code. That’s community and it’s all about making each other better.
Finally, there are a number of resources that are available to help you become better at building products with WordPress.
- Bookmark your favorite blogs and read every article they publish. Yes. Every article. If you’re serious about learning to become a developer, then you need to be serious about learning how professionals are doing.
- Follow Your Developers on Twitter. Everyone has developers they respect. Follow them on Twitter. Review their code on GitHub or in the themes and/or plugins they have available in their respective repositories. If these guys are making a living doing what you want to do, then it’s best to pay attention to how they are doing it.
- Get plugged into a community. Comment on blogs, write your own blog, join a message board, try to break plugins and/or themes then open support tickets for them. Be activate and engaged.
Obviously, we’ve covered a lot of material and I’m certain that others are going to have more to share in the comments, but hopefully this provides solid ground on which to get started as a WordPress developer.
A Community’s Call To Action
In the comments, let’s see if we can’t link up some of the following that answer “Where do I start with WordPress?”
- Blogs that are worthwhile resources for adding to an RSS reader
- Documentation, articles, and posts that help provide guidance on getting started with development
- Developers who are on Twitter that deserve a follow and that publish good stuff
- Any other information you deem necessary for budding developers
I’ve said what I have to offer – your turn guys. Go go go…!