Some students think that programming courses are tough and hard. I personally know some teachers who say to their students that programming is not a cup of tea. How much percent this thing is true that learning programming is tough. According to me if people interested in this then nothing is difficult for them.How can I convince my students that programming is not as difficult as they think?

up vote 3 down vote accepted

Careful! That's a pretty aggressive statement, and is liable to make folks who really do have trouble feel pretty bad about themselves.

You may want to take a look at this question. Whether you believe the answer to ultimately be yes or no, you will find that even the most adamantly "no" teachers admit to some number of students who have enormous difficulties

Interest is highly important, of course, but how your brain is wired matters a great deal as well. Don't discount real difficulties that people face. That's the kind of thing that causes people to beat themselves up mentally, when they're alone with their own thoughts. Interest is important, but may not be sufficient, and dismissing the problems others face can be unkind.

Everyone finds some things hard. It differs for different people depending on their background and their interests. But it also depends on the quality of their teaching. More important, some people catch on to new things more quickly than other things and more quickly than other people on a given task.

I wouldn't be likely to tell a student that this is so hard that you aren't going to get it. That would set an expectation that would be hard to overcome. But I might want to say that this will take some time and effort to master.

Good teaching of programming (like most things, actually) requires lots of practice and lots of feedback. You don't learn it by listening to a lecture about it. You have to actually do it. It is like a lot of physical activities, in fact. If you want to learn to swim, you need to practice it. A lecture isn't going to make you a swimmer.

On the other hand, they won't find it easy just because you tell them it is easy. That could be frustrating to those without the needed background. You need to show them.

One way to do this effectively is to flip the classroom in which the activities that they do when face-to-face are not listening to lectures, but actually programming, building a project. This can be most effectively done in small groups (pairs) so that they can teach one another to a certain extent and you have fewer interventions you need to make when someone goes off course for a bit. Their "homework" isn't to do some programming assignment, but to read (book, online, handout) what would otherwise be a lecture. You can test the readings with simple, short, quizzes that don't contribute much to the grade. You don't want to stress memorization, but practice, hence make the quizzes count for relatively little compared to the advancement of programming projects.

One interesting thing that students can do for "homework" is to read a program that has the features you want them to know and ask them to write a few paragraphs explaining it. Writing of any kind is always useful for students and this will let you see if they get it or if you need to spend time on certain details. I'll note that much of what goes on in a traditional lecture doesn't really need to be said, as nearly all of your students will already understand it without the lecture. They still need the practice of course, but knowing who needs extra help is important.

Alternatively, students can repair a program with minor errors of the sort that is the current topic of interest.

  • "It is like a lot of physical activities". Or learning how to play a musical instrument. Or woodworking. Or writing (even in your native tongue). Some people may be naturals in any of these areas, but most people aren't. They need instruction and practice, practice, practice. – njuffa Nov 25 at 21:21
  • @njuffa those with the most 'ability' are the most in need of instruction. – Scott Rowe Dec 9 at 16:51

According to me if people interested in this then nothing is difficult for them.

This is a dangerous viewpoint, and I strongly urge you to reconsider. Many students find programming difficult. If you tell them that it should be easy, then you're going to dissuade them from pursuing it.

"This programming stuff is really hard for me. My teacher told me that it should be easy, so that must mean I'm really bad at it. I guess this isn't for me after all!"

Instead, I think you should acknowledge that yes, programming is hard. It's normal to feel frustrated or to not immediately know how to solve a problem. Then teach them how to approach that: break problems down into smaller steps, debug, research, read through documentation, etc.

How can I convince my students that programming is not as difficult as they think?

Again, the first step is to acknowledge that their feelings are valid and normal. Being frustrated is a normal part of programming.

Then focus on why they're frustrated. I think many students find programming difficult not because of the syntax, but because of the logic involved. Programming is really a process of breaking down a goal into smaller sub-steps and then identifying the syntax that accomplishes a particular sub-step. Even if students memorize syntax, this process is often new to them, and that's where they get stuck.

I agree that getting students over the initial "programming is too hard / too nerdy / too mathy for me" hurdle is very important. For that, you might look into doing the Hour of Code challenge. Have students get something up and running, and they'll realize that it's not as hard as they thought it would be.

But after that, you need to acknowledge the aspects of programming that are difficult, and introduce strategies they can use to solve the problems they're stuck on.

  • 1
    Right, I have had students try to memorize their way to programming, which is about the same as trying to memorize your way to being a jazz improvisation virtuoso. If it could be memorized, we would just build a computer system to do it. It is 'hard' because one must grow beyond knowledge, to other human capacities not so easily described, or taught for that matter. – Scott Rowe Dec 9 at 16:48

In addition to the other answers: I'm usually telling my studnets, that a programming language is easy to learn - the basic vocabulary is just about 10-20 words and in their language courses they learned more words in a shorter period of time. Even the grammar is much simpler then in natural languages.

Usually they are a bit shocked when I'm telling them in week 3-4 that they are now knowing everything they need to build their own word / windows / racing game / ... So there must be something else!

I try to give them small assignments and enough time to play around with every new concept. once they feel that they can accomplish even little things, the motivation to learn more is better.

  • Once you know how to arc weld you can build the Eiffel Tower. In principle, anyway... – Scott Rowe Dec 9 at 16:50

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.