Teaching Programming
zaidox.com
zaidox.com
The only programming class I ever took was taught by an unmotivated teacher who only taught programming because he needed the money. That was in high school. I started out excited about the amazing power programming gave me to bend the computer to my will and make it do cool things, but the teacher's lack of enthusiasm covered the class like a dismal fog, and his intensely boring lectures and make-work assignments totally dampened my enthusiasm. I finally dropped the class.
I didn't go back to programming until years later when I was taking grad school in an entirely different subject and I rediscovered programming on my own. I taught myself C and ended up spending all night coding and debugging and loving it, to the point where I neglected the actual subject I was supposed to be learning.
While I've never taught programming to others, I spent several years teaching technical classes to engineers in the semiconductor industry. I also taught English as a second language for five years. From these experiences, I've learned the following:
Learning to program is really fun. Because programming is really fun.
Teaching any subject is fun if you enjoy the subject matter, have a passion for teaching, and if you teach people who want to learn and have aptitude in the field.
So if teaching programming is hard (instead challenging, but fun) it could mean you either don't enjoy programming, you don't have passion or aptitude for teaching, or you need to find motivated students with an aptitude for programming.
If the problem is that you don't enjoy programming, you need to find a different subject to teach.
If you don't have passion or aptitude for teaching, you need to get out of teaching as soon as possible, because you are likely ruining your students' first experiences with the subject matter.
And if your students appear unmotivated or lack aptitude, you should consider deeply the possibility that this could be because you have one of the two issues above, and repeat until the problem is resolved, or until you are really, really, really sure the problem isn't you.
If you are absolutely sure the problem isn't you, then you need to consider finding a teaching situation where students are motivated, and you need to discover methods to gently encourage those who genuinely lack programming aptitude to focus their learning in areas where they do have aptitude.
But before doing that, maybe it would be good to take one more round of considering if maybe the problem isn't you.