Last week I was a mentor in two day Python workshop. The main goal of this event was to show people who didn't have any prior experience with programming that coding can be fun. Text below is note to myself that I took from conducting such workshop.
Table of Contents:
As there were 6 mentors we decided to split a work between us. I took part with basic Python types and data structures.
I decided to split it into smaller pieces like variables, ints, floats, strings, lists and dicts. After each subsection, there were tasks to do. I didn't want it to be a huge pile of information and then some exercises. Such workshops make me sleepy.
What I found out: split the material even more! Introduce 2 or 3 concepts and let people try it. For example, I presented lists - their basic syntax and then I jump to taking data from such list. How can this be improved? Split. First: basic syntax, one or two tasks to find yourself comfortable and move on. Then the same with indexing.
Take your time - it's better to leave something than letting people didn't know the basics.
For me as a person who codes for some time all examples where trivial but in front of you sits people who didn't have any experience with programming before! If you throw at them a lot of concepts in the same time they will be confused.
For instance, functions and variables. We presented our mentees simple function result that should be equal to a variable. We tell them to write a body of this function. They started and started asking questions. Should this function return variable or something totally different?
For explaining it's better to use simple examples.
In my culture, there is such feeling if you ask stupid question everybody will be laughing.
To bypass it I decided to tell people: ask every question that you want to ask! It's time for you to learn!
It helps a lot - as people are naturally afraid of looking stupid. Reminding them that there is no such thing as a stupid question allows to learn more.
Everyone on the workshop uses Windows. Sometimes it can be a hustle to teach not only Python but command line. To avoid it we used Jupyter notebook. It is easy to setup and fast. How to install one on Windows? We decided to use Anaconda as it already has jupyter installed. After installation, we didn't have any complaints about dev environment which is awesome!
Sometimes I had this thought: I prepare everything, I try with all my power and still they didn't understand!
What I did - I acknowledge this feeling and told myself - what if it's not a problem with them not understanding but with my process of explaining?
Then I sit with every person who had a problem and started explaining it one more time. Without feeling frustrated.
This is something that I learned from django girls coaching tutorial. If you there was a problem I told a person when it can be found and that's all! Not touching keyboard to fix the problem as they will lose interest.
Helping is very important but it's the best when people learn by doing mistakes not by observing how you fix their mistakes by you.