How To Start Learning WordPress Development
Want to learn how to be a WordPress developer? In the early days of WP learning WordPress Development might have seemed like a bad/risky career move. Why invest the time in a piece of open source software that might tank any day?
Now, years after it became the most used CMS in the world, it’s hard to imagine that it’s going anywhere anytime soon.
Before start seriously learning WordPress (or any other type of) development, it’s important to consider where you stand.
What Level Are You At?
Are you a complete beginner(to coding with WP)? Are you mostly a beginner but you like to tinker with WordPress themes? Have you made a simple theme before?
I’ve outlined three different types of beginners below, and in this post there’s a section with specific reccomendations for each archetype. So if you’re not a complete beginner you can easily skip that section and get pointers appropriate for your level.
Complete beginner
- Very limited or no knowledge of HTML/CSS/PHP/JS
- 0 experience trying to edit the actual code of themes
Tinkering Beginner
- Knows basic CSS/HTML
- Likes to edit themes/make child themes to get it to look ‘just right’
Seasoned Beginner
- Has made simple themes before
- Knows CSS/HTML and basic PHP
Complete Beginners
First, let’s start off with complete beginners. In this case what I mean by a complete beginner is in the development sense. Does this describe you:
- I don’t understand code at all/very well.
- What is HTML/CSS/PHP?
- If I find a solution that involves coding, I would rather keep searching for a plugin.
If your instinct is to avoid coding as much as possible, you’re starting from a bit of a disadvantage compared to some WordPress users.
Set Up A Local Development Environment
To set up a local development environment, means to install software that acts like a webserver but only locally for your own computer. This makes you able to run and work with WordPress on your computer(even with no internet connection).
The great thing about this, is that you’re able to quickly apply and test changes to the code, without risking breaking a live website that has readers or even customers.
Windows Users: This a good guide for using XAMPP.
Mac users: This is a good guide for using MAMP.
Learn The Fundamentals
If you’re a complete beginner, I recommend that you take some time going through the CodeAcademy course on HTML and CSS just to familiarize yourself with the core concepts that are used to create the WordPress layout.
Then you should get familiar with how to use Chrome Developer tools (at the very least the inspector) to make changes to the design. (You can read about that here.) Alternatively, if you use Firefox, you can use firebug.
You can see how to make simple changes to the design using custom CSS in my previous post, here.
Tinkering Beginner
Now let’s move on to what I like to call ‘tinkering’ beginners. You should start from this section if the following applies to you:
- You like to look under the hood of WordPress.
- You’re CSS/HTML literate enough to make small design changes.
- You know how to use some Chrome Development Tools like the inspector.
- You know a little PHP but are not confident enough to mess with plugins.
Before you do anything else, if you don’t have a local development environment set up yet, that’s the first thing you should do.
Theme Development
At this point you are ready to dive in deeper into WordPress theme development, with guidance of course.
You can either follow video courses on Treehouse/Tuts+ if you, like me, mostly prefer the video format over text. But if you like working along with written tutorials, of course there are many places to find them. Here are a few sources for tips that are 100% trustworthy:
Theme Shaper
This is the place where the theme development team from Automattic share their thoughts and tutorials on theme development. From customizer integration and activating functionality already included in core WordPress, a lot of useful topics are covered here in detail.
Tuts+ WordPress Theme Development Tutorials
A big library of different tutorials that relate to WordPress theme development.
Smashing Magazine WP ‘Techniques
Smashing Magazine is an industry leading website on web design and development. Check out the WordPress section for quality tutorials on WordPress, many of which cover theme development related topics.
WordPress Codex
Of course I had to include the WP Codex. Although it might not be presented in the most exciting way, this wiki is incredibly useful for beginning developers. A few things to get familiar with in the codex: The Loop, Custom Post Types, Custom Post Type Templates, Functions.
Get A Deeper Understanding Of The Foundation of WordPress, Learn PHP
If you already know some HTML and CSS, you will be familiar with how themes change the basic design of the site. When you’re learning WordPress development, you also need to learn the language that work with the database. The language which stores and pulls out all the content for us, PHP.
Code Academy
At code academy they have a course on PHP that quickly and effectively familiarizes you with basic code, concepts and functions.
Codecourse
Code course offers a variety of video tutorials on different aspects of working with PHP. The best part is, they’re all available for free. (Formerly known as PHP Academy)
Treehouse
Treehouse offers an extensive track on PHP development, with over 20 hours of video and a lot of educating coursework.
Tuts+
Tuts+ offers a few video courses around PHP fundamentals, but has a lot more vourses on how to work with laravel or other frameworks.
W3 Schools Tutorials On PHP
This is a series of free tutorials on working with PHP. Specifically from version 5 and onwards.
Seasoned Beginner
If you’re still new to development, but following a few courses or tutorials, you’ve been able to create a few themes with custom functionality. (Where you go in and work with The Loop/ WP Query or other WordPress functionality, not just changing the CSS.) If this applies to you:
- You’ve built a theme or two (with guidance).
- You’re familiar with WordPress functions and the loop.
- You’ve gone over the coding best practicses in the handbook.
- You know HTML/CSS fairly well, and you know some PHP.
Getting Started with basic plugin development
So you know HTML/CSS well, you know your way around basic PHP and you’re able to create themes the way you like them without too much trouble. Basically, you’ve learned how to deal with how WordPress looks. Now you might want to start learning WordPress development for plugins.
Treehouse
In the WordPress track, Treehouse has a 5 hour long video course dedicated to plugin development.
Tuts+
There are a lot of good free tutorials, as well as video courses, dedicated to the topic of creating your own plugin.
Really Get To Know The Foundation: Learn JavaScript
As you really start learning WordPress development, you realize you know HTML/CSS well, some PHP and/or JS and you’re familiar with the core and working with themes. Time to level up your knowledge of the foundation languages even more.
Not only did Matt Mullenweg tell the WP developer community to ‘learn JavaScript deeply’ during the last ‘State of the Word’ speech, but the Automattic team created an entirely new multi-site dashboard for WordPress.com and Jetpack users.
Not to mention that JavaScript has played an important role in core WordPress for a long time already.
There’s never been a better time to learn JavaScript for a WordPress developer than now.
Code Academy
Code academy again offers perhaps the best course on fundamentals. A course that will quickly help you get familiar with Javascript. Free of course.
Eloquent JavaScript
A book on JavaScript that is available for free online right in your browser window.
React
After learning basic and intermediate JS, you might want to get familiar with one of the popular frameworks or libraries.
While there are many JS libraries or frameworks to choose from, with different features and fanbases, you can hardly go wrong with React, the library that Automattic used to build Calypso.
jQUery
WordPress ships with jQuery and it’s used in the core as well as in a lot of plugins and themes. Read the guide here.
Treehouse
Treehouse offers a full track on JavaScript.
Tuts+
Again Tuts+ has a lot of great tutorials on how to do specific things with JS, or how to use specific frameworks, but not as much coverage of the basics.
Really Learn PHP
Dive in even deeper into PHP and really learn the language. You can use the many resources we mentioned in the “tinkering beginner” section above.
Read up on php7
PHP7 has already been out of beta for a few months. Right now most WordPress sites still run on older versions of php, but that’s about to change.
Learn PHP 7, Find Out What’s New + more
Where To Find Help, Peers and Friends
Learning WordPress development is a long, difficult road, and it can be nigh impossible to try to tough it out alone. Go to these places to find answers, peers and even friends.
Stack Exchange
Stack Exchange is the Yahoo Answers/Quora for programmers/developers. It’s extremely useful, because unlike many questions you might want answered about life/relationships/business or other complicated things on Quora or yahoo answers, coding questions and problems tend to have applicable answers and solutions.
The rules of conduct are basically: Don’t be lazy and paste a url, describe your problem, and then write out the least amount of code you think is necessary to do what you want to do.
Intermediate WordPress
A great group for someone just starting out as a WP developer. This group has everyone from ‘power users’, budding developers, and seasoned developers. And to top it all off, it has a very welcoming atmosphere.
Advanced WordPress
Don’t let the name scare you away, this group is not out of bounds for a begining developer that loves WP. But there are some rules of etiquette you need to follow.
The group is reserved for advanced questions (read; WordPress development related questions that you cannot find the answer to with the help of google or Stack Exchange.) So Google/Stack Exchange first, using a few different keywords you can think of, before posting a question in the group.
It’s also a great place to just be a fly on the wall, and see all kinds of different interesting things that people are doing with WordPress, as well as learning from other people’s problems and solutions.
Relevant SubReddits
If you’re an avid redditor you could always look up relevant subreddits like LearningJavaScript, LearnPHP, or even webdev.
(If you find yourself having a lot of questions about basic code in different languages, you might want to look into refreshing or diving deeper into the languages that trouble you.)
Star Learning WordPress Development Now!
With many big changes already in place, and more on the horizon, it’s easy to feel overwhelmed or intimidated by the idea of trying to become a WordPress developer now.
But don’t listen to that inner voice that tells you you came across WP many years too late, that you missed your chance or whatever your skull-inhabiting negative nancy might have you believe. When it comes to improving our lives, whether that means eating healthier, exercising more, or learning new skills, there is no better time than right now.
I think beginner should start learning HTML and CSS, because with good understanding of HTML and CSS any one can start creating and customizing WordPress.
It is very easy to create child themes with unique design and if you know HTML and CSS, you can start creating WordPress child themes.
30 days to learn HTML and CSS by TutsPlus is one of the best free video course to learn HTML and CSS.
Very Nice Article. Great Effort 😀 Cheers 😀 And Thankyou So much 😀
Words of self-professed wisdom for developing with WordPress using the Windows OS…
I am a developer and am getting serious about developing with WordPress. OOTB Windows OS includes several application servers notably IISExpress and IIS itself. Most of us in the know host a default website in wwwroot and have learned to use the hosts file which allows us to use it as a DNS and host as many websites on the machine as we may wish; all addressable by name from a browser for example http://site1 to give you a cleverly named example. HTTP requests are accessible on Port 80 by default. Similar defaults are used for databases and other protocols we use for web development.
I have discovered that XAMPP hijacks the default ports so our other work is walled off. It pissed me off when I discovered this as I had to waste a lot of time learning and reconfiguring XAMMP assets to leave the defaults alone.
That said I have a recommendation and it is called Microsoft WebMatrix. It installs and configures WordPress lickity split and does not mangle the default pipeline on the Windows machine. It does it all including the transparent installation of MySQL and any required project configurations. WebMatrics provides a management interface to your MySQL databases as well. WebMatrix uses IISExpress as the web application server. Its all built into Windows for us and Web Matrix even includes native support for FTP and Web Deployment to a remote hosting server. Poof! Its done and we can get to the real meat and potatoes of coding for WordPress.
Except I do not use WebMatrix for coding; just the ability to rapidly install, configure and manage as many instances of WordPress projects that I want. The WebMatrix editor is clumsy and a bit buggy here and there. The reason begin its editor is not friendly to PHP. In fact developing with PHP on Windows is not that friendly at all as we have to do real work to setup and learn to use a PHP debugger.
Anyway, once I use WebMatrix to create my WordPress projects I open projects in Visual Studio and as of late Visual Studio Code that is an outstanding editor that caused me to put away Sublime that I actually bough and paid for. Microsoft can be a real friend to developers and getting friendly with WebMatrix 3 (latest and last version I might add so archive your executable installer) is a very smart thing to do for WordPress developers on Windows. No VV, VVV and none of that stuff is even required because again, WebMatrix is a click-click-click lickity-split experience. Try it out and see if you don’t agree…
Really good article. Super helpful. I intend to start learning web development this month and this has really opened everything up. Thank You.
Hi, Makori. I’m starting out on learning web development as well. Hows yours going? Any advice’s?
Its good idea for beginner to start learn wordpress