I've been writing programs for getting on for 30 years starting with Amstrad CPC Basic, Z80 assembler, then C, C++ and C#. Along the way I did a degree in Computer Systems engineering and worked for a few companies building scientific and engineering oriented software using C++, C# and WPF.