Skip to main content

Separation of Computer Scientists and Computer Technologists

Science is not Technology and vice versa​

  • Technology was not developed based on science, nor was science studied for technical applications.
  • Even before the principle of leverage was dynamically proven, the lever was used, and even before the iron-making technology was proved to be a chemical reduction reaction, the steel-making technology existed.
  • Science and technology were formed in the 18th century, and until then, science and technology were separate.
  • Technology has been passed on in apprenticeship classes without scientifically theorizing it.
  • Science ≠ Technology.
    • But they both can help each other.

The grand question​

Do you need a college degree in Software Engineering?

  • As much as modern society evolved, the software needs to grow and mutate
  • People always ask if you need a college degree for Software Engineerings
    • When you can find decent CS education on GitHub, Stack Overflow, and YouTube

But a self-taught can code a dang fantastic React shopping mall!​

  • A self-taught dev can use React to make a cool-looking Single-Page-App JavaScript e-commerce website...
  • But we must think,

What makes React so coolly?

  • React's Diffing Algorithm
    • Reduces O(n3)O(n^3) diffing operation to O(n)O(n) iff
      1. Two elements of different types will produce other trees.
      2. The developer can hint at what elements will remain stable across renders with an essential prop. (This is why React always warns us to include keys in our props).
  • Creating a diastrophic technology requires actual theory
  • As much as developers in the industry can impact the world by improving page load time by 25%,
  • People in the academic fields support those works.

So, simply wrapping all developers as Software Engineers is like categorizing all musicians as singers, including incredibly different types of musicians, from street-performing rappers to classical oboists, from Korean idols to shamanist drummers.

Conclusion​

  • It is about time to divide Software Engineers into two roles:
    • Computer Scientists: who actively research the fundamentals and theories
    • Computer Technologists: who actively apply existing theories to solve real-world problems