Teaching Is The Best Way To Learn

Earlier this year, I gave lectures to undergraduate students at IUT de Clermont-Fd (France). I taught web development using PHP as media (slides & sources), and security, mainly focused on Web/APIs security (slides & sources).

I introduced not only best practices in web development, but tools such as Git, Vim, Vagrant, Puppet, and GitHub. Each student worked on a Virtual Machine, so that they could do whatever they wanted. Except a few weird issues, that was really interesting because pushing updates, from my point of view, was really easy. The workflow was pretty straightforward, they all started by running git pull && vagrant up and that was it!

Students wrote their own micro-framework in PHP relying on components such as the Symfony2 ones and managed thanks to Composer. They wrote unit tests, and functional tests too. Some published their code on GitHub, and most of them did a great job by building a web application combined to a true REST API, serving content in the best format for the clients.

As for the security lectures, I tried to give an overview of well-known security topics, including authorization, authentication, some authentication mechanisms, and how to secure the web.

That was a really great experience! I learnt quite a few tips on how to be better at teaching. I use to talk to skilled people, my vocabulary is really technical, and that was the first thing I had to change while explaining something to students. They never did web development before. Introducing high-level concepts using simple words is not easy, but it is a really good exercise for those who want to improve their communication skills. Also, as I needed to be able to answer various questions, I had to know my topics by heart, including how things worked under the hood. So I studied a lot to be better while performing.

I got positive feedback from students, and that was cool as it was my first year as teacher. I enjoyed teaching things that took me a few years to learn.

Actually, I think I open sourced my knowledge.


By the way, if you found a typo, please fork and edit this post. Thank you so much! This post is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

If you like this post or if you use one of the Open Source projects I maintain, say hello by email. There is also my Amazon Wish List. Thank you ♥


Fork me on GitHub