Software Chickens and Eggs: Science vs. Practice

Tips For Your Plan Execution Strategy

Software Chickens and Eggs: Science vs. Practice

πŸ™‹ Need help? Ask an expert now!

No one would argue that achievements in modern technology would not be possible without advances in science, including Computer Science (CS). The history of the profession, however, clearly underscores the value of practical skills in building a successful Software Developer career.

Why practice over theory? Software is a highly fragmented field. Since its early days, different teams and individuals have been designing systems in the way they thought would be the most optimal. Software systems evolve, ideas come and go. Software is a full member of the cohort of modern occupations where what you do today will surely be obsolete tomorrow. This keeps the field exciting for those who like the change, but quite frustrating for those who don’t. And difficult to build long-standing theories around.

CS describes common terms and principles, the use of which can be detected in modern software languages and application systems. On the practical side, however, the terminology and methods are far from being standard. Many fundamental concepts such as Function, Class, Interface, even Variable, mean somewhat different things across popular languages. Learning generic theory may become a path to confusion for a newcomer trying to build up marketable skills quickly and land a first Software Professional job.

Another phenomenon is that many fundamentals of CS that last century's scientists worked so hard to formulate are simply common sense for an average modern person. As a comparison, think, how significant is the knowledge of Newton's laws in your everyday professional work? Aren't they just common sense for the last two-three hundred years? Would you go to college now to specifically study them? You checked them off in the Middle School already (thank you first physics teacher)!

Edit Me on GitHub!