Being someone who has been writing codes for some while now, I constantly get smacked with the same lines of questions from people who barely understand coding/programming such as “How complex is coding?“, “How do programmers think?” and the list goes on. Well, most times I try not scare them away and tell them how easy it is, since it involves logical reasoning. But on the other hand, some people obviously tend to misinterpret it. I was going through a question on Quora few hours from the time of writing this post when I found a similar question and I decided to compile the best suitable answer to this often asked question from answers found on the thread. Next time someone walks up to you and says “Who complex is coding/programming?“, simply ask them the steps needed to make a cup of tea. The person would likely list the procedure as follows.
- Boil Water
- Put tea in a cup
- When the water is boiled pour it into a pot
- Wait 5 minutes
- Pour the tea into cups
- Add milk
- And drink
Now here is where the fun begins as you’ll have to explain how a programmer thinks from their answers. Now start with:
Ask the following questions.
- where is the water coming from
- where is the kettle
- how do you get the water into the kettle
- how do you know how much water to put into the kettle
- what if there is no water/kettle/electricity?
- what if you fill sensor fails?
- what if your boiling sensor fails
Put tea in pot?
Obviously, since this is the next step, continue your questions from the point.
- where’s the pot, what if there isn’t one? should we have thought of that before boiling the water?
- where is the tea, which kind of tea? should we have asked first, perhaps we shouldn’t have started this if we don’t have the right tea?
Pouring boiling water?
Here is where it gets interesting.
- are you sure its boiling? how can you make sure that the machine doing the pouring got the right ‘done’ signal from the kettle?
- How do you make sure that the pouring machine knows where the pot is?
- What if the pot tips over during pouring?
And that’s how the list should go on. Try to make questions for every step and you’ll have the person thinking like a programmer 🙂 . I hope you enjoyed this post. I’ll really appreciate your sharing it among your social circles, and don’t forget to let me know other ways you’ll explain programming to a non-programmer.