One of the Training Team goals for 2023 is to “release a roadmap of new content (that isn’t tied to WP releases/features)”. To do this, we need to look at how we can plan out specific Learn WordPress content that is curated in a way that creates a learning journey for the user.
Last year, I started thinking about what skills and knowledge a WordPress developer should have. That list turned out to be quite long, but what did become clear was that defined pathways of learning are needed, in order to plot developer-focused content for Learn WordPress.
After spending a few months creating content for Learn WordPress, I’ve started narrowing down these learning paths for the new WordPress developer. In my estimation, there are generally three “levels” of knowledge and experience, namely beginner, intermediate, and advanced.
What defines the beginner level?
The beginner level can be defined as the fundamental knowledge that a new WordPress developer should know, from having no knowledge to being able to develop with and extend WordPress.
To put it another way, if you could send someone to a WordPress university for a three-year period of study to earn a degree in Developing with WordPress, what is the fundamental knowledge you would want them to have learned by the end of their first year?
It should be noted that there are two types of developers that this definition could apply to.
The primary audience for this content is developers who are new to extending WordPress. Perhaps they have built blogs and sites using no-code tools, and now they want to broaden their knowledge of how to build and extend WordPress. They may have some coding experience elsewhere, but they have never coded specifically for WordPress.
The secondary audience for this content is developers who are experienced in other development platforms. They could have come from building websites and web-based apps using other programming languages, content management systems, or frameworks. They already understand much of the foundational knowledge needed, and now merely need to learn the WordPress way.
What does the beginner-level learning path look like?
With all this in mind, this is my proposal for the content needed to create a learning pathway for the beginner-level WordPress developer:
- A brief overview of how WordPress works
- The WordPress file system
- Creating basic things like posts, pages, and users, and changing settings
- Permalinks, and how they work with the rewrite module on both Apache and Nginx
- How a dashboard page request loads
- How a front-end page request loads
- The programming languages of WordPress
- HTML
- CSS
- JavaScript
- PHP
- MySQL
- WordPress development fundamentals
- Setting up a local development environment
- Action Hooks and Filter Hooks
- The WordPress database
- WordPress coding standards
- Enabling the debug.log
- An introduction to developing WordPress themes
- Classic themes vs block themes
- Theme requirements
- Templates and template parts
- The WordPress Template Hierarchy
- Classic themes – Template tags and conditional tags
- Block themes – patterns
- Block themes – theme.json
- Enqueuing CSS and JavaScript
- Custom functions
- An introduction to developing WordPress plugins
- Plugin requirements
- Creating custom post types and taxonomies
- Using post meta
- Enqueuing CSS and JavaScript
- Introduction to developing plugins securely
- Preventing common vulnerabilities
- An introduction to Roles and Capabilities
- How to create and apply user roles
- How to create/modify/remove capabilities
- How to check user capabilities
- An introduction to the WordPress REST API
- Using the WordPress REST API
- How to make an API request, differences between GET, POST, PUT, and DELETE
- Interacting with the WordPress REST API
- available endpoints, schema, authentication, creating, updating, and deleting data
- The WordPress REST API under the hood
- overview of how the REST API works, detail about design decisions
- Extending the WordPress REST API
- creating custom routes and endpoints
- Using the WordPress REST API
- An introduction to developing WordPress blocks
- Using JSX vs vanilla JavaScript
- Setting up the block development requirements
- Building your first simple block
- An introduction to WordPress multisite
- Setting up a Multisite network
- Managing a Multisite network
- Building plugins and themes that support multisite
- The differences between developing for multisite vs single site
- Debugging in WordPress
- Enabling the built-in WordPress debugging options
- Examining the state of your PHP code using
error_logandprint_rorvardump - Examining the state of your JavaScript code using the
consoleobject - Popular debugging plugins
- https://wordpress.org/plugins/debug-bar/
- https://wordpress.org/plugins/query-monitor/
Next Steps
My next steps would be to review the content we already have on Learn WordPress, as well as those items in production, against this list, to see what is already there, and what still needs to be created.
However, I’d first like to get some feedback from the Training team and the wider WordPress development community. Does this list cover the fundamental knowledge the new WordPress developer needs? Are there items here that might not be necessary? Are there any items that you might consider more important than others?
Please leave your feedback in the comments before Tuesday 21 March 2023.