Deliberate constraints for effectiveness of the roadmap Setting some boundaries, that's all

Why place limits?

Vehicle Restriction Sign

How many chapatis can you eat in one meal? I can have four. If you give me ten, I might somehow get myself to stuff them. What if you gave me fifty?

Learning is pretty much like that. There’s no limit to the number of things that you could learn. However, I can confidently say that I still don’t know a lot of things and need to learn them. The more I learn, I realise there’s much more that I still need to learn.

Plus, for every small thing there are multiple alternatives and then there are alternatives within those alternatives. If we start learning everything, we’ll probably end up nowhere. That’s why it’s important to set some limits or boundaries for our roadmap to WordPress Engineering so that it finishes in a reasonable amount of time and we learn things that we can start using straightaway, in production.

Constraints for Effectiveness

  1. When there are more than one way of doing something, you should only learn one. You can explore the alternatives later. Anyways, what is prevalent today will not be tomorrow. Don’t worry about the best or the most efficient way. It is more important to understand why something needs to be done. If you understand that very well, you can pick up whatever latest technique to do the same thing comes up tomorrow.
  2. The learning environment must be as close to the development environment as possible. So, no more browser based editors. You’d need to use a proper IDE and tools.
  3. The development process during learning should match the process in production as closely as possible. This means using Git, following coding and documentation standards right from the first few lines of code, not as separate modules.

This way, as soon as you complete a stage (say Theme Development), you can get into producing themes while you continue with the rest of the roadmap. Second, you won’t learn things in a different environment and write code in a way that’s different from how you’d have done it when working on an actual project. It’ll save you days and weeks of time transitioning from learning to production.

What do you think?