Recently my wife and I were asked to go to a meeting at our kid’s kindergarten school. This is a pretty common procedure in Spain for either public or private schools. The gathering allows parents to know the processes their young children go through, teachers explain to us how they do their job, and the whole thing fosters a collaborative, education-focused environment between everyone.
This year, one of the group dynamics expected from parents was to describe and explain the importance of our job to the young class.
While seemingly trivial, this task actually made me feel a little bit weird. Not that I’m not proud to be a software engineer (I am) or that I was a geek cliche afraid to actually speak publicly. In fact, I’m always happy to speak about programming to anyone. When I found out I had to talk to them, I immediately started thinking about how I could explain all the cool things I do to five-year old kids. But I did have some anxiety about how to approach the subject.
What I decided to do to was to solve this assignment like a programing problem. I split it in different little problems that were easier to solve and then plugged them all together to get a big solution.
My Son, Language Problems, and Dark Times
The first problem I faced was to decide which language I should use. No, not choosing which coding language. It was a decision between English and Spanish.
You see, we live in Madrid, Spain, and are Castellano-speaking Spaniards. (Castellano is what most people call regular Spanish.) Since my son was born, though, I’ve only talked to him in English. So if I got to his class and started explaining my job in Spanish, I was sure he’d be confused and probably focus on the speaking language differences instead of the content.
So I decided to speak English. And so what you will read below, in this English-language article, is exactly how I speak to him about coding. If you are a programmer with young children, I think the process I use can be quite useful to explain it to them as well.
It is very important to me that my son understands as much as he can about my career, as early as possible. Why? Because he was actually the spark I needed to focus on my programming skills early on.
There was a period in my life a few years ago when I was not doing well in my career. I felt frustrated because I wasn’t learning coding at a fast-enough rate and my projects were not as sharp as they could have been. At the time, I was primarily working as a security guard at Campus Madrid and was learning coding on the side. Because I was learning by myself, I questioned myself every step of the way. I guessed how long each task was going to take and even if I was learning the right things. I was trying hard but I simply wasn’t focused enough on being the best coder I could be.
But then my wife and I had our first child, Adrian. Not only was he a beautiful boy but he shifted something inside of me that forced me to push myself as much as I could. I had to be a responsible father and a good example for him in the future, so I had to push myself to not give up on my own dream. I ended up working harder than ever and eventually made myself the best coder I could be. Now, Adrian and my daughter Emma are the mutual pillars of inspiration in my tech career.
So now you can understand why speaking at a small kindergarten showcase was more than a simple assignment for me. Yes, I’d be speaking to a bunch of cute, unassuming and non-judgemental five-year olds. But it was crucial for them to understand my career.
This is what I ended up telling Adrian and his classmates in school.
What Is a Developer?
- “A developer is a person that can speak a computer language.”
- “Computers are machines that can make calculations really, really, really fast.” (Moment I start running in the class to show fast, fast ,fast… like Sheldon Cooper pretending to be the Flash)
- “Since I’m here (first position) to touch the other wall, a computer has calculated lots of information and go to sleep because it was boring.”
- “Computers are cool in mathematics but awful in language, that’s why we speak to them with translators (program languages), and the developers learn these intermediate languages to say the computer what calculate.”
Let’s Program me!
Next, I place a toy somewhere difficult to get to in the classroom and ask the children to guide the robot to the toy. “But where is the robot?” they will ask.
At that moment, I will put a silver box around my body and another one around my head. At that moment, I will have become a robot, a computer with legs that will do whatever you ask it to do.
When one kid says “go ahead and move this way,” I will go ahead and move to that place. When I hit the classroom wall eventually, I will keep going ahead, saying “error, error, error, a wall is on my path… error, error, error.”
Then, when one of them will say “turn around!” (they will probably yell it), and I will do a barrell roll on the ground, cause she or he didn’t tell me exactly how to turn around. Bye, bye, body box! But the destruction of the box will make an impression and prove the point that as a programmer you must be specific in what you want the robot to do.
At the end of my bot presentation, I will further explain how those literal commands are incredibly important.
One of my main points in the presentation is to ensure that they can have a lot of fun as I do while coding. And I do love to children laugh. But maybe a more important goal is for them to understand that a very obvious problem that can be difficult for a computer can be made easier and solvable for it if they split the problems.
The Ginger Code
My son Adrian has ginger-colored hair so because I love him I and I try to connect my work to my family as much as possible, I created a coding language, alongside my friends, in his honor.
You can try the “Ginger Code” yourself.
The kindergarten exercise has given me a lot of ideas about how to further explain the programming business to Adrian and his friends as they grow older. After all, I strongly believe that programming will be just as important as English equivalent in the 21st Century. So I expect my son and daughter to at least stay curious about it throughout their lives.
When I was growing up, it was really important to learn English to be able to have a successful career anywhere around the world. But now and in the future, programming will be needed.
Adrian and Emma may or may not work in programming as adults, but to start but I’d like for them to be able to understand what their father does at his job. And maybe they’ll be able to program their own devices in the future if they need to.
So if I succeed at keeping them curious, I’d like to move on to explain what a loop is, basing my examples in real life moments like when they eat:
- “While meal is not little enough keep chewing” for example.
Or explain the conditionals with traffic lights:
- “If traffic lights are red, do not cross”
- “if traffic lights are green, you can cross”
And I will love to explain to them the most important aspect in coding:
- “Split big problems into a lot of little problems and you can figure out the answer.”
Looking at this latter example also shows me why I like programming so much. Creating manageable problems is not just a great example they can use to understand computers. It’s a way they can figure out how to deal with difficult issues in their life — and ultimately succeed.