I think the best ideas are somewhere in the middle of all the extreme statements and blog post titles that get upvoted on Hacker News.
I think you should learn to “code,” but not because it might make you a “coder”.
More after the break.
Learning to create software has been empowering in my life, and is why I’m currently employed at Highgroove. Almost every day, I deliver some amount of code as a part of keeping my customers happy.
That said, as Jeff points out, I’m not delivering code just for the sake of delivering code: I’m solving a problem.
Solving problems is what makes customers happy and business commence. Solving problems is more important than the fact that I usually use software to do it. I agree with Jeff that there are cases where software is not the best way to solve a problem.
That said, learning to build software taught me how to break down problems into smaller parts, think about the solutions in terms of algorithms with discrete steps, and often–though not always–to convert those algorithms into code that a computer understands and can run through more efficently than any human brain.
Software forces me to know exactly how to solve a problem, because a computer will only do exactly what I tell it to do.
Do I always use software to solve problems? Definitely not. But do I often use the same problem solving techniques that learning to code taught me in order to solve other problems in my life and work situations? Definitely yes.
Can folks be taught to solve problems without using computer code? Definitely yes. But is learning how to “teach” a computer how to solve problems via code one of the best ways? I think yes as well.
Even if someone who learned how to “code” never ends up as a “coder” professionally, they will be much better for having learned to think algorithmically and in the abstract. However, I bet that knowing how to write a quick script here and there will make them much more valuable in whatever profession they choose.