Ok, So What Went Wrong?

The day of the Hello World meet-up came. It was a very intense day. In the words of my teaching partner:

[The day was about] the humbling experience of teaching kids how to code.

Before I continue, I would like to point out that a lot of things did go according to plan during the day. However, being an engineer I tend to focus on the bad stuff. The things that annoy me. Things I know could be improved.

That being said; let me now briefly mention some things that didn’t go according to plan…

Age Range

The day of the lecture (or should I call it the lesson?) came and the kids arrived. I say “kids” because they were not as old as I had expected.

As previously mentioned, I expected chat bots to interest teenagers but instead our participants where more like 9–13 years old. This obviously affected how acquainted they were with “common development tasks” like using a terminal, installing applications and creating files with weird names like Procfile and .gitignore .

Pre-teens also require more attention and more explicit instructions, which forced us to be more hands-on instructors, which introduced delays.

The fact that the participants were younger than expected also affected how well we could communicate with them. The kids were surprisingly good at English and most of them could talk effortlessly with both of us. Having said that, I still spoke Swedish most of the time since it was in fact the mother tongue of the kids.

Lesson Learned:

Try to get an idea of the participants ages before the session. Lesson Learned:

Either only talk Swedish or make it clear during sign-up that not all instructors are fluent in Swedish.

Unusual Format For Instructions

We had found this really cool library for creating web-based slide shows and we used it for the slides we showed on the big screen in the room the session was held in. This worked well.

We used the same slide show tool to write the step-by-step instructions for each of our four challenges. This did not work well. The instructions had to be split into multiple slides and some participants did not immediately understand how to get to the next set of instructions.

Links to the instructions were shown on the big screen in our room. The kids could then read the instructions on their own computers by simply typing a bit.ly link. At least that was the idea.

Unfortunately it was easy to misspell the addresses and this added unnecessary confusion and frustration for something as simple as getting some instructions.

Lesson Learned:

Do not try to be clever with instructions. Step-by-step instructions should be given in plain documents, either electronically or on paper.

Rushed Formatting

In an effort to produce fancy slide-based instructions we didn’t have time to ensure consistent styling across all slides. This resulted in some console command being printed in a body text font whereas some were shown in a mono-spaced font. This made it hard to know what was instructions and what was source code.

Lesson Learned:

Make sure everything follows the same style guide.

Confusion Ensues When Running Out Of Time

We noticed quite early that we would have trouble finishing on time, or at the very least that many of the participants needed more time than expected to get started.

When more than two thirds of the session had passed we still hadn’t gotten past the halfway point. Not good. We tried to jump ahead in the plan by skipping the third task and moving on from the second to the fourth, and final, task.

This wasn’t a big problem since we had prepared one source code package for each task and each such package was self-contained in the sense that you can download any one of them and get something fully functional. However, skipping one step also meant that we had to change our instructions in the middle of the session. Not ideal.

Lesson Learned:

It was a good idea to have pre-packaged the necessary source code for each task but in the end it didn’t matter that much since we were short on time anyway. The lesson learned is perhaps then that things always take more time than expected. We should have known this but we humans are really good at deceiving ourselves when it comes to time management. Lesson Learned:

When it started to dawn on us that we wouldn’t have time to finish all the steps we became noticeably distracted for a while and the kids obviously noticed this. This lessened their interest. The thing I take away from this is to always keep the spirit up. In our defence we did try to do that but it wasn’t enough.

Say What? This Is Not Your Computer?

Two of the kids had trouble using their computers for one very simple reason: They have never used them before.

One participant usually used a computer with Windows but this particular day he had borrowed his father’s Mac, meaning that everything from file management to console windows was unfamiliar to him.

Another participant had borrowed a vanilla Windows tablet from Hello World which, obviously, didn’t have the required tools pre-installed.

A third participant could not connect to our office wifi. In the end we solved the problem by enabling the wifi hot-spot on my mobile phone and letting him connect to that one instead.

Additionally, some of the computers had Python but not Pip (the Python library manager). We had identified this as a potential risk but considered it to be minimal since we had tried installing Python on both Windows and Mac without running into this problem.

Lesson Learned:

Not all participants will have read, understood or completed the prerequisites. Deal with it. Plan for it.

Wait… What Was My Username Again?

Developing a chat bot like ours requires you to keep track of a some things:

cloud platform account credentials,

your Kik or Telegram account credentials,

the bot’s own credentials.

It is easy to get these confused when you are a beginner.