OK, I’ll admit, the title of this post is a bit confusing. How does a 7-year-old teach a guy in his 30’s how to code? Well, he didn’t really. I was teaching him, but it was through the process of teaching him that it taught me a few important lessons. Hopefully, these lessons can help others even if you’ve been coding for years.
Teach your kid to code!
You don’t need to be a developer to do this, but seriously teach your kids how to code. It is a great problem-solving skill to give your kids, and I’ve found it to be a pretty awesome way to bond with my son.You don't need to be a developer to teach a kid to code. Click To Tweet
He is always very excited to show me the latest projects he has been working on. Even if the project is just him making a character do something goofy, he’s still learning.
What resources are available?
A few months ago, we signed our son up for a code camp that was taught at a local library. He absolutely loved it.
The camp was through Prenda, which as far as I know is only local to the Arizona area. There are other similar organizations around the country that teach similar code classes.
Don't wait! https://t.co/uceVI4iZLv
— Lindsey Miller (@LindseyMillerWP) August 29, 2017
What does teaching a 7-year-old have to do with me?
My son has been using Scratch (mentioned earlier) a lot over the last few months. If you’re unfamiliar with Scratch, it is an easy to understand interface for creating interactive art, stories, simulations, and games.
Here’s an overview video from Scratch:
Every time my son would finish making a game he would want me to share it with his grandparents. Actually, he wanted me to share it with everyone we knew, but I had to scale him back a bit 🙂
What I ended up doing was creating a WordPress site for him to be able to share links to his games. That way he can tell the grandparents to go to his site and there would be a list of all the games he’s shared. He won’t have to ask me to send links for Every. Single. Game.
Creating his own website
Prior to having his own website, he only knew that websites were things you found on the computer. He had no concept of what domain names were, what hosting was for, or anything. We’re talking an extremely basic understanding.
I decided to have him sit with me and watch the whole process. He got to see how you get a domain name, and how it gets pointed to the right place (DNS). While he still doesn’t understand the whole inner workings of it, he knows what a domain name is and that websites don’t just magically appear on the computer. Good enough for now.
In a short period of time, we had an entire website set up.
Next, I wanted to give him a way to put up links to all of his games.
The theme I chose to use on his site had widget areas on the home page, which is where he wanted the links. This provided us with, what I thought was an easy way, to have him insert links to his games. The standard HTML widget is fairly intuitive, and I though it would work just fine.
I soon found that anytime he wanted to add a new link he’d ask me to do it. It was difficult for him to remember to click on Appearance (we’re not worried about appearance, this is information), then Widgets (what the hell is a widget?). Even harder was finding the correct widget area to edit. This theme had 8 different widget areas. 🙁
Eventually, he stopped asking – he was getting frustrated with what I thought was a simple task.
Stretching my developer skills
This made me think about ways to make the whole process even easier for him.
I ended up creating a plugin just for the purpose of easily adding links to be output in a widget. When I sat down to do this, I had a few objectives:
- The back end editor must be accessible on the main dashboard.
- When using the HTML widget, I had to remind him which link(s) to click to edit a widget every time. If the editor is on the dashboard, he won’t need to go anywhere else. No navigation other than logging in.
- There couldn’t be any confusing settings.
- Even clicking the Insert/Edit link button in the HTML widget was confusing (he said the button looked like a fidget spinner).
- It shouldn’t require selecting text to insert a link.
- Inevitably, he’d select half of the words and get frustrated that it didn’t work the way he wanted it to.
- He needed to be able to edit the link text and URL easily.
- He needed to be able to delete links easily.
- The editor needed to be “hidden” by default so he didn’t accidentally delete something.
What I ended up with
The plugin I created made a new widget with one setting – a title. Once this title was set, no one would need to touch anything in the Appearance > Widgets settings again.
The plugin also created an admin dashboard widget where he could enter in links to his games.
I removed all of the other dashboard widgets from his site’s dashboard (At a Glance, Activity, Quick Draft, WordPress Events & News, etc.) When he logs in, the only thing he sees is a dashboard widget with his games.
Now, whenever he enters a link to one of his games in the box, it will show up on his site’s homepage in the new widget.
What I learned
As someone who works with WordPress every day, it’s easy to forget that there are people who don’t know how to do what I may find to be simple.
If this were my website, and I was adding links, the standard HTML widget would be just fine. But this isn’t my site, and the end user (my son) doesn’t have years of knowledge to rely on.
Now when I work on anything that gets released to the general public, I need to challenge myself to “dumb down” how things work. I’m not saying that users are dumb. I’m acknowledging that I shouldn’t make them go through extra steps to accomplish simple tasks.
This is going to take a conscious effort on my part to get right. It’s too easy to assume that everyone who uses WordPress knows everything that I know. It’s harder to make something work for everyone no matter their skill level.That’s what I’m going to strive for in the future.
That’s what I’m going to strive for in the future.