|
I remember the time when I was doing some class room teaching and one of the course is introduction to programming.
There were wide array of students that has no clue about programming, yet there are also small bunch of them have known programming since they can lift up the spoon and feed themselves.
Well, those are students variety! 
Anyway, the usual pattern goes similar between semester to semester. Either I was facing a group of students that know nothing (and sometimes they also don't want to know anything), a group of students that knows 'everything' (some do, the rest are just bluffing ...), or a mixture of both. When I start day one of the class, I found an interesting pattern of the student that doesn't know: - they are clueless on what the programming is all about (or why do they need the programming class, other than passing the subject and graduate at the later date),
- they seemed like not paying attention to most of their reasoning in life (you know, they kind of folks that keep saying ... 'you know ...', or 'I don't know ...' or something similar with that),
For students that already know something (or everything) about programming, I also stumble upon something interesting: - they immediately build the code as per what they can think of,
- most of the time the code works, but it was a long lines of code that are not always necessary

So the students that doesn't know had no idea where to start, the students that knows had too much idea to put in. This is where a teacher start to intervene  For students that doesn't know, I will only hint them what may be the potential steps and let them pick one and go for it. If the step they picked lead to nowhere, I get back to them again and offer them the remaining list of choices, or hint them further on potential next steps. For students that knows, I will only need to remind them to stick with the objective of the code. I then lead both types of students into the same point: start with something simple. Believe it or not, both groups have problem complying with that requirement  Flash forward to today, I keep practicing the same philosophy about 'start simple'. Some of you may say '.. but it will take too long to complete ...', or maybe '... skip the simple things, just go for the big picture ...'. Both are true, but if we break things down from the big picture, we will get more granular and finer result of the objectives. What about the time? Won't it be long to move from one piece to another before reaching the 'small picture'? Well, here is the only advice that I can say: if you are used of doing simple things, time is not a matter. Because you are so used to do it, it will not cause any delay  Hope this helps enlighten some of you out there that is in the middle of struggling on completing your study, finishing your projects, or even going on the 'grand scheme' of conquering the world! Happy Martin Luther King's day every one!
|