- A roadmap to becoming a modern WordPress Engineer What you need to know to start working in an environment that follows current best practices and tools
- 42: Or, the key skill needed for everything
- Who is a beginner for this roadmap?
- The goal of this roadmap
- The constraints for the roadmap to WordPress Engineering in an Agency environment
- The constraints to the roadmap to WordPress Engineering for Freelancers
- Deliberate constraints for effectiveness of the roadmap
The main question
This post series is an attempt to answer the following question:
Consider a beginner with zero experience working with WordPress (or any complex application in any programming language). What do they need to learn to be able to start engineering solutions using WordPress?
I’ve been working on this problem myself and for quite some time now. That question assumes two things:
- that everyone has the same idea of what a beginner is
- that engineering as a word that has special meaning compared to developing, programming, building or coding.
In the first few parts of this series, I’m going to explore what I mean by a beginner, at least for the sake of this roadmap. I’m also going to explore the difference between engineering and any other form of WordPress development. A lot of steps in the roadmap are aimed at creating a purposeful engineering mindset.
What is this roadmap for?
Once we do that, I’ll lay down a journey, kind of a rough guide, which such a beginner could follow to pick up all the skills and knowledge necessary to start engineering fast, stable and easy to maintain solutions in a modern production environment.In this post, right now, I’m going to just list the steps. I’ll discuss each step in a post of its own, later in this series. They are organised in the order that I think works the best.
Who is this roadmap for?
If you are a somewhat experienced developer, you could use this roadmap to revisit the gaps in your knowledge and skills.
If you are a beginner right now, this can act like a guide to self-learning or in choosing a commercial training program that will help you get started.
If you are an educator or a leader interested in your team’s growth, you could use this to create a roadmap for your team, put in some supplementary links of your own (for reference) and use that to create a learning program for each member or a whole team.
- Always ask, “why?”. Print it, stick it on the wall in front of you, where you work. Do whatever it takes to remember that and keep asking why?
- Find a mentor or guide. They could be a more experienced freelancer friend, colleague or someone else who’ll help you find the answers to your whys. Make sure that they are honest enough to say that they don’t know, when it is so and are open to finding out answers with you when that happens.
- Get familiar with your coding environment. This includes your IDE & other tools on the computer you write code on.
- Learn all the steps and components involved in loading a URL on a browser. This is your typical request-response cycle. You basically learn how a website (WordPress or otherwise) works in established technical terms.
- Learn what the internet is and how does it all work. Understand why the it is the way it is. This also includes understanding concepts like HTTP, REST and most importantly, the concept of what a resource is (as in a Uniform Resource Locator).
- Understand the server deeply even if you are never going to set up or manage servers. It is the environment that your code is going to execute in. Understand how and why the environment affects how your code is executed. This will help you build fundamental concepts of security, optimisation, caching, error handling, etc.
- Understand memory and objects deeply. It’ll help you understand how to make your solutions extremely fast. That is what matters the most.
- Learn the fundamental concepts, semantics and mental models of content, even if you’re never going to write content. You basically learn how machines understand or derive meaning from content. You’ll also learn how content is organised and structured on the internet. You’ll also relate content and resource. This way you’ll learn how content is managed.
- Learn the fundamentals of design and UX, even if you never want to design anything.
- Find out why WordPress is the way it is. Read it’s code, analyse it’s database structure. Relate it to what you have understood about websites and content. All the answers you need during development are usually inside code. Also, you’ll begin to identify good code.
- Build a theme, at least once, following an established set, modern workflow, even if you never want to build a theme ever again. Don’t worry about picking up the the best workflow. Any established one will do. Once you figure out one workflow, you’ll know how to figure out the others. In time, you can find another or even create one on your own that works the best for you.
- Build a plugin, at least once, following an established set, modern workflow, even if you never want to build a plugin ever again. You’ll always be working with plugins. You’ll support them, debug them, fall into stupid conflicts. You need to know how plugins work.
- Build a complete solution for someone (yourself?).
- Optionally, repeat steps 10 – 13 for major plugins like WooCommerce, BuddyPress, etc. For each of them, build a theme that supports them and build an addon that extends the plugin.
Always ask, “Why?”
This rule applies to the overall discussion in this series, as well. What I say above should answer your whys. If it doesn’t, please ask me in the comments.
If you’re not going to ask why and blindly follow this roadmap because I say so, you might find yourself completely confused and lost or you might realise that it didn’t improve a thing.
Also, I may have flaws in this roadmap. Your asking why may just help me fix it and make it better for others who read this, in the future.
Oh, BTW, here’s a little poster for you to use. It’s linked to a pdf that you can actually print for an 8″X8″ poster: