I am giving a workshop on Sunday. The goal is to try to give complete beginners a less wrong idea of what programming is all about.

Not a small challenge given that for my students, programming looks like something aliens do.

Heck, even the majority of companies hiring developers don't really understand programming either! See how they make us solve algorithms on a whiteboard, put us in noisy open offices and make sure to kill our focus with unhelpful meetings and constant interruptions on Slack.

So my question:

What are your favorite non-technical analogies to explain programming?

I'm interested in good analogies AND in the popular but really helpful ones - like Hollywood describing us as doing magic on a screen or recruiters thinking we are Ninja Rock Stars.

This post is also available on DEV.