Tuesday, June 12, 2018

Reflections on Programming and Teaching

Mark Guzdial has an interesting post called Reflections of a CS Professor and an End-User Programmer in which he compares end-user programming and professional programming and how.if/what we teach for the two. I started a comment but decided it didn’t really fit there.

I'm pretty much in the same boat Mark is in. While I have been a professional programmer, these days I mostly write code to use as examples or to solve my own little problems.

I like to think that I bring some of what I learned and did as a professional into my little projects but it's hard sometimes. I was talking to another teacher today about a program that he wrote that we both use to track our course schedules. He gave me a new version and said to let him know if I  found anything weird because he was so used to it that he probably subconsciously ignores some things. That is why a lot of end user programs are only usable by the programmer. I know that some of my projects are the same -  not usable by anyone but me.

I'm starting to think that is a problem. But do I really want to spend the time to make them usable by others when the problems they solve are so personal and individual? Perhaps the best I can hope for is that they don't embarrass me too much if someone else sees the code.

I teach beginners. Real beginners who usually have no prior programming experience. I am not turning out professional developers. Oh sure some of them go on to internships with what they learn in my classes but I would not call them profession ready. I can’t teach them all that in a semester or even three semesters of high school. That doesn’t mean I can afford to teach them to be sloppy.

The basics I can deal with. Good naming, planning ahead, top down design, breaking down problems into small, manageable chunks, and some good error handling. I’m pretty careful about the code I show them. Some of my personal code I wouldn’t show them while others I would. I remember showing a game I was working on to some students once. One of the students remarked to the other “look at that! He’s already coding preparation for expansion.” That I can teach.

So where do I come down on this? Well, I think I can lead by example if I am careful. And maybe I should take my own code more seriously.


Garth said...

I try to convince my programming kids to NOT become programmers, at least as a career. I want them to learn enough programming so they can be in charge of programmers. I have only worked in one shop with programmers. They were all a bit weird and did not seem to enjoy what they did for a living. Turn over was real high. A sample of one is useless but it left an impression.

Alfred Thompson said...

I loved programming for a living for about 15 years. Did it for 18. I know many who enjoy it for much longer.

Garth said...

My place was full of direct quotes from the Dilbert cartoon script. It was also the movie Office Space in real life. The were some programmers that did enjoy what they were doing but they were in the research department. The coders in the active products area were living in hell. Editing some one elses poorly commented code with a deadline.