Understanding the Essence of Computing: From Abstract Models to Independent Thinking

Understanding the Essence of Computing: From Abstract Models to Independent Thinking

Explore the fundamental principles of computer science through abstract models, Von Neumann architecture, compilation principles, and distributed systems. A deep dive into the philosophical and technical foundations of modern computing.

Jo
John Doe
January 24, 2024
8 min read

Understanding the Essence of Computing

Abstract Models

Zhuangzi once said, "I have cliffs in my life, but I know no bounds." It is foolish to learn endless knowledge with a limited life. The ultimate goal of learning is definitely not knowledge itself, because knowledge is superficial, unstable, and can become outdated. So what should we learn, what is eternal? Perhaps we will have many insights, such as studying philosophy; Or learning methodology; Or learning abstract models and so on.

The perfect embodiment of these abstract models is the mathematical formulas we often see, which are like universal tools. Through them, we can know how the universe and nature operate in a regular way.

In reality, we will find that each discipline has its own abstract model, which is like the stars in the sky, with similarities and differences. So, the expansion of cognitive structure is actually the expansion of model boundaries. The more models we have, the richer our cognition becomes.

Computer Model

From a physical perspective, the capacitance of a transistor has only two states: on and off. From the law of optical transmission, there are only two types of voltage: high and low. This corresponds to 0 and 1 in the digital world (excluding quantum computing). Adding one or more capacitors and one or more wires here results in 2 states of 4/8/16/64. And with the development of nanotechnology, the increase of multi-core CPUs, and the emergence of 5G high bandwidth, there will be more and more states that can be represented and transmitted at the physical level.

No matter how complex the virtual world may be, tracing back to the origin:

  • From a physical perspective, we can start with capacitors
  • From a mathematical perspective, we start with binary
  • From a philosophical perspective, we start with yin and yang

The computer's power-up process is very much like the Big Bang, followed by the journey of bits. Bits keep moving during the journey, from disk -> bus -> memory -> CPU. One bit through a function factory might produce 80 bits, and after circling the Earth once, it might increase by n-power bits.

Von Neumann Architecture

The core components of a computer remain stable across different platforms, whether it's PC, mobile, or IoT architecture. These components include:

  • Arithmetic unit
  • Memory
  • Controller
  • Input/output devices

Von Neumann Architecture

Compilation Principles

Understanding computer languages requires knowledge of:

  • Syntax analysis
  • Lexical analysis
  • Semantic analysis
  • Regular expressions
  • Finite state machines

Whether it's modern languages like Go and Rust, or established ones like Java, C/C++, Python, or JavaScript, they all share these fundamental compilation methods.

Distributed Systems

Distributed Systems

The principles of distributed systems, particularly in data replication, trace back to Lamport's 1978 paper. These foundational concepts continue to be relevant in modern databases, whether relational (MySQL, SQL Server) or non-relational (Redis, MongoDB).

Independent Thinking

Independent thinking in computer science requires:

  • Mathematical thinking
  • Systematic approach
  • Abstract modeling
  • Rational logical thinking

Summary

The essence of computer science lies not in specific technologies but in:

  • Abstract knowledge models
  • Fundamental principles
  • Systematic thinking
  • Continuous questioning and learning

Learning should focus on understanding these timeless principles rather than just accumulating temporary knowledge.