As a young boy I was taken to the British Science Museum where models (of paddle-steamers, 4-stroke engines, etc) were exhibited in rows of glass and mahogony cases. I soon learnt to spot the cases that had buttons at the front which made the thing inside "go". I called these "working models", and ran up and down the rows pressing buttons.
At school I learnt that if you throw a stone into the air with velocity v and at angle theta to the ground, its flight will be a part of such-and-such a parabola -- at least, ignoring air friction, passing birds, and so on. I was introduced to some stylised mathematical models that purportedly helped predict and reason about practical issues connected with aiming cannons, safe angles for ladders, or designing telescopes, load-speakers and what not.
I began really to wonder what applied mathematics is when employed to work on signal processing systems. I became more and more bewildered by how one decided that some grossly non-linear system (with gear backlash, friction, ..) could be described as linear, or by how one decided to use one windowing function rather than another, or measure the "fit" of a stylised diagram on paper with a piece of hot oily noisy and dangerous machinery. The deeply unsatisfying but true answer seems to be, it depends on what you are trying to do.
It seems to me that applying mathematics is about setting up models that are mathematically tractable, yet capture adequately (for practical purposes) important features of a real system, artificial or natural. We reason about the models, and this leads us to make predictions about what occurs or should occur in reality. Of course, this is not to say anything very clear, just that "modelling" is going on, and that this somehow involves mathematical formulas. It also seems to me that an advantage of constructive mathematics is that the models we construct in it are without more ado working models.
I first encountered the idea that computer programmers are doing applied mathematics in something >Tony Hoare said. I have been a programmer in industry for several years and to speak only for myself I would have been more accurately described as a deranged fool than as an applied mathematician. Nothing further from the saintly realms of mathematical cloud-cuckoodom can be imagined than gundreds of people hacking on millions of lines of computer programs. (Another thing that this remarkable "old fogey" said -- Lamport's phrase -- that has really stuck in my mind is how dismayed he was by the level of rancour that boiled up in meetings of a committee of egg-heads designing a language to succeed Pascal. I too have felt something like this. Programmers are, by and large, with rare but precious exceptions, monsters. My own behaviour towards people I worked with, below, or over has often been truely monstrous. And I'm pretty close to being a saint, believe you me. Perhaps programming is particularly attractive to infantile people; my theory is that it creates them. Programming is difficult, and most of the time people doing it are completely at sea, in a hurricane, with sharks. The prevailing state of mind of a programmer is, or should be, somewhere between panic and desparation. In panic they clutch at and desperately cling to any kind of bizarre flotsam or jetsam that floats past. The programmer's predicament is as close as anything is to the powerlessness of a small baby or infant, and so infantile rages are a natural hazard, fully justifying our elevated salaries.)
My opinion is that a key skill in computer engineering is a kind of agility or sure-footedness in working with more than one model at more than one level of abstraction. [ There are other important talents, like low cunning and ruthlessness, saintly patience, and a bleak sense of humour. ] Ultimately, the code itself ---or rather a copy of its text--- is, or is the key component of a kind of "working model". I suspect that computer programmers can be understood as working with models, aiming at one which actually works. But what is a working or a non-working model? Is it the statement of a problem, or the description of a solution? Or the statement of a problem in such a form that its solution is immediate?
An important reason for being interested in constructive mathematics is that in constructive mathematics, everything "works". All models are working models. Of course this is only in the bloodless, ideal, sense of "works" that ignores resource consumption. If only you write it down, its text can serve (in one's mathematical dreams) as an executable program.
I find the notion of a model in applied mathematics very mysterious. Philosophers generally, no matter how celebrated, seem to me to have had precious little of any interest to say about the notion of a mathematical model, or anything else that plays a role in applications of mathematics. (However, see Peter Ladkin Ladkin: abstraction and modelling for some interesting thoughts, starting from Wittgenstein's picture theory. Another rather profound paper is by Hamming, a celebrated applied mathematician. See also this paper by How do you "connect" a catenary (a mathematical curve) with the shape in which a particular chain hangs? They belong to completely different realms, or orders of being. You won't get rust in your eye from the mathematical catenary.