Topics that HEP Developers Should Know
We need a discussion forum for this training
Can we make a case for total cost to build a case for needed training, with our MatLab trained
Unix commands, shells, 4 editors, standard config. files for them, copy-paste, bash is default shell, get a cheat sheet for unix commands
What is a structured programming language, compilation unit, etc. C++ preprocessor, compiler, Linker, shared lib, static library, Debugger
Training needs to be fast enough for a 3 year student time
Toy Experiment, goes through the basic steps of a HEP workflow and it is used to demonstrate basic concepts, Rob will send an email around with the link to the workbook they are developing
Layers are needed in large scale systems, and not meant for obfuscation, you need to learn how to navigate the layers even though not all
Object ownership and lifetime, scope management, DO NOT use globals everywhere
C++ pointer classes , anti-train the root training, or any scripting language
Write more smaller functions
Class represents one abstraction, and the functions have one purpose, should be easily documentable
stop in the middle of a function and examine the memory layout, stack vs. heap
Best Practices in the context of experiment frameworks
separation of data products and algorithms
physical design, layer decisions that were made by the experiments, avoid circles, extensions with lots contributors needs this, I just want something simple, get over it, it's not possible
How does a disk drive work, how does a network perform so that people can have a feel for limitations of these systems... blue arc problems hurt everyone
How to write a good bug report, send in a recipe for how to reproduce the problem is important
1. C++ skills, should be easy
1b. design advice is harder
2. Framework rules should inform the design advice and practice, use of template not how to write them
Should find good reference manuals for the language. Don't tell them about the old stuff, try to avoid over-using auto
3. new algorithm in an experiment subsystem where all of C++ can be used