In my school days it was impossible to score 100 marks in a language class. When I asked my language teachers, they mentioned that there is no definition of perfect language skills at any level, so scoring a 100 in a language test is a disgrace to the language. All the other non language ones had a defined way of scoring 100, if you memorise facts and formulas, then it is easy to score and keep moving up levels. The thoughts ingrain to you that if you follow the plan, keep memorising and apply the facts then you will accomplish a lot.
Unfortunately the world we live is not always filled with templates, more and more problems that could be done with simple cause and effects can be replaced with automations and what is left for humans to solve are wicked problems. Now what is a wicked problem? Instead of going to a textbook answer, let us observe something in an urban neighbourhood.
A neighbourhood’s green grocer is always crowded as the population of the neighbourhood is more than what that store can conveniently service. The store was designed for a people of 700 but the population is 1100. A businessperson sees this as an opportunity to open a new store and draw the excess crowd, but because of the costs of running a store it will take at least 800 people in the neighbourhood to profitably run. When the new store is opened, both the stores will plunge into loss and eventually one of them will shut the shop. Another businessperson will observe the same and repeat the cycle but the problem is never solved. You will see this in every neighbourhood, new grocers, saloons, pharmacies and dentists keep opening and closing over the course of the years and see only a few established shops.
Our system is designed to teach us formulas and templates as an approach to any problem, this is especially on the higher side for premier institutes where people right from a young age are primed to think that way. Learn a formula, apply and observe, change the formula, apply and observe which will just create cycles of boom and bust.
If highly educated professionals specialising in a field cannot easily solve wicked problems then who can solve wicked problems very well? They are solved well only by people who are generalists or polymaths. Problems will boil down to intricate webbing of macro patterns and micro patterns which can be observed in one discipline and implemented in another. It is solved through coming up with a hypothesis (need not even be scientific, gut feel is also hypothesis), try a small solution, expand the solution if it works else ditch the hypothesis and go on with another one. The key is to observe cause and effect across different areas even if they are unrelated and learn from them. Like a botanist playing a violin in free time and figuring out that some plants respond to classical music and grow well, the botanist would have never figured out if there was an alternative passion.
Software development overall is a wicked problem, coding as such is not but building software is a complex dance between people, process and engineering.
Concentrating and learning only technological bits will keep us prepared only to solve templated problems like coding. If we need to scale up and solve business problems through building software then being a polymath will take us a long way ahead.