How to actually write a program?

Peter Kleiweg in.aqua.scribis at nl.invalid
Sat Sep 4 00:31:57 CEST 2004


Mike C. Fletcher schreef:

> That (called test-driven development) works very well if
> you've got a general idea of what you want to do, and your
> project is not about user interface design or the like (where
> test-driven development can be quite messy).

I got a lot of programming experience, but not with user
interfaces.

> There are lots of other ways to do it.  I was originally
> taught a method that was taught in the very early days of
> computers wherein you figure out the whole program in your
> head/on paper, running it in mental emulation until you're
> sure you've figured out the major features of the program.

This is how I often work, though I may not work out all the
tiniest details in my head.

> It tends to impress the heck out of certain people (you have
> to be able to hold entire complex systems in your head to do
> it, and that takes a lot of practice that most people have
> never mastered), really speeds up planning meetings, and you
> can do it in the shower, in bed, while cooking, etceteras, but
> it's a lot less common these days.  It's also pretty slow and
> error-prone :) .

I am a good programmer. On the other hand, I'm a lousy software
develloper. It took me a while to realise that those are two
very different things. I can write programs that do very nifty
things, but if I have to rework it so people who don't know what
it is about can use it, then I get stuck. Structuring it,
putting all things together in a sensible way, making it
accessible through a graphical user interface, which of course
has to run on Windows, while I work on Linux... not my cup of
tea. At least, discovering Python gives me the hope I might be
able to manage more large scale applications.

I have been doing it the hard way, programming C with only
Emacs, no integrated software development platforms. This makes
for very efficient and powereful tools, running directly from
the command line (encouraged by using Linux), but you can only
go so far.

I started programming twenty years ago, with GW-Basic and
assembler. Later C, Prolog, Oberon (briefly), PostScript,
Tcl/Tk, JavaScript, Perl, ELisp, R. For me, the question is not,
how do I start programming, but how do I become a software
devellopper. I have peeked at wxPython and Boa Constructor, and
feel like a beginner, like I know nothing about writing
software.

-- 
Peter Kleiweg  L:NL,af,da,de,en,ia,nds,no,sv,(fr,it)  S:NL,de,en,(da,ia)
info: http://www.let.rug.nl/~kleiweg/ls.html




More information about the Python-list mailing list