13 March 2020
Cancellation deadline:
13 March 2020
Damian Conway
Academic: 100 CHF
For-profit: 400 CHF

No future instance of this course is planned yet


One of the major challenges in any modern development environment is "code rot". Your codebase starts out well-designed, well-structured, and well-implemented, but in six months it's a writhing miasma of inconsistent, incoherent, incomprehensible line-noise.

The problem isn't inherent to the particular programming language you're using, nor was it caused by the inherent structure of your software. The problem is that, while every developer is taught how to design good programs, and how to implement good solutions, very few are ever taught how to actually write good code. It's as though book authors were shown how to plot stories and arrange chapters, but never shown how to construct an actual sentence, or even how to spell correctly.

This full day course addresses that omission, by focusing on practical guidelines and techniques for writing code (in any modern language) that is maintainable, robust, and efficient.

The class covers:

  • Code as communication
  • Code as documentation
  • Code as affordance
  • The psychology of reading code (vs writing code)
  • Minimizing debugging by eliminating "enbugging"
  • Developing reliable and consistent coding habits: how, what, and why

In particular, it offers simple and practical techniques for:

  • Better code layout
  • Clearer naming conventions
  • Effective datatype selection
  • More robust error handling
  • Usable internal and external documentation

Taking one day to step back and focus on the fundamentals of actually writing code might seem trivial or unproductive, but it can be surprisingly powerful and effective: the unexpected key to creating cleaner, more robust, and more maintainable codebases.

This class is taught by Damian Conway, a well-known speaker and lecturer (see his official biography or his Wikipedia page). Damian already lectured at SIB several times, and consistently received amazing feedback about his courses.


Anyone who programs.

Learning objectives

At the end of this class, participants will be able to:

  • write code that is easy to read and understand;
  • use a coding style that minimize the chance of introducing errors in their programs;
  • choose code features that are efficient, minimize resource requirements and scale economically to real-world datasets;
  • choose a coding style that ensure maintainability of their projects.


Knowledge / competencies

There is no pre-requisite for this course.


You do not need to bring anything for this course.


The registration fee for academics is 100 CHF, or 400 CHF otherwise. This includes printed course material.

Deadline for registration and free-of-charge cancellation is set to 24 February 2020; participants who cancel after this date will not be reimbursed. Please note that participation to SIB courses is subject to this and other general conditions, available at general conditions.

You will be informed by email of your registration confirmation.

Venue and Time

University of Lausanne or EPFL.

The course will start at 9:00 and end around 17:00. Precise information will be provided to the participants in due time.

Additional information

This course is co-organized by the SIB and the EPFL.

Coordination: Frédéric Schütz, SIB training group

You are welcome to register to the SIB courses mailing list to be informed of all future courses and workshops, as well as all important deadlines using the form here.

For more information, please contact training@sib.swiss.