EuroSciPy logo

EuroSciPy 2013

Brussels, Belgium - August 21-24 2013

Making Programmers - Proposal for a Panel Discussion.

Mike Müller

Fri 23 2:30 p.m.–3:30 p.m. in Dupreel


There is no doubt. All scientists and engineers need to have basic programming knowledge to solve their daily problems. Unfortunately, there is still a large number of people of this group having very little or no usable programming skills.

Although these people often understand that programming skills would help them considerably but they tend to think programming is extremly difficult and can only be done properly after an extended computer science education.

These are some experiences gained in teaching programming to scientists and engineers:

  • Make clear what programming can be used for and that it can be really useful for many types of problems.
  • Reduce fear. Often people are afraid that they may seam stupid in front of experienced programmers.
  • Simple is better. It seems really simple examples that solve a relevant problem are best for the beginning.
  • Show relevance. Solve a relevant problem. Parsing data files in different formats often useful.
  • Reduce the options to a minimum during the first introduction. Even though Python has the "one preferred way to do things", there are still plenty of not so often used features that can be very useful but make the language appear big and complicated. "Less is more" is often the best approach here.
  • Call it something different from programming like "templating" or "controlling". Even such a simple technique as using a different name for what to do may help in some cases to make the topic more approachable.
  • Integrate into the existing environment. It is important that Python can be used in combination with whatever tools used so far. Spreadsheets are a good example here.
  • Small steps. Really small units are good for retention.
  • Clarify that using libraries is often an order of magnitude simpler than writing it.

These topics can serve as a entry points for the discussion.