There was a time when humans invention was quite diverse. If you look at patents of almost anything during the Victorian era you will find hundreds of different interpretations of an item. The same was true in the early 20th century, and this really peaked during the early 1960s. People invented super interesting things – check out any old copy of Popular Mechanics or Popular Science. Many were never produced commercially, but they were interesting nonetheless. Where is this crazy out-of-the-box thinking today? Sure, there are still inventors out there, but there seems to be fewer. Is it because of the digital world? Maybe.
Consider my generation, Gen X, whose childhood evolved before computer intertwined themselves into our lives. We grew up from the mid 1960s to mid 1980s playing with systems like Lego and Meccano, or even building wooden forts in the woods. We built things, and when computers emerged, we learned how to build them. People don’t build much of anything anymore. Yes, there are makers, but they seem to be a minority. People barely know how to sketch something, or build something simple from wood. Do kids still build go-karts? (likely too dangerous). School shop classes have all but disappeared, and we now live in a world where children need to be swaddled their whole lives. The problem is that without the problem soling skills learned from constructive play, it is harder to make headway in fields where innovation is a daily thing.
Designing an algorithm requires innovation. People come into computer science dreaming of sky-high salaries and fail to understand that computer science: (i) involves programming, and (ii) involves innovation. You have to understand how to program, even if you feel you will be a “software developer” and never actually have to code. If you don’t understand the nuances of programming languages and their inherent limitations, you will never be able to successfully design algorithms (this is like architects who don’t understand the limitations of materials science). You also have to understand how to design innovative algorithms. This involves trial-and-error, and thinking outside the box. If you spent your life sitting in front of a gaming console, then computer science is likely not for you.