In my opinion, it is very easy to teach the basic principles of software development and design. Algorithmic thinking is much harder to teach. A CS background sets you up to contribute ideas and produce efficient solutions to challenging problems. A software development background sets you up to implement ideas and solve problems quickly.<p>Obviously these are generalizations, but that&#x27;s what I have seen in my experience.