Some people believe that only good math students can become computer programmers. Nothing can be farther from the truth. To be a successful programmer, a person needs two talents:
- Analytical Thinking
Logic is needed because the majority of programming in the enterprise world is about writing if-statements. If this happens do this, otherwise do that.
Analytical Thinking is an ability to take what seems to be a complex problem and turn it into a set of simple steps. I’d like to share with you a simple expample illustrating what is analytical thinking.
On Wednesday evening I was walking along Broadway in New York City. While passing a Citibank branch, I noticed a girl who was standing there exchanging text messages with someone. Clearly, her phone was out of juice, but I’ve been wondering how she managed to reach the electric outlet conveniently placed this high?
Somehow the metrics didn’t work out, I took a photo and published it on my Instagram and Twitter accounts with the title “Girls Can Jump”, and one of my followers posted a funny comment, “It’s not the worst thing to expect from Android”. But I was trying to recreate the situation with the outlet, and decided that she asked some tall guy to insert the plug. I was still wondering, how she’d unplug the wire? Would a simple jerk motion do the job?
Yesterday, I’ve published my regular audio podcast about America (it’s in Russian) and asked the audience to offer their version of this puzzle. One of my listeners goes under the nick CoderA – he’s a software developer from Moscow. He answered with a picture that’s worth a thousand words:
And this is a great illustration of what analytical thinking is. Taking a complex task (“Just figure out how she did it?”) and turning it into several simple ones:
- What’s the distance between the electric outlet and the floor?
- What’s the hight of her shoulder?
- Whats the length of her arm?
- What’s the length of her forearm?
- How standing on her toes could extend her reachability?
After adding all these numbers together (the sizes are in pixels), it’s clear that this girl could have plugged it in by herself!
You can start arguing that the numbers may be wrong, but it’s beside the point. What’s a lot more important that CoderA has analytical skills and being a sofwate developer is the right profession for him. When during technical interview at Google they ask candidates “How many piano tuners live in San Francisco?”, they don’t expect to hear the exact number. They want to see the job applicant would try to find out this number!
If anyone from Google reads this post, consider extending a job offer to CoderA. We all know that knowing the syntax of the if-statement in a particular programming language is an easily obtained knowledge. But figuring out how she reached the electric outlet is not a trivial task. It requires analytical thinking.