Education is an essential part of the migration to OO and we need training programs to provide this education. A single program would not be suitable for everyone, because of the different skill levels required. Skill levels are divided into the following 3 broad areas:-
  1. Core Programmer

    These must know essentially all of C++ and be competent in OO analysis and design.

  2. Physicist Programmer

    These must know sufficient C++ and OO design to be able do develop physics applications within the OO framework provided by the core group.

  3. Physicist Analyser

    These must know sufficient C++ and ROOT to allow them to analyse MINOS data using ROOT.
Although different in degree, the training programs for the Core Programmers and the Physicist Programmers are the same:- It is assumed that the Physicist Analyser will not be able to devote the same level of effort to training. For this group, the Companion is the main training resource. There are a number of training paths that can be followed in almost any orders:-