What was the project that made you feel skilled in Python?

Neil Cerutti neilc at norwich.edu
Mon May 20 11:16:55 EDT 2013


On 2013-05-19, Ned Batchelder <ned at nedbatchelder.com> wrote:
> Hi all, I'm trying to come up with more project ideas for
> intermediate learners, somewhat along the lines of 
> http://bit.ly/intermediate-python-projects .
>
> So here's a question for people who remember coming up from
> beginner: as you moved from exercises like those in Learn
> Python the Hard Way, up to your own self-guided work on small
> projects, what project were you working on that made you feel
> independent and skilled?  What program first felt like your own
> work rather than an exercise the teacher had assigned?
>
> I don't want anything too large, but big enough that there's
> room for design, and multiple approaches, etc.

I wrote a library supporting fixed length field tabular data
files. It supports reading specifications for such data files
using configparser for maximum verbosity, plus a few other
shorthand specification formats for brevity. Due to the nature of
my work I need this library in virtually all my other projects,
so I consider it a personal success and found it interesting to
build.

Similar packages on PYPI made many different design decisions
from the ones I did, so it seems like fruitful design discussion
points could arise.

For example, two major design goals in the beginning where: 1.
Ape the interface of the csv module as much as possible. 2.
Support type declarations.

The former was a big success. I've had instances were switching
from csv to a fixed file required changing one line, and of
course if a person were learning the library their knowledge of
reader, writer, DictReader and DictWriter would help.

The latter design goal was a failure. Most published fixed-length
data file specifications include data types, so it seemed
natural. But after trying to write programs using an early
version I ended up removing all traces of that functionality.

One advantage of this idea as a project for an intermediate
programmer is that the implementation is not complicated; most of
the fun is in the design.

-- 
Neil Cerutti



More information about the Python-list mailing list