“Future is Code” is an initiative aimed to inspire the young people of Bulgaria to start learning programming by showing them how cool it is. Professionals from the IT industry usually go to their schools from their hometowns and make a 45 minute presentation on a topic of their choice.

Last year, I have visited more than 20 schools throughout the country and led various presentations in front of varied audiences. Next week, I am starting this initiative again.

I want to share with you my experience on this journey, what problems I have faced and how I have resolved them and tell you how you can take advantage of such an opportunity.

Why should you care?

Many people overlook such opportunities. The first time I was offered to make a presentation in front of a school was when people from a boot camp in Bulgaria were looking for volunteers to take part in this initiative as their representatives. The moment I saw that, I accepted and started working on a presentation students would find appealing. However, it turned out that almost no one else wanted to participate.

Due to that, after I made my first presentation in a local school in Sofia, they contacted me again and offered me to represent them full-time during the year. It turned out that there weren’t enough people who were so eager to take part in the initiative and they got good feedback from the school I went to. It was a great opportunity and I accepted right away!

That is how I got a chance to make so many presentation during the year.

But why did I accept?  Isn’t that just a waste of time?

First of all, I recognize this as a great opportunity to contribute to the young people and the IT community.

In Bulgarian schools, IT is taught, but it’s taught extremely poorly. There are places where they even teach programming, but not in an engaging way. When I was in school, I desperately needed such a presentation. If I had seen a presentation like this, I would have picked up programming a long time ago.

I see this as an opportunity to give something I didn’t have to the next generations. That is why I believe this is really valuable for the students listening to you.

Apart from that, public speaking opportunities don’t come so easily and this is a great way to get started in a controlled environment.

You can’t just lead a presentation on a big programming conference without having any experience first. You can start small and this is such an opportunity. Even if you fail, this won’t mean the world has ended for you.

But if you fail on a big conference, you might not get a chance to speak there again.

How to deliver a great presentation

Ok, so you want to give it a try and make such a presentation yourself.

I will give you some guidelines based on my experience. And believe me, there were a lot of times where I failed in these presentations. So I will tell you what worked for me and what didn’t.

Being emotional

First of all, probably the most important thing when you present in front of a young audience is to be emotional about what you are saying. Be genuinely passionate about your talk.

There was one time, where I was about to make the same presentation in the same school in front of different classes in one day.

The first one was in the morning. And once I started it, I felt I wasn’t performing well right away. There was some kind of discomfort which prevented me from being there for them and being emotional about what I say. I was thinking whether I was going to fail. I went through all the slides and I said all the words. But it just didn’t go well.

The second time, I had some time to cool down, take several deep breaths and be myself. So I went out in front of the students again with the same presentation, but this time I felt I had more energy in me. I was far more eager, cheerful and emotional. They loved it! This was the best presentation I led during my whole journey. And it was the same presentation. With the simple addition of letting go of all the thoughts about failing  and showing my passion for the topic I am speaking about.

That’s the difference emotion can make.

I know this is hard and it’s not something you can always control, but whenever you go in front of an audience, forget about the past and the future. Be there for them.  Don’t think whether you are going to fail or not. Let go and show your genuine passion for your subject.

Know your audience

Another important thing to take into account is who you are presenting to. Students from different schools may have a different view towards programming. Some might have never heard of it and not know what the heck that is. Others might study in a specialized programming school, where they study that full-time.

An introductory talk about how cool programming is might be very appealing for the first group, but it might not be so great for the second one, since they have already decided to do that for a living.

Last year, I had two different presentations I used depending on the students’ background. This year I am introducing a third one. I will show you the specific approach I used, but the point is not for you to directly copy it, but perhaps gain an idea for your own original talk.

Presenting in front of non-specialized students

This is the vast majority of the schools I go to, simply because most of the schools in Bulgaria don’t specialize in math or programming. In this group, I also put schools specialized in non-related areas as well, such as economics or electronics.

What you have to take into account here is that these students have probably never programmed before or have a vague idea of what programming is. That is why you have to focus on keeping it simple with your presentation and not going deep into explaining how to sort an array of numbers or what binary search is. Of course, I have seen presentations, where even such topics can be explored in a fun and simple way.

But it’s important to be simple and also fun. Twiddling bits might be fun to you, but it’s probably not fun to someone who has never written code before. That is why when presenting to this group, I have focused mostly on delivering something fun and not too complex, instead of teaching the people something new. Because the main goal of the presentation here is to inspire, instead of educate.

My choice of a presentation for this group is called From Gamer to Programmer.  In this talk, I tell the story of how I was a very keen gamer when I was young and how I liked playing World of Warcraft and Counter Strike all the time. I see this as a great way to connect with your audience since most of the young people like playing games as well.

Slide of Yu Gi Oh In game

Then I go on to explain how my love to programming was born from my love to gaming. Programming is my favorite game nowadays and I believe it can become their favorite game as well.

I like this approach a lot, since for most people, the rationale for becoming a programmer is to work something, from which you will gain a lot of money.

But I don’t believe that is the best way to present programming to students. Because they have the unique opportunity to start programming before they feel the urge to make a living. This will give them a chance to grow their passion for programming and do it not because they need to, but because they want to.

Presenting in front of students specialized in studying math

Whenever I have to present in front of students who study math intensely, I still try to focus on inspiring them to take up programming because it’s cool. But I try to do it in a way that is connected to what they are currently studying.

I take advantage of the fact, that there is a great drawback to the way students study math in our schools. They study it in an abstract way. They learn how to use all the formulas and how to derive them. But they never learn why they are studying all that and how they can apply it in their lives.

That is the problem I am trying to solve with my second presentation, called Making Your Own Game Using Math. This is a more interactive presentation, where I am using two games I made while studying programming. I have removed the lines where I calculate some things using knowledge from my high-school math. For example, in one of the games, I have to make the skeleton travel towards the base in such a way:

skeleton moving towards base

Here, we have to use some trigonometry to calculate the angle between the skeleton’s coordinates and the base’s coordinates. And what’s more, I don’t directly tell them what the solution is, but I let them figure it out themselves by guiding them with questions and hints. Once they tell me the answer, I go to the code and add the lines that will implement what they just told me. I run the game and show them how they made it work.

This is a great way to engage your audience and let them feel good.

Whenever the one driving the presentation is your audience, not you, there is no chance they won’t listen to you.

The impact is increased by the fact that you are connecting programming to the field they are interested in.

Presenting in front of students specialized in studying programming

This audience is perhaps the hardest from the three. The reason is that they are people, who are programming every day. Also, there is a chance that there are some, who are national or even world champions in programming competitions.

Normally, these are the best schools in the country. When you present in front of such students, you have to get serious and really teach them something valuable if you want them to take you serious.

The previous two presentations I mentioned, might work in front of such an audience, but they won’t make a huge impact as they would on the other two.

Inspiring this group to program is pointless, since they are already inspired as they do it every day. Connecting math and programming might actually work here, but normally these students are used to solving math problems of far greater difficulty, than the ones I have prepared for a wider audience.

So it has to be something concerned with programming. And the most important thing here is to teach them something new. The background of these students is that they have a huge experience in creating algorithm-type of programs for programming competitions. Again, similar to math students, they don’t usually get a chance to see the practical implications of what they are studying. That is the problem I am aiming to solve.

I have actually not had a chance to present in front of such audiences a lot. There are not much schools like these in Bulgaria. I made a presentation for such an audience only once, and I did the From Gamer to Programmer one, but I noticed it didn’t cause a huge impact.

This year, if I have the chance to present in front of this audience, I will try one I hadn’t led in front of students before. I will create a game from scratch in front of them, based on this challenge I made for my readers a couple of weeks ago.

I believe this will cause a great impact, since most of these students haven’t created their own game before. Furthermore, this is an interactive presentation again, where they will be taking part and driving the outcome of the program.

In Sum

As you see, I commit a great chunk of my time in researching my audience. I do my best to create my presentation in accordance with their needs. It’s really important that the presentation solves a problem. Otherwise, it might just entertain the audience at best, but not cause them to take action.

Choose well-suited resources for the appropriate audience

In the final part of these presentations, I leave a couple of links to resources. From them they can start learning programming. It’s important to adapt these resources to your audience again. If you are presenting in front of people, who had never written code before, then it won’t serve them much if you tell them to pick up some pretty complex programming book.

On the other hand, if you are presenting in front of an audience with advanced knowledge in programming, then you might refer them to a more advanced book, from which they can benefit, instead of pointing them to a site, where they can learn Scratch.

My choice of resources for these presentations are the following.

Code.org

A great resource for total beginners. I like the fact that you learn programming here by making your own games. And you don’t need a lot of previous knowledge. I would even suggest this site to people, who have already programmed before just because it’s so much fun.

The purpose of this site is not for students to learn programming in depth. It’s to show them how fun it is. I believe that before going deep into learning anything, you first have to convince yourself how cool it is, in order to have the will to endure the more complex parts.

Khan Academy

This is my favorite site for learning anything. It teaches various subjects, even some more advanced ones, in an extremely simple manner. The richest subject in terms of content is Math, so I usually reference them to that part of the site.

Whenever I show this resource to students, I tell them that by studying math for one year from here, they can learn it better than by studying it for five years in school. And I am serious about that.

Programming Boot Camps

In Bulgaria, we are lucky to have a lot of boot camps. There, you study intensively practical programming for one or two years. In order to keep up with this tempo, you have to dedicate around 6 hours a day for programming.

This is not really relevant for students. But the cool part is that the lectures from some of our boot camps are freely available on the internet. What’s more, they recently started creating courses, specifically targeted to students.

However, these lectures are in Bulgarian, so I won’t share any of them here. I will point you to the two biggest boot camps in Bulgaria, in case you are interested to find out what they look like. These are Software University (note: you have to toggle the english version of the site in the bottom right of the page) and Telerik Academy.

I believe such places are great to get started. Live courses can be better for newcomers, instead of online ones. I know that such places might not be available in your country. But I am sure there must be something similar. In case there isn’t, then I would point them to Coursera.

Conclusion

Future is code is a great initiative in Bulgaria. It lets you make a big contribution without having a lot of expertise in programming. Furthermore, it’s a good opportunity to start leading presentations. Doing it in a safe environment can prevent a lot of painful moments.

Look around your area and find a similar initiative. Ask to make a presentation in your local school if you don’t find one. This can be a great step forward for you. It can let you feel greatly satisfied and happy. Because the greatest joy in life is to make a difference.