What tends to get overlooked when discussing STEM skills is that we need to teach algorithmic thought in the same way as needing to teach math, not just arithmetic. What you don't know the difference between math and arithmetic? You're not alone and even many programmers don't know the difference between code and algorithmic thought.

DevOps. It’s meant to be a marriage between Agile software development and enterprise systems management comprised of Development QA, and Technology Operations. Often we hear about DevOps more as a sort of dysfunctional family, complete with bickering and miscommunication between the developers and those in operations.

These days, top-down modular programming is pushed aside by object-oriented programming when it comes to teaching how to program. But there is a place for both methodologies to co-exist and it solves the ever-present problem of how to begin.