I spent last year on a deep dive into this field, after volunteering to spin up a coding class for our local middle school (12-14 yo students). I have a heavy software development background but not much experience in education as a &quot;provider&quot;. I ended up spending several hours every week hands-on in the classroom with the kids, plus time outside the classroom grading, reporting bugs in the teaching site we used to the vendor, etc. One of my own sons was in the class so I got to see something of the student side of things close up too.<p>I learned many things from this exercise that could fill several blog posts or a book.<p>But no time for that, so some quick thoughts:<p>1. It was much (much) harder to teach coding than I expected, even in the case of the very brightest students.<p>2. There is a latent expectation of quite strong mathematics knowledge in all programming education. I discovered however that this knowledge is pretty much absent in students of that age. For example analytic geometry is not introduced until 8th grade (14 or so) so prior to that if you want to show programming with lines on a 2D plane with Cartesian coordinates, you will get some very blank looks from the class.<p>3. I had assumed that teachers would be able to pick up the ability to teach coding with my help (we&#x27;re talking teachers who already handle science or computer applications subjects). This turned out to be an invalid assumption. So in order to succeed the class needed to be staffed by &quot;programming educational paraprofessionals&quot;. Such people are by their nature very busy and as a result we were not able to run the class again this year.<p>Overall I&#x27;d say now that coding is somewhat like musical instrument playing or art -- something that is well worthwhile having in school, but not a subject that all students are going to take to. It requires a similar level of commitment and investment (consider for example that the school employs several full-time highly skilled musicians and requires around 8h&#x2F;wk class+practice time for &quot;band&quot;). To provide comparable resources for a coding class would be extremely expensive.