Gil Williamson [crudpuppyuk]
How did you begin programming and at what age?
In the year 1964 at age 22, I was embarking on a PhD Astrophysics course, when I found myself gripped by computers, and abandoned the course to join ICT at an ex-Ferranti Computing Centre in London.
What languages do you code, and in what platforms?
Over more than 45 years in IT, I have used more languages than I care to mention. I was even on the ECMA RT Group and Fortran standards committees. However, for preference, C (reluctantly C++), Java, Assembly Language, HTML, of course. Any platform. They're easily learned. At this stage, I learn a language by its differences from a language I know better.
What machine configuration and operating system do you use?
Currently several PCs running Windows XP, and a notebook running Linux, but, again, I've seen so many platforms and OSs come and go.
Please list web addresses where we can see some of your work
What motivates you to undertake a new project?
What part of project development is most gratifying to you?
I like the design stage best, but there are great rewards in successful alpha testing.
From the outside, it seems a rational job, but is creativity necessary for programming?
Absolutely, but too much creativity can be a drawback. It's bad enough maintaining your own software if it's too clever, but when you have to fix a bug in someone else's creation, it's best if it's elegantly simple.
What conditions do you need to concentrate when programming?
Classical music in the earphones.
After working for long periods of time, have you ever felt as though you were in a bubble?
When you check out code you wrote time ago, what's the main difference with respect to code that you write nowadays?
Without fully espousing OOP, because I'm old-fashioned and I know what's going on in the machine code, I find I encapsulate procedures more readily nowadays.
Do you still buy programming books, or do you learn everything from online sources?
Yes. I like a book and I use them for preference. Obviously, I use on-line sources, too. Who doesn't?
Do you think programming should be taught at the basic education level?
Yes. But it should communicate discipline to young users.
What has been your experience in marketing your software?
Generally speaking, I've written bespoke software for specific users. The vast majority of my work has been obtained by recommendation from previous clients. Marketing is a completely alien profession to me, and I haven't even tried.
What do you learn from software users?
Users can make mistakes you can't ever imagine. My partner in Amazon Systems is the most demanding user I've ever come across. She can blow holes in my software every time. If I get it past Beryl, it seldom fails in the field.
What would be your solution against piracy?
I have no solution. If you limit usage by some device or other, you generate irritation even with legitimate users when the protection goes wrong. We produced a line of WP and Accounts software in the 80s, with a dongle protection. It worked, but people hated it. Nevertheless, if you don't protect, you'll get ripped off.
Would you consider yourself rigorous in the organization of the coding that you write and on commenting it?
Yes. It's an important job of the programmer.
How do you calculate the budget for a software project?
I make an estimate. My partner doubles it, because I'm always optimistic. The method works.
What are your favourite games and on what platform do you play them?
Myst-style games on the PC.
How often do you clean dirt-buildup on your keyboard?
Um... What's that?
How do you feel when friends or family ask for your help in solving domestic computer problems?
I'm not keen. You can make enemies that way.
As machines for development, what opinion do Macs deserve?
That's one platform I've never used. So I have no opinion.
How do you protect your computer from viruses?
A standard AV system per computer, the whole network hidden behind a rather complex subnet array with firewall.
In social settings, do people become interested when you tell them you are a software developer?
No. It usually kills the conversation.
Do you work alone or in a team? Which do you prefer?
I am a kind of loner in the coding phase, but my partner is an essential part of the total software engineering process, discovering the users' needs, participating in the design, testing the result, interfacing with the client etc.
Are you one of the first to update to new software when it comes out, or do you normally wait until more stable versions appear?
I am no pioneer on new software. I have avoided a number of Windows disasters by clinging to the tried and tested old versions, and I don't do automatic updates. A change is made when someone I trust reassures me it's OK.
What is your main reason for not meeting project deadlines?
It's a long time since I missed a professionally contracted deadline. What's more likely to suffer is leisure time, weekends, family and hobbies.
In your opinion, which company helps software developers the most?
Over the piece, I think Microsoft (and Sun for Java) have been very helpful. These giants have tended acquire a bad name, but I remember the bad old days when an OS, a compiler or a database product cost thousands of pounds, and maintenance / support contracts were unaffordable.
Google and other Search engines do a great job, too, enabling you to find others with the same problem with whom to discuss it.
How many breaks per day do you normally take?
It depends. None at all when I'm in full flow, three average, one very long one when I get a block.
What advice would you give to someone who wants to become a programmer?
Use discipline. Don't fly by the seat of your pants. Don't be too clever-clever. Chop the project up into manageable, testable chunks. Test, test, test. Get help with testing. Desk check. Circumscribe the user interface so it's hard for the user to invent new methods of sabotage.