I agree with the author here in principle. Being able to parse out what someone actually wants from what they ask for is key in pretty much any business type interaction. And as the author argues what is often the case is that people want to learn how to build something not Computer Science.
I have a sister in eleventh grade (16-17) who is interested in programming. But if I tried to teach her programming by going straight to data types and algorithms her eyes would glaze over. That's not say she is dumb or traditional CS education is hard but it's certainly not the most interesting of topics.
However I think the argument against starting by building things the author barely even glosses over. The ecosystem and tooling to build things has become so complicated that it makes it hard to start. Someone just learning programming is probably going to be bored to death by ints and bits, but they are likewise going to be equally discouraged by the amount of work outside of coding it takes to get any non-trivial web app up.
And honestly the same goes for mobile development too. It's slightly less ridiculous but then you run into the issue of things that can't be explained simply and get relegated to "magic" you don't need to worry about... until you do.
Nice article. We should ask people wanting to "learn to code" what they mean and what they hope to get out of it. And in some cases the truth may be that it will only work if they spend a lot of time learning. If they want to create a very simple game they can learn game-building tools and use that. But that will probably not help them build a really advanced game with a scalable back-end. If that is something they need they might have to spend years learning and building. Or they might need to get help. Simple web programming is also easy but it might not lead to the most highly paid jobs directly, if a better salary is what they are after. It is however a good way to start and you can learn more about advanced programming or back-end programming later. If they expect to write the next Halo game by themselves they should probably lower their expectation a bit.
[Edit: spelling]
I have a sister in eleventh grade (16-17) who is interested in programming. But if I tried to teach her programming by going straight to data types and algorithms her eyes would glaze over. That's not say she is dumb or traditional CS education is hard but it's certainly not the most interesting of topics.
However I think the argument against starting by building things the author barely even glosses over. The ecosystem and tooling to build things has become so complicated that it makes it hard to start. Someone just learning programming is probably going to be bored to death by ints and bits, but they are likewise going to be equally discouraged by the amount of work outside of coding it takes to get any non-trivial web app up.
And honestly the same goes for mobile development too. It's slightly less ridiculous but then you run into the issue of things that can't be explained simply and get relegated to "magic" you don't need to worry about... until you do.