If you told a human being to type out the letters ‘Ain’t nobody got time for that!’ on a computer screen, they would understand and get it done in a jiffy.
If you needed a computer program to print these letters on the screen, you need to give it precise instructions. In the programming language Python, you would need to say:
print("Ain't nobody got time for that")
If you accidentally forgot the first bracket in that statement, your computer would spit out the following error message:
print"Ain't nobody got time for that")
File "", line 1
print"Ain't nobody got time for that")
^
SyntaxError: invalid syntax
It is now up to you to figure out what your syntax error was and how you can fix it.
Programming a computer has helped me understand how imprecise verbal communication is, and how other human beings meet us half-way to interpret and execute our vague wishes. A machine, on the other hand, is a ruthless and precise pedant.
On the flipside, programmers who talk to machines all day are prone to extending their precision outside the machine realm. Given that they instruct machines day-after-day (and on several nights), their brains end up expecting their fellow human-beings to be just as precise. This tendency feeds the stereotype of the snippy, rude and introverted programmer – one which believes that learning to communicate with humans is wasteful, given how imprecise and inefficient human communication is.
While the solo programmer in the basement could afford to be a brilliant programmer and a terrible communicator, most significant code today is written collaboratively – in coordination with customers, product managers, designers, sales reps and fellow programmers.
As career programmers, we need to master the craft of instructing machines without compromising on the art of human communication.
Inspiration: Coders