Teaching
PythoN to
Non-Coders
Fabrizio Romano
@gianchub
EuroPython 2014 - Berlin, July 2014
A little about me
-
Hold a Master's Degree in
Computer Science Engineering
from the University of Padova
- Live and work in London
(Senior Python Developer) for TBG
- In love with Python since 2009
Why this Part of the presentatioN?
Short answer
They asked us when we submitted the abstract.
Shorter answer
We hope it's interesting!
What are we going to talk about?
A few guidelines about training
-
What a Trainee should do
-
What a Trainer should do
How the training was
delivered to our Manila team
-
Tools used
-
What can be delivered in ~12 hours
The manila team (Amazing peeps)
What a Trainee should do
-
Listen - With a capital L
- Work hard
What a trainer should do
Achieve excellence
in the following...
Above all, smile and be patient
Because if you don't, they will
get defensive and feel uncomfortable,
and you won't achieve much.
Never take anything for granted
Give them
the Concepts
the Lingo
the Ideas
the Reasons
Use the gps technique™
They need to connect the dots from A to B.
If they can't follow you...
Recalculate the route!
Ask what isn't clear
Choose different words
Provide other examples
Set Goals
- Should be reachable
- Start gently, gradually increase difficulty
- Skip the boring/trivial stuff (if possible)
Deliver outstanding quality Material
- You have to enjoy it as well
- Only what they need to know
If they want more see if you have time. If not, give them pointers
- Focus on their needs
Not on what you like to show/explain
- Refer to the real world, something easy to relate to
I.e. did you know that a file object is not so different from a fridge?
Adapt
Every group is different,
adapt speed and difficulty
according to the audience.
Have extra materials ready
&
Know what you can cut.
Entertain Them
-
Communicate your passion
- Make them laugh and have a good time
- Don't be too strict!
Use mistakes and errors as a tool
to explain things again, maybe better
The next one is...
Only for the brave!
Flush your ego down the toilet!
You're doing it for them, not for yourself.
Don't worry!
In the end you will be enriched
more than anyone else.
tools that were used
-
Ubuntu
- Bash shell
- IPython Console & Notebook
- Libraries
(custom analytical interface, pandas, numpy, etc.)
- MyPaint, with a cheap graphic tablet
("a picture is better than a thousand words")
- When remote: Skype or Google Hangouts
The material
Delivered in ~12 hours
-
1 Introduction session
- 4 Python/IPython Notebook sessions
- 3 Data oriented sessions
- 1 Q/A session at the end
Introduction Session
Overview on main concepts, data structures, looping, branching, functions, classes, namespaces, etc.
These are the dots that will be used to go from A to B
- High level
-
Important because
it provides context
Python/Ipython sessions
The basics, with pointers to what
couldn't fit in due to time constraints.
-
code reuse and functions
- looping and branching
- handling files
- Python data structures (dict, list, tuple, etc.)
- main builtin functions
Extra material
Each in their own dedicated notebooks
- Advanced dictionaries
- Function arguments
- List comprehensions
- Slicing
- Broader introduction to builtins
Data oriented sessions
One example divided in three sessions
- Fetching data until you have it
ready in a DataFrame
- Data cleaning and mangling
- Output: stats, pivot tables, histograms, plots ...
Extra materials
For the data oriented sessions
- JSON
- Regular Expressions
- String manipulation
- Datetime objects
That's it!
I hope you enjoyed it as much as we did.
Please don't hesitate to contact us:
Maciej Sobczak - maciej.sobczak@tbgdigital.com
Fabrizio Romano - @gianchub
But!
Before we open for questions...