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.
- 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.
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.
What do programmers do all day? this exhaustive list from the Canadian government breaks it down.