About

Welcome to Panela, Matt Harrison's take on mostly Open Source, Linux, Python, innovation in those areas, other buzzwords and Dick Proenneke. It comes complete with the illustrations as needed. Note the opinions expressed here are merely my opinions and not the opinions of my employer.

about Matt

Calendar

««Nov 2009»»
SMTWTFS
1234567
8910
11
12
1314
151617
18
192021
22232425262728
2930

Mailing List

My RSS Feeds








How would you teach python to your co-workers?

posted 2006.04.26 Wed
I've been asked to throw together some impromptu sessions on python for some developers at work. So I'm asking the lazy (python) web what would/have they do/done? My current plan is to be in a labtype enviroment (everyone will have a laptop/desktop). All attendees are already developers. The first session will probably be just walking through the first chapter of Python Essential Reference, which does a good job of covering the basics. A later session might deal with debugging, coding style, gotchas and testing. Any suggestions, tips or experiences for migrating experienced developers? I've taught 80 year olds and 15 year olds python, but not developers. Hopefully this will prove to be easier ;)

tags:    

links: digg this    del.icio.us    reddit




1. Brett left...
2006.04.26 Wed 1:24 pm

Have them run through diveintopython on their own, or I guess you could do it with them and add to it, if you really needed to.


2. Jay P. left...
2006.04.26 Wed 1:26 pm

The book "Dive Into Python" (available for free online at http://diveintopython.org/) is written with experienced programmers in mind. You may want to follow the path laid out there.


3. glenn left...
2006.04.26 Wed 8:55 pm :: http://muchonada.com

I'm presently converting the entire development staff ( 9 people ) to python.

There has been a pertty mixed reaction up front. Some people get really nervous when they loose their braces, or dollar signs, or static typing.

The way I won them over was to show them things they already knew how to do in c, perl, tcl and java, but this time in python.

Then I showed python introspection, doc strings and doctest.

Lastly, I explained how I could now solve problems in 1/4 the time that they could otherwise and how that meant that I'd finish my tasks and get first pick at the cool problems while they were still trying to cast strings to buffers to streams and fussing with build scripts.

That's probably the wrong way to do it, but eveyone has shiny new python books from apress on their desks now.

A couple weeks later and many really love it. Though there are a few who seem happier doing maintenance on old code, but you need both types for a balanced team anyway.

As far as teaching goes, I used a conference room two days a week for several weeks. I basically led them through solving a couple complex work-related tasks using a projector and lots of discussion and 1 on 1 help. So I would start with an explaination of of my approach towards a solution, think out load as I worked a chunk of it out, then went person by person helping them with any things that didn't work the way they expected. Each cycle took about an hour and a half.

It was definitely slower than I had anticipated. I think the tutorial on python.org is pretty good, personally, but the examples there and in books help, but I find the nitty gritty of solving more complex problems with which my group was familiar to result in more memorable lessons.

I wouldn't mention that you'd taught it to 15 and 80 year olds to developers. They'll probably tend to dismiss it or make even stronger associations with visual basic. I mentioned that python was like vb for unix and I think that became a stumbling block for 1 or two people.


4. dado1945 left...
2006.04.26 Wed 10:29 pm

Show to them that with python you can do anything in theory (even OS http://unununium.org/introduction). I would show some aspects of web programming, scheduled tasks, windows programing (I mean COM, ODBC - what is useful). Or even better ask them what is impossible in python in their opinion and show them elegant three-line solution :)


5. Baczek left...
2006.04.27 Thu 3:06 am

Remember that they are lazy, too, so show them something that currently takes a lot of time and do it in 3 lines of code ;)


6. gvwilson left...
2006.04.27 Thu 3:40 am :: http://www.third-bit.com/

I've been building open source course notes (supported in part by a grant from the Python Software Foundation) to introduce people without much formal background in computer science to basic software engineering skills. I use Python (naturally ;-), so the notes include a quick overview of the language. You can find 'em online at http://www.third-bit.com/swc2 --- I'd enjoy hearing what you think.


7. M Lauer left...
2006.04.27 Thu 7:16 am

I brought about 10 developers from Java to Python. I found that some like the immersion approach, and they used Dive. Others liked the more analytic approach and they used Learning Python. Everybody got a week to work through their book, plus meetings to share and discuss. By the way, we started Test Driven Development at the same time, so they also had a day to do the first 17 chapters of Kent Beck's book on TDD. I think the TDD exercise was the most important step, because it taught them a new way to program with less code, and it's so much easier to write all the tests in Python than Java.