1. The Role of Algorithms in Computing #

Created Tue Aug 13, 2024 at 12:45 AM

Abstract #

Practical stuff #

Algorithms as technology #

Technology brings non-trivial change to society, materially and otherwise (things become feasible, law changes).

Many apps today (that are simple from an app developer perspective) are only possible due to our understanding of algorithms:

  1. Routing in networks relies heavily on algorithms.
  2. GUI concepts like React, depend on fast tree diffing.
  3. Compilers need to parse code - which needs dynamic programming to work. Trees are a fundamental data structure used here.
  4. Bundlers - many web apps need a tool called the bundler, that packs many files into a single one. Dead-code-removal (i.e. code that isn’t imported anywhere) and circular dependency checking (if there’s an import cycle) are important features.
  5. Static analysis - linters in IDEs need to maintain a tree of tokens, so automatic refactoring and syntax can be done.
  6. Autocompletion - many text boxes need autocompletion, from the IDE to phonebook to very dynamic ones like search engine completions.

With modern computing technology, you can accomplish some tasks without knowing much about algorithms, but with a good background in algorithms, you can do much, much more.

Any business that wishes to thrive needs to be efficient in their processes and resource usage (like Uber). Algorithms are key.