First, let’s set a few things straight: becoming a top WordPress developer is hard work — very hard work. It’s going to take a lot of time, energy and determination. If you’re looking for an easy checklist or some “fast pass” to the top, you’re going to waste your time. Being one of the best is hard, and statistically speaking, the odds are stacked against you.
By the way, installing WordPress, reading a few tutorials and customizing a few themes does not make someone a top developer. They may call themselves an “Expert”, and that’s fine. They may know more than the average person. But a top developer moves far beyond the basics, and pushes the very boundaries of what is possible. They innovate, contribute to the community, and demonstrate mastery in the work they do. So I want you to be more than an “expert”, I want you to be one of the best.
Why Be A Top Developer
Why not? If you work with WordPress (or plan to start), why just settle for being average? There’s too much “average” in life already. “Normal” is highly overrated. There are other reasons, though. For instance, the top WordPress developers:
- Make the most money
Demand for WordPress development is high and clients are willing to pay more for developers who are the best in their field.
- Get the best clients
When you are at the top, you have the freedom to say “No” to the projects you don’t want, and “Yes” to the projects you do.
- Have the most influence
Being at the top means you have influence (and responsibility) and the capability to shape the future of WordPress as well as the ecosystem that is built around it.
One Hour of Reading a Day
If you’re going to make it to the top, then you need to spend at least one hour each workday focused on reading and learning more about WordPress — outside of any development work. There are no shortcuts, and no other ways around it. Learning and mastering WordPress is going to take time. If you watch TV, cut it out — more than 90% of it isn’t good for you anyway. If you’re a gamer, sell your games or throw them away. Reaching the top takes commitment and sacrifice and the best place to start is with the things in life that aren’t doing you any good anyway.
Start with one dedicated, distraction-free hour of reading for each workday. Shut off instant messages, put your phone on silent, and read. Take notes on what you learn along the way. You’ll find the time goes by faster than you would have expected. Keep at it, day after day, week after week, and month after month. And as you start to see success, put in more time for reading.
Alternatively, consider a three-hour block, two to three times a week. The key is to make a commitment to learning and honoring that commitment by setting aside the necessary time to see it through.
Enrolling in WordPress University
There’s never been a better time to learn and master WordPress than right now. There are so many excellent resources available to those willing to put the time and effort into using them. Before you can start gaining experience, you need some education. Sure, you could just jump in and start breaking things. But I suggest you wait, and cultivate the self-discipline it takes to learn — there will be plenty of time to break things later. As you start your education, it’s important to begin with the social aspect of your experience.
Hang Out with the Right Crowd
We become like those we associate with. If you want to be one of the top WordPress developers, start spending time with those at the top. Read their blogs, follow them on Twitter, give feedback on their thoughts and ideas, go to WordCamps3 to meet them and listen to their talks. Read the interviews on CodePoet4. Follow their examples, ask them for advice, follow their advice, and report back.
Here is a small list of WordPress developers to get you started:
- Andrew Nacin5 (@nacin6)
- Alex King7 (@alexkingorg8)
- Bill Erickson9 (@billerickson10)
- Carl Hancock (@carlhancock11)
- Cory Miller12 (@corymiller30313)
- Mark Jaquith14 (@markjaquith15)
- Matt Mullenweg16 (@photomatt17)
- Mike Schinkel18 (@mikeschinkel19)
- Nathan Rice20 (@nathanrice21)
- Peter Westwood22 (@westi23)
- Jeff Starr24 (@perishable25)
- Joost de Valk26 (@yoast27)
- Justin Tadlock28 (@justintadlock29)
- Silviu-Cristian Burcă30 (@scribu31)
Read the Material
The amount of reading material available on WordPress is overwhelming. There are thousands of people talking about WordPress and it is becoming increasingly difficult to filter through the noise. There are authorities, however, and when you commit to mastering WordPress, then you should start your journey by finding the highest quality resources and concentrating your efforts just on those.
Here are a few resources to get you started:
- WordPress Codex
The WordPress codex32 is a community-edited repository for all things WordPress. Start with the very basics33 and focus on mastering the WordPress interface itself from an end-user’s perspective. Learn the WordPress semantics34. Read about theme design35 and plugin development36.
- Books on WordPress
There are more than a dozen books37 available on WordPress. Start off with the titles of greatest interest to you and then work towards the others. Think “WordPress For Dummies” is too basic? Maybe not. Your clients may read it and it’s important to have their perspectives. When you’re finished, thank the author and write a review.
- Blogs on WordPress
Find and follow the best blogs about WordPress. Subscribe to their feeds. Read them regularly and give feedback to the authors. A few of my favorite blogs are WordPress on Smashing Magazine38, WP Tuts+39, and WP Candy40.
Understand the Technology
If you’re going to master WordPress as a developer you need to understand the technology. If you’re already a programmer and PHP/MySQL aren’t new to you, great. Make sure your skills are up-to-date. If you’re new to programming, start learning.
Here are some ways to begin:
- Learn PHP and MySQL
It’s really important that you know PHP and MySQL and that you learn the best practices. A few out-dated tutorials aren’t going to do it. And if you learned it a few years ago, a lot of the practices you picked up are probably out-of-date. Not sure where to begin? Start with Lynda.com41 or Learnable.com42. Learn about MySQL performance43.
- Explore the Codebase
Take time to explore the WordPress codebase on Trac44 and on Xref45. Read through the documentation to understand how things work. Look up what doesn’t make sense to you and ask questions. Familiarize yourself with how WordPress is structured.
- Run The Nightly
Setup a local development environment46 and run the nightly build47 as a way to stay up-to-date on WordPress as it’s being developed.
- Read “Make WordPress”
A good way to understand the technology is to follow the development discussions taking place on make.wordpress.org48. You can follow discussions about the Core49, Plugins50, and Themes51 for starters.
Do the Homework
Put what you’re learning into practice. Start with your own WordPress websites. After you read a tutorial, follow it on your own. Experiment. Break things down. Track what you’ve learned and record your insights and breakthroughs for future reference. Spend as much time as you can taking what you’ve learned and applying it to your own projects and experiments.
Here are a few areas to explore:
- WordPress APIs
Start by familiarizing yourself with the list of available APIs52 on the Codex. Read through the information available for each API and experiment with each (some will be easier than others). Search for tutorials for each of the APIs to give you some real-world perspective and experience on what can be done with each.
- Ajax in WordPress
Even if you’re already familiar with Ajax, learn about the use of Ajax in WordPress53. Then, move on to tackle using Ajax in plugin development54. Search for tutorials to develop your experience further.
- WordPress PHP Classes
Familiarize yourself with the list of classes55 created by WordPress developers. Experiment with them on your own projects and master them. In particular, pay special attention to WP_Query56, WP_Theme57, and wpdb58. Search for tutorials on each of the classes, as well as non-core, community contributed classes like WPAlchemy59.
Gaining Experience With WordPress
With your education well underway, it’s time to gain real-world experience — and lots of it. Your path to the top is lined with trials and difficulties and gaining experience outside the safe playgrounds of your own projects is a critical step in the right direction. One of the best ways to get started is doing work for others.
Take On Clients
Working for clients, paid or free, is one of the best ways to gain experience. Clients introduce challenges you would never have to deal with working on your own. If you’re just getting started, learn how to get your first client61. While the market focus (large clients vs. small clients) will vary, the heart of the matter is get a lot of experience. The goal is to not just get a few hundred hours working on WordPress, but a few thousand. You need to put the time in with real-world experience and taking on clients is one of the best ways to do this.
Develop a Public Theme
Build a theme you’d actually use. Release it, paid or free. Listen to the feedback you get from developers and end-users who use your theme. Ask for a peer review from theme designers you respect. Update your theme as you get feedback and as your abilities improve. Work hard to make a theme that you can be proud of.
Develop a Plugin
As you learn and work with WordPress you’ll eventually find a need that hasn’t been met. When you do, meet it yourself. Take what you’ve learned about plugin development and put it into practice. Write a plugin that’s secure and that solves a real need, without being another “me too” contribution to the already massive plugin community. Release it, paid or free, and get feedback from the people who put your plugin to use.
Contribute a Patch
Read the Core Contributor handbook62 and learn how to submit a patch63. It can be a daunting process your first time around, but look for a challenge that you can tackle, and stick to it. Contributing a patch is an invaluable experience and an important part of being able to consider yourself a top WordPress developer.
Learning how to write bug-free code is a critical step in becoming a great developer. Start with the Codex and learn about debugging in WordPress64. Read Andrew Nacin’s post on 5 Ways To Debug WordPress65. Familiarize yourself with some of the developer oriented plugins, like Core Control66, Debug Bar67 and Log Deprecated Notices68.
Joining The WordPress Community
As you continue your education and put what you’ve learned into practice, the next step is to become an active member of the community. You may be a fantastic developer, but it doesn’t count for much if no one knows you exist. Spend time investing in the community. One of the best ways to do so is sharing what you know.
I got my start back in 2006 with a simple tutorial I wrote70 (be warned, it is a little dated). I took what I had just figured out and poured it into a tutorial to help others and save them the time (and headache) I had just experienced. A lot of people read it, a few wrote back and said thank you, and some people even asked me to do some work for them. So write tutorials that take the best of what you’ve just learned and present it to others so they may reap the benefits of your efforts. It’s worth it.
Contribute to the Codex
As you spend time reading through the Codex you will notice areas that need improvement. Learn about becoming a volunteer in the Codex71. Dedicate time to improving the quality of the documentation. While documentation in the Codex is continually improving, there are still functions and features in the WordPress core that go undocumented. If an area is beyond your current capabilities, bring it to the attention of others and embrace the opportunity to learn more in the process.
Participate in Forums
Most WordPress beginners start out asking questions on the official support forums72. Start there by answering questions (even the silly, basic ones — we all start somewhere). From there, become an active member of the WordPress Stack Exchange community73. Answer questions and learn from the answers that other developers are giving.
Present at WordCamps
Attend upcoming WordCamps74 and look for opportunities to present and give value to the WordPress community. A true sign of your expertise is your ability to take what you know and teach it to someone else. Read the Diary Of A WordCamp75. Want even more of a challenge? Become an organizer76 and start a WordCamp near you.
Reward And Responsibility
The reward at the top is worth the effort. If you’re building a business around WordPress (read 7 reasons why you should77), a mastery of WordPress is a critical step to your success. In 2011, according to the official WordPress Survey results78, “6,800 self-employed respondents were responsible for over 170,000 websites, personally”. Of those, the average median hourly rate was $50/hour. Based on the Pareto principle79, the top 20% of those developers (less than 1,400) are responsible for 80% of the work done (and they make more than $50/hour).
Now, being in that top 20% carries with it a high-level of responsibility. Staying at the top requires a commitment to ongoing education and continual experience. Never stop learning and improving. Being at the top also puts a level of responsibility on your shoulders for the health and future of the WordPress ecosystem. Get involved. Weigh in on important matters. Contribute. Put a percentage of your success back into building up WordPress and ensuring its future.
Becoming a top WordPress developer requires a mindset of continual improvement and a willingness to do the hard work. It starts with an intentional focus on education and then moves to extensive real-world experience. Finally, the title of a “top developer” demands dedication to the WordPress community, as well as recognition of the responsibilities by those who mold and shape the future of WordPress.
What about you? What advice do you have for becoming a top WordPress developer?
- 1 http://www.smashingmagazine.com/wp-content/uploads/2012/07/31.png
- 2 http://www.smashingmagazine.com/wp-content/uploads/2012/07/21.png
- 3 http://central.wordcamp.org/
- 4 http://build.codepoet.com/asset/interviews/
- 5 http://nacin.com/
- 6 https://twitter.com/nacin
- 7 http://alexking.org/
- 8 http://twitter.com/alexkingorg
- 9 http://www.billerickson.net/
- 10 https://twitter.com/billerickson
- 11 http://twitter.com/carlhancock/
- 12 http://corymiller.com/about/
- 13 https://twitter.com/corymiller303
- 14 http://markjaquith.com/
- 15 https://twitter.com/markjaquith
- 16 http://ma.tt
- 17 http://twitter.com/photomatt
- 18 http://mikeschinkel.com/
- 19 https://twitter.com/mikeschinkel
- 20 http://www.nathanrice.net/
- 21 https://twitter.com/nathanrice
- 22 http://peter.westwood.name
- 23 https://twitter.com/westi
- 24 http://perishablepress.com/
- 25 https://twitter.com/perishable
- 26 http://yoast.com/about-me/
- 27 https://twitter.com/yoast
- 28 http://justintadlock.com/
- 29 https://twitter.com/justintadlock
- 30 http://scribu.net/
- 31 https://twitter.com/scribu
- 32 http://codex.wordpress.org
- 33 http://codex.wordpress.org/Getting_Started_with_WordPress
- 34 http://codex.wordpress.org/WordPress_Semantics
- 35 http://codex.wordpress.org/Blog_Design_and_Layout
- 36 http://codex.wordpress.org/Plugin_Resources
- 37 http://wordpress.org/about/books/
- 38 http://www.smashingmagazine.com/
- 39 http://wp.tutsplus.com/
- 40 http://wpcandy.com/
- 41 http://www.lynda.com/PHP-training/php-with-mysql-essential-training/435-2.html
- 42 https://learnable.com/courses/php-mysql-web-development-for-beginners-13
- 43 http://www.mysqlperformanceblog.com
- 44 http://core.trac.wordpress.org/browser
- 45 http://xref.wordpress.org
- 46 http://codex.wordpress.org/Installing_WordPress#Local_Installation_Instructions
- 47 http://wordpress.org/download/nightly/
- 48 http://make.wordpress.org
- 49 http://make.wordpress.org/core/
- 50 https://make.wordpress.org/plugins/
- 51 https://make.wordpress.org/themes/
- 52 http://codex.wordpress.org/WordPress_API
- 53 http://codex.wordpress.org/AJAX
- 54 http://codex.wordpress.org/AJAX_in_Plugins
- 55 http://codex.wordpress.org/Class_Reference
- 56 http://codex.wordpress.org/Class_Reference/WP_Query
- 57 http://codex.wordpress.org/Class_Reference/WP_Theme
- 58 http://codex.wordpress.org/Class_Reference/wpdb
- 59 http://www.farinspace.com/wpalchemy-metabox/
- 60 http://www.smashingmagazine.com/wp-content/uploads/2012/07/experience.png
- 61 http://jonathanwold.com/your-first-web-development-client/
- 62 http://make.wordpress.org/core/handbook/
- 63 http://make.wordpress.org/core/handbook/submitting-a-patch/
- 64 http://codex.wordpress.org/Debugging_in_WordPress
- 65 http://nacin.com/2010/04/23/5-ways-to-debug-wordpress/
- 66 http://wordpress.org/extend/plugins/core-control/
- 67 http://wordpress.org/extend/plugins/debug-bar/
- 68 http://wordpress.org/extend/plugins/log-deprecated-notices/
- 69 http://www.smashingmagazine.com/wp-content/uploads/2012/07/4.png
- 70 http://jonathanwold.com/tutorials/wordpress_integration/
- 71 http://codex.wordpress.org/Codex:Contributing
- 72 http://wordpress.org/support/
- 73 http://wordpress.stackexchange.com/
- 74 http://central.wordcamp.org/schedule/
- 75 http://www.smashingmagazine.com/2012/05/11/diary-of-a-wordcamp/
- 76 http://central.wordcamp.org/become-an-organizer/
- 77 http://jonathanwold.com/7-reasons-you-should-build-business-on-wordpress/
- 78 http://wordpress.org/news/2011/08/state-of-the-word/
- 79 http://en.wikipedia.org/wiki/Pareto_principle