Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: How would you teach Python?
6 points by yourabi on Feb 27, 2009 | hide | past | favorite | 3 comments
If you had the chance to teach a sequence of Python courses (intro, inter, advanced) to a reasonably savvy audience (PHP/Java devs) in a business setting and one non-technical geared towards business folk what topics would you cover in each category?

What modules from the standard library would you cover and what external libraries? Would you cover web frameworks like Django and Pylons?

What Python code would you pass out as good examples of idiomatic python?



The way I handled a very similar situation is as follows: I went to the official Python tutorial and took a note of every major feature with a few examples from my old code and code I found in open source projects. I then went to a conference room with a lot of people, and hooked up my laptop to the projector with a Python REPL. I then went through all major topics in the tutorial interactively with people asking me as I went along to implement some examples. I tried underlining what made something 'pythonic' and what didn't as I went along. People who had laptops were going along and bringing up issues they were having.

People who attended commented on liking it.

I really despise learning and teaching via slides. I think an interactive coding session is very valuable.


I'm a newbie to Python, but I think the answer will depend on the specific interests and implementations for the group.

Are they looking to implement mathematical techniques? Then perhaps NumPy and SciPy deserve a mention. Are they interested in visualization? Check out Matplotlib.

If I were teaching the course, I would choose a couple different problems that are common to the people in the group. Then show them the tools they would need to solve it.


the intro class would more or less cover the python tutorial. Inter would cover how to mix and match language features (classes and generators, C interop) to build more sophisticated projects. Advanced would be loosely defined personal projects external libs, alternate implementations etc.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: