Science can be many things.
Sound like machine level programming is drastically different from data handling. Well defined unipurpose machine is constrained you'll need lots of tricks and attention to details - sometimes messiness is needed, in pure data you structure and design it. These days there are ways around it as micro controllers have become beefier in terms of performance and it is totally possible to run scripting languages (or high level C/C++ interfacing code) inside them which makes sense if you are just a hobbyist.