DEV Community

Discussion on: What are the skills that a public school Computer Science teacher should possess?

Collapse
 
dwd profile image
Dave Cridland

Teach the kids to debug. I just can't emphasise this enough. Programming has a steep learning curve, and its rare that some code works perfectly first time, no matter how carefully you've architected it into simple units and so on. Something, somewhere, will be broken - and that's depressing when you're starting out, because you tend to lack the skills to fix it.

Moreover, if something doesn't work, and you don't know how to fix it, you're stuck. Kids who're stuck - actually, adults too - get disheartened quickly. Kids who can turn a dead end into a bump in the road can move faster, build things quicker, and keep motivated as a result.

I don't mean learning how to use debugging tools - those are great, of course - but I mean the actual process of locating the error and finding the correct fix. Usually it's a matter of applying the good old scientific method, of making a guess and looking for evidence to back that up. It doesn't matter if you use a classical debugger, or just a bucketload of print statements - that pattern to find out what's going wrong and fix it is just the most important thing one can ever learn.

Collapse
 
foresthoffman profile image
Forest Hoffman

I absolutely agree with the statement above. I would add to that by saying that documentation is also extremely important. I'm not suggesting full on code blocks with standardization and a bunch of rules to follow. That will come in time. When the kids run into a problem and find a solution, they should be encouraged to document the experience.

They should ask themselves what and why something went wrong. This kind of documentation doesn't have to be rigorous. Something as simply as an inline-comment, a post it note, or a sentence in a text file.

They will encounter lots of problems, and they should be encouraged to treat each one as a learning experience. Keeping track of those experiences will solidify them.