@Charred - I think it’s important to explain the difference between what we call computer software engineers and computer programmers. Yes, the terms can be used in the same contexts, but software engineers are usually involved with the entire life cycle of a product, including coding, testing, etc., the whole nine yards.
Computer programming is just a small part of software engineering—just the coding part. That’s why we use the term “programmer analyst” to describe an analyst who has to program from time to time in order to slice and dice his data. Obviously, he is not creating a complete product.