June 8, 2018 was a special day: about 50 students came to visit Criteo, discover our company and learn about code and infrastructure with close monitoring from experienced engineers.
Why holding “Aujourd’hui, je code!”?
At Criteo, we have a lot of coders and we thoroughly enjoy the creativity that computer programming unlocks. Programming is a lifelong learning experience, which is enjoyable whether you start earlier or later. But starting earlier is clearly the best!
The Women in Engineering group organized the first edition of this event in November last year. For this second edition, we decided to share our knowledge of programming not only with younger girls, but also including a minority of boys – to invert the statistics of women and men in coding world – Criteo R&D is no exception to this stat.
Our group of engineers/teachers also decided to rework some of the coding exercises, adapting them with past feedbacks from previous sessions, such as changing Facebook to TV Shows and including a brand new exercise on Infrastructure. Now our team is more than ever inspired to do an exercise with drones and we will try to make it happen for our next session.
A day to discover the world of engineering with some women
Following the success of the November edition, we renewed the partnership with the CGenial foundation to find volunteers from underprivileged high schools. Thanks to their help, more than 40 students, aged between 15 and 17, from a variety of backgrounds came with their teachers. And close to 40 Criteo women and men volunteered to help for the teaching sessions, to present Criteo, explain a programmer’s daily life and to find the best food and goodies.
The day started with a nice breakfast and goodies
Muleine presented Criteo and the R&D at large. We then splitted into five groups for the first workshops sessions. After a delicious lunch (Bagels!), the students were guided through a tour of the office, during which a few Criteo teams presented their work:
Recommender systems 101 – The recommendation team explained how a basic recommender system works through a live demo. Then, they raised the challenges faced at Criteo to build a large scale recommender system that can make product recommendations in real time (less than 50ms!).
Integrate – The Integrate team explained how the software that our clients use to validate Criteo banners works, interacts with other software and they explain the various jobs behind those web applications.
Analytics and Data Reliability Engineering – The DRE team explained the journey of the data at Criteo. Coming from different websites or internal programs, data are cleaned, organized and distributed to different databases. End users can use this new data for analytics purposes or investigations.
After a second coding session, the day ended on the amazing Criteo rooftop, a nice opportunity to take group photos and selfies with the Eiffel Tower and Sacré-Coeur, with a soft drinks cocktail & some sweets – strawberries chocolate, cookies, smores… -.
Organizing all this required a lot of hard work, with a large part of the effort put on creating programming and infrastructure lessons tailored for our visitors.
A hands-on approach of computer sciences
We reused most of the coding exercises of the previous edition. The Facebook explorer was replaced with TV shows, and our Infrastructure team added a role-playing game, so that we were tapping on diverse creative skills:
Sonic Pi: creating music with code
TV Shows: writing code to explore TV Shows data,
Crazy Insta Filters: creating their own image filters,
ColorSwitch: build a working game,
Aujourd’hui je infra: and finally discover the (wonderful) world of infrastructure.
With two sessions of one hour and a half each, the students were given the chance to discover different aspects of computer sciences and programming. Most of them had only very basic, if any, experience with coding. We wanted to give them a real feel of the coding experience, and most online programming platforms were too constrained for that. Scratch is great, but targeted at younger kids.
Some of us had experience using Sonic Pi for teaching. It is very useful to teach basic concepts to beginners, and it allows for infinite creativity. We loved it and wanted to use it.
When we decided to build our teaching programs, we had the following ideas in mind:
Allow for maximum creativity: they should be able to play indefinitely with the program,
Have a diversity of creative skills involved: we had music, we wanted something around images/videos, storytelling, gaming…
Make them implement code of increasing difficulty,
To limit the risk of blocking on “stupid bugs”, create a working program, and let them modify it:either to add some new functionalities,
either to make it work again after removing some key elements.
That is how we came up with all those playful exercices.
With the close help of the Criteo volunteers, the teens discovered new uses of what they learned in maths or physics classes, like how to use simple multiplications to create new colors or how to reproduce the feel of gravity laws to make a ball move in a game.
They learned game programming tricks, how to adapt the code to animate objects, handle the mouse, connect widgets. They learned how colors work for digital images and how they can play with pixels. They could colorize the output of the webcam with fancy flag colors, and were shown how to use face recognition to add cat ears on their face! They learned how to extract statistics from TV Shows feeds. They also learned how to write music as code. They had an introduction on PC architecture by physically re-building a server we tore apart. They were initiated to the world of dynamic routing in computer networking via a role-playing game where each participant incarnates a router. It allowed them to grasp applications in the real world of mathematical concepts like the theory of oriented graphes (Dijikstra).
Most importantly, they learned that programming was much more than just sitting behind a computer and writing line after line of code. As a lot of teachers were women, they could relate to us and see how obvious it was we were passionate and happy programmers.
Students and Teachers were grateful and really enjoyed this day, we will keep reitering this event and always try to improve it!
These students are at a turning point in their lives as they are thinking of a career choice. Even though they might not choose coding as a career, at the very least they will be able to take an informed decision. At the end of the day, seeing the bright smiles on their faces was the best of rewards. We had a very positive written feedback from a few students. Here is an extract, loosely translated from french:
Chafik Baba-Aissa, maths teacher at Lycée Jacques Brel: “The visit happened in the best conditions. According to all students, it was their best school trip! A lot of students are boosted to succeed their Final Scientific High School year.”
Christine Grosjean, teacher at Lycée Hélène Boucher : “I have reached my objectives: to raise awareness on the jobs diversity in a field (here digital), meet engineers who are passionate about their jobs, try to code in a playful atmosphere, give the will to explore code and sciences. The day was really well organized.”
Give it a try! The Crazy Insta Filters exercise is now available on Github
Thanks to the Criteo Women in Engineering group for the valuable feedbacks and improvements on the article!
Post written by :
Women in Engineering
Our lovely Community Manager / Event Manager is updating you about what's happening at Criteo Labs.See DevOps Engineer roles