Russel Winder

I started out being a theoretical physicist. Having completed a physics degree at University of Sussex, I went on to a PhD at University of Liverpool. I still like the title of my thesis "Heavy quark flavour production in hadronic processes" but it is a conversation killer at parties.

All the time, I was getting less and less interested in the physics and more and more interested in the programming and the process of programming. So I switched from physics to being a Unix systems programmer. This was fun, but the scope for interesting research on programming languages and the process of software development was low. So I got back into academia.

From 1983 to 1996, I was on the academic staff of University College London (UCL), ending up as Reader in Software Engineering. I taught programming, software engineering, and human–computer interaction. My research was in parallel, object-oriented programming languages and the psychology of programming. I used C++ as a teaching language, but there was very few good books to support students, so I wrote Developing C++ Software published by Wiley.

From 1996 to 2001 I was Professor of Computing Science at King's College London (KCL). I continued to teach programming, and continued the research on parallel, object-oriented programming. However I also started some research activity in health informatics. Java was the language used to teach programming. Again there were no good books for students so I wrote Developing Java Software with Graham Roberts (who was teaching Java at UCL), also published by Wiley.

For a number of reasons, I decided to move out of academia to become Chief Technology Officer of OneEighty Software Ltd, a startup building an implementation of the Java Virtual Machine for use is small embedded systems. Unfortunately, we ran out of money before the orders came flooding in so that venture had to end.

Since 2005, I have been working as a consultant, analyst, author and trainer, focusing on the programming languages Java, Python and Groovy.

I have recently started a new consultancy practice Concertant LLP which provides consultancy, analysis and management work in parallel and concurrent systems. The rise of multi-core technology makes every computer a parallel computer!

Since 2003 I have been of the opinion that Java is not a good language as a first programming language. Instead I think Python is a much better language for this purpose. Sarah and James were of the same opinion, which is why we ended up writing Python for Rookies. Even after writing the book, we are still believers in Python being an excellent language for teaching programming.

My personal website is at

Please email us with your comments about this book.