I've seen some recent posts on how coding might be one of the fads in education. Older teachers citing that they saw it with the rise of BASIC or HTML. Looking at how when these languages first started it was the fad to teach children for emerging jobs. Well HTML and BASIC is a backbone. A necessity for basic knowledge to complete our more complicated, but user intelligent interfaces like Python and Java.
My stance on this is I both agree and disagree with my veteran colleague’s observances. Coding, I believe, is one of the most important skills students can learn today. I also agree that our sites like Code.org, code combat, or scratch are good at hooking but it is a representation of what is wrong with STEM education. These interfaces make coding seem fun and easy, just learn some shapes, apply basic algebra, and BAM!!! You have a program or game. Yet that is so far from the truth! Coding requires knowledge. You need to learn a language, and start from nothing. Coding (as a real skill) is a pleasantly frustrating experience. It teaches "grit" (I know we shouldn't use grit but resilience is reserved for things like Scratch). To go from nothing and build full programs is amazing!
This is not to say we should ditch these fantastic intros to programming for children. We should embrace them but also not sugar coat what coding is. Coding is a true science, it is a practical application of knowledge, ingenuity, creativity, and most importantly skill. Ideas learned in coding can apply in other fields. Things like "how can we write a program to make it simple but more powerful" is the same applied concept to engineering, or science, or even how we learn in general.
As educators we must be intentional about teaching this. We must show that coding can look like a puzzle, that the right pieces must go into place to perform tasks, but we should also be teaching the vocabulary of coding, the math of coding, the brilliance of coding!