Kids need to learn to code: Decoding coding

A recent entry on the “everybody needs to code” bandwagon

is this op-ed piece in the Wall St. Journal written as a letter to non-code-capable, new college graduates. Basically it say no coding skill, no job.

Author Kirk McDonald whacks you with that title, then says chillax, because all you need “is the ability to know enough about how these information systems work that we can be useful discussing them with others.”

I think this is misleading. To check it out, I talked with my favorite in-house computer guy, Dr. David Sturgill, who teaches computer science at NC State and also directs the world-wide ICPC Challenge. He’s also been married to me for quite a while, and his students know me as “the other Dr. Sturgill” and vice versa.

He and I talked about his understanding of coding vs. mine. He’s an expert. I can talk to him about it, just like McDonald is talking about. But my ability to do that intelligently is because in the past I’ve had a bit of hand-on experience. I can draw abstractions from concrete experience, and we talk at the level of those abstractions.

David teaches the first and last classes in the CS major. In the first class, there are abstract concepts to learn, and he tells me that by the end of the class, the students do pretty much know how to code.

But the abstract concepts like looping and functions are grounded in concrete problems.

I think that’s the difference between coding everyone’s talking about and coding ability that is needed. It might be better to call it computational problem solving. It sounds less friendly, and it is. But it’s also a lot more representative of what professional programmers actually do and what others might want to talk with them about.

His thoughts:

  • It’s useful to be able to write things in a highly prescriptive manner (even HTML makes you do this). If you think that is hard, “your coders are going to walk all over you.”
  • It’s being able to form solutions to problems on your own that’s important. It’s easy to be able to understand something, and thus think you could have made it. But you will often be wrong. Doing creates meaningful understanding.

My thought:

If you want to show this ability for computational problem solving a great portfolio addition would be a little blog where you showcase different things you have figured out how to do, including

  • the problem you are solving
  • the solution you used
  • reflection on how it worked out
  • You may need to give yourself homework. And then maybe Kirk McDonald will hire you.

    Learn more

    What do programmers do all day? this exhaustive list from the Canadian government breaks it down.

One comment

  1. Greg Green

    I doubt Kirk McDonald would want to hire me. I’m not willing to work on SOAP (which says somewhere along the line that his company is making poor decisions about their tech stack — I don’t know how “being able to talk to coders” affects that) and I don’t live in South Asia. What does it matter if you can speak code if you are never, ever going to have a face to face with the technical staff?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s