Path: csiph.com!usenet.pasdenom.info!aioe.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Neil Cerutti Newsgroups: comp.lang.python Subject: Re: What was the project that made you feel skilled in Python? Date: 20 May 2013 15:16:55 GMT Organization: Norwich University Lines: 47 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: individual.net yXlAOblO7a0UshZamk6b3QOafk1gTi8iUNs95vT5EHc87cvW1O Cancel-Lock: sha1:3gtLNhdDRKpIsW1zFKJ9hMQmzJE= User-Agent: slrn/0.9.9p1/mm/ao (Win32) Xref: csiph.com comp.lang.python:45621 On 2013-05-19, Ned Batchelder 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