I have seen far too many people that just cannot or are unwilling to learn due to the subject being rather uninteresting or boring. They tend not to want to learn things they don't understand because it requires effort and dedication.
For example, people wanted me to teach them how to create robots, android apps, games, etc. but when it came to programming and using database, no one really wanted to pay attention or cared about it, and what was worse, they complained about how difficult the assignment was even it was just creating a simple calculator program. I gave them tools to solve the problem. They had everything needed to create the program on their own without hand-holding but it seems like it just wouldn't happen.
Is this due to a lack of experience in teaching based on the method used or is this the student's fault for not even trying to learn? If this looks like a problem with the method of teaching, how should I improve or inspire learning?
In my opinion, you shouldn't ever try to spend time educating someone without ensuring that the person actually wants to be educated. There's a difference between, say, "wanting to be a programmer" and "wanting to learn how to program". You could ascribe the first sentence to literally anybody. Who doesn't want a free skill? It's only the people who also fit the second description that you should educate.
The difficulty is that people usually don't know the difference between those two things. I often don't know it: I once decided I wanted to learn how to play the keyboard. Picked one up, played a few tunes, but could never find myself interested in sitting there for hours and playing the same tune over and over until I had mastered it. Turns out, I didn't really want to learn how to play the keyboard: I only wanted to play it.
So, it's up to the educator to help decide whether the person really wants to learn it. There are a few ways to do it. First of all, be honest: don't advertise your education with what the students will learn, but how they'll learn it. Because that's actually what they'll be doing. So when people want you to learn them to teach games, tell them from the get-go what they'll be doing, how terse and repetitive and basic it can be. But then, during the education, ensure that the end goal is always in sight. So if you're teaching somebody to make a game, instead of them applying their skills solving some math problem ("compute the nth prime with property y", e.g.), why not give them a piece of code from an actual game, and have them solve a small, intermediary step - and then show them the result, the before and after effect of their contribution?
1) Students should come to you for how you'll teach them, not for what you'll teach them,
2) During the study, always keep the end goal in sight. Don't let them drown in repetitive theoretic stuff ... let them .... swim in it, I guess, always taking in fresh air whenever they need it.