I'm a scientist/engineer (not computer/software-related) that does a fair amount of coding, including numerical modeling and various kinds of data analytics. My formal training in coding is quite limited, a 1-semester course in Matlab (a high-level science/engineering language) and another semester course in real-time systems coding in C/C++. Though because I do it fairly regularly (1-10 hours/week) and because it interests me, I've worked hard to gain a deeper understanding of the both the details and the "big picture" on the software and hardware sides of systems I use.