ATGCCGGAATTGGCACATAACAAGTACTGCCTCGGTCCTTAAGCTGTATTGCACCATATGACGGATGCCGGAATTGGCACATAACAAGTAC
TGCCTCGGTCCTTAAGCTGTATTGCACCATATGACGGATGCCGGAATTGGCACATAACAACGGTCCTTAAGCTGTATTGCACCATATGACG
GATGCCGGAATTGGCACATAACAAGTACTGCCTCGGTCCTTAAGCTGTATTTCGGTCCTTAAGCTGTATTCCTTAACAACGGTCCTTAAGG
ATGCCGGAATTGGCACATAACAAGTACTGCCTCGGTCCTTAAGCTGTATTGCACCATATGACGGATGCCGGAATTGGCACATAACAAGTAC
TGCCTCGGTCCTTAAGCTGTATTGCACCATATGACGGATGCCGGAATTGGCACATAACAACGGTCCTTAAGCTGTATTGCACCATATGACG
GATGCCGGAATTGGCACATAACAAGTACTGCCTCGGTCCTTAAGCTGTATTTCGGTCCTTAAGCTGTATTCCTTAACAACGGTCCTTAAGG
Better coding practices
15 May 2018
For-profit: 0 CHF
No future instance of this course is planned yet
Overview
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
- Cleaner API design
- 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.
Audience
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.
Prerequisites
Knowledge / competencies
There is no pre-requisite for this course.
Technical
You do not need to bring anything for this course.
Application
The registration fee for academics is 100 CHF, or 300 CHF otherwise. This includes printed course material.
Deadline for registration and free-of-charge cancellation is set to 23 April 2018; 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.