Friday, October 4, 2013

teachingTech

                I write code. A lot. No, I mean, a LOT. It’s said that you need 10,000 hours of practice before you can be an expert at something. If the estimate is true, then I accomplished this with programming before entering high school. While that may be a bit of gloating, there is also a common notion that if you can teach a subject, you have to actually understand the subject. I’ve found teaching a subject like programming is both entertaining and provides a feeling of worth within my life. “Become a teacher”, no thanks. I tend to shy away from anything that involves talking to more than a group of friends or individuals. Since around my freshman year of high school, I’ve helped teach people learn to program. Prior to that, and to a certain extent, still to this day I also help people just try to understand something about computers, their cell phones/smart phones, or other electronic device.

                So why did I mention that? Because the technology field “grows at an exponential rate” while a vast majority of the population seems to fail to understand technology. Some individuals, companies, and groups try to “fix” the issue by reducing complexity within a device, operating system, or application. Others try to hide it, while still leaving it available to power users who now have to dig through what will often be perceived as a terrible UI before finding the previously “easily accessible” UI. Surely the average person has reached that 10,000 hour “requirement” for learning how to use a computer? Hardly. I’ll use my father as an example, he has worked in the telecom industry for over 25 years. Surely he knows how to work a telephone… nope. Dial these numbers and press send? He can do that. Press a button to access the phone, then dial? I’d be rich if I charged for every time I was asked where an app went, starting with the phone app, when he switches phones.

                So how can technology usage, programming, etc. be taught to an average person? For one, do it in person and as a casual conversation. By talking casually, the learner can stop the teacher at any time. But as is common in society, the learner will try to not interrupt the teacher. For this reason, the teacher must be mindful of the learner and make sure they are not overwhelmed. I recently was helping someone get a better grasp on C++. In a little over an hour, I went over file structure, namespaces, includes, “include guards”, classes, some basics about inheritance, inline, const, pointers, references, structures, scope, and public/private/protected. There are full online classes that take weeks or months to go over that same amount of material. I ended with a simple “did you get it?” he said yea, but his face said “Ahhhh, ok. So const can both restrict modifying a variable and an indicate to the compiler that a function won’t change any variables” so I told him we’d take a break.

                Second, a classic bullet point for education, let the learner pick the pace. I had originally told the person that we would go over three subjects. We went over one, because I didn’t want to rush him so we could finish the assignment (a group project). There was a period of time where I was teaching programming and game design at a computer camp (counselor in training, though the other counselors would point to me if someone had issues with programming). These are kids ranging from 6 to, oddly, 40… which isn’t so much a kid, but that’s beside the point. One wanted to get SDL, a set of APIs that made it simple to write a graphics application across multiple OSes, to work on his computer. The “beginner’s tutorial” said to specify the library and hit compile for the sample code. What it didn’t say was that there was a prequel to the tutorial that explained how to setup the library so that you could specify the library and compile code with it.

                So what’s the point? The point is, imagine if it wasn’t necessary to go over these subjects? Perhaps tech support wouldn’t be as necessary. Perhaps a 3 week long training session for a new higher would be reduced to an hour or so. Perhaps an app designer could write an app that made a user say “wow” instead of “ok, where’s the menu?” Technology isn’t easy, and when it is, it could do more, but if a user can’t understand it, how are they supposed to use it, or become an expert in it? I’m not saying that users need to master using Excel, but what if there was a better way than a “wall of text” to teach shortcuts or macros? Perhaps that two day report can be done in an hour, leaving the worker with more time to relax or pickup another coffee from Starbucks. Education that is done informally and broadly should be tailored and focused, as well as personal, that way a person or persons can actually learn a subject. Better understanding leads to better state of mind and to a more rewarding life.

No comments:

Post a Comment