Whether you’re a WordPress developer or not, you’re always looking for ways to improve yourself. That’s the nature of our profession. We’re always looking for ways to improve ourselves.
That said, it’s not uncommon for developers to hate debugging. They’ll get a bug report and cry in exasperation, “I want to build stuff! Not fix bugs!” But that’s not the right attitude to have towards bugs and debugging in general.
That’s because debugging doesn’t only happen when you’re fixing bugs in bug reports. We spend a lot of time debugging when writing brand new code too. How often have you written code that didn’t work on the first try and that you had to debug? (We’ve all had that happen more often than we want to admit!)
That’s why debugging is such an important skill to have as a developer. We spend a ridiculous amount of time debugging. Yet we never think about how getting better at it might also help us write better code.
Continue reading How debugging can make you a better developer
I spoke at WordCamp Atlanta 2017 on how you could use teaching as a learning tool. This is the companion article that I wrote for it. If you’re just looking for the slides, click here.
As WordPress developers (or developers in general), we’re always looking to improve our skills. We read blog posts, watch screencasts, listen to talks at WordCamps and so on. These are all great ways to learn new things.
But there’s one way to hone your programming skills that doesn’t get as much attention as it should. It’s “learning by teaching“. Teaching is a great way to improve your skills as a developer.
Now, you might be wondering, “Seriously, how can teaching make me a better developer?” People don’t tend to associate teaching with skill building. After all, how could you teach something if you didn’t know it already?
That’s a good question! It does feel like this shouldn’t be able to work. But it does! And that’s why it’s worth taking a better look at this idea of “learning by teaching”.
Continue reading How to use teaching as a learning tool
As someone that writes code on a regular basis, you must view a lot (if not all) of your work as problem-solving. After all, that’s often what you’re hired for. Someone has a problem and you solve it using the code that you write. It’s like having a superpower. It’s great! (Who wouldn’t want a superpower!?)
You start doing the same with your own problems. You break them down into smaller micro-problems. You then try to find solutions to them.
Explained like this, you’d think that this a great strategy. And you’d be right! But where you have to be careful is how it affects your mindset. You start focusing on only searching for solutions to these micro-problems.
That’s why so many coding questions follow the formula “How do I do X with Y?” You want a solution to your problem so you can move on to the next one. You continue this pattern of searching, finding and copying solutions until you’re done.
This puts a lot of pressure on the online learning material as well. They need to answer these questions to stay relevant. That’s why you can boil down so many tutorials to “How to do X with Y”
That’s why this relentless focus on problem-solving can come at a cost (after all no superpower comes for free). You become so addicted to finding solutions that you’re not writing code anymore. You’re just integrating (or duck taping) these solutions that you found online together.
But there’s a creative aspect to coding. You’re not just an integrator, a problem solver. You’re also a writer, a painter, an architect. It’s important to never forget that when teaching programming.
Continue reading Creativity and teaching programming
As you lay there, you try to remember how you got into this mess. It seemed like it was going to be so easy. You’d heard that object-oriented programming was worth learning. That’s what some dude (or wizard!) told you anyhow.
Next thing you knew, everyone else was convinced. There was no time! You had to get ready for battle. You had to study your enemy: object-oriented programming.
You were lucky though. Your enemy was well known. You had articles, tutorial series, videos that were a quick Google search away. If that wasn’t enough, you could take classes, workshops or even bootcamps.
You thought, “There is a way to slay the beast!”. Your energy and your motivation had never been higher. You yelled to the heavens, “I shall slay you OOP beast. Your time has come! Charge!!!”.
Continue reading Why can’t you learn object-oriented programming?
As developers, programmers, software builders, solution creators, we tend to focus on the output of our work. It’s the code we write. It’s also the outcomes that we create for ourselves, our clients and/or our work.
How do we get better at it though? That’s what we care about in the end. The obvious answer is to write more code (duh!). What I’ve learned goes against that common logic.
Here’s what you need to do. You need to read more code. Yup, you heard that right. This is what’ll give you the largest skill gains. That’s the secret sauce.
Continue reading Read more code
This all started with a thought experiment about WordPress recruiting. Something I’ve done a fair amount of in the past.
Let’s say I’m looking to hire a WordPress expert. What defines that person as a top tier WordPress developer? What knowledge or characteristics am I looking for?
WordPress powers a large part of the web. It’s also the livelihood for thousands of developers. Those are amazing things, but it also creates problems. One of them is that it’s hard to evaluate your or someone else’s skill level.
So we’re going to look into that. It’s worth noting that there’s no definitive or objective answer to that question. We’re all biased. We have our own opinions on what it means to be an expert.
Continue reading On becoming a WordPress expert