Fundamentals 12 min read

What to Study: Abstract Models, Computer Fundamentals, and Methodology

The article explores why learning abstract models, fundamental computer concepts, and philosophical methodologies is more valuable than merely acquiring transient knowledge, emphasizing mathematics, binary logic, Von Neumann architecture, compilation, distributed systems, and independent critical thinking.

Java Captain
Java Captain
Java Captain
What to Study: Abstract Models, Computer Fundamentals, and Methodology

This article offers a unique perspective and vision for learning computers, instantly expanding one’s mindset.

What to Study

Abstract Models

Zhuangzi said that life is finite while knowledge is infinite; therefore, the ultimate goal of learning is not knowledge itself, which is transient, but something eternal such as philosophy, methodology, or abstract models.

These abstract models are perfectly embodied by mathematical formulas, which act as universal tools to reveal the laws governing the universe and nature.

Every discipline has its own abstract models, like stars in the sky—some similar, many different—so expanding our cognitive structure means expanding the boundaries of these models.

For computers, what is the immutable essence?

Computer Model

From a physical viewpoint, a transistor’s capacitance has two states (on/off) and voltage has two levels, corresponding to binary 0 and 1 (excluding quantum computing). Adding more capacitors or lines yields 2⁴, 2⁸, 2¹⁶, 2⁶⁴ states, and advances in nanotechnology, multi‑core CPUs, and 5G increase the number of representable states.

No matter how complex the virtual world becomes, tracing back to the physical origin we start with capacitors, binary mathematics, and the philosophical yin‑yang.

The powering‑up of a computer resembles the Big Bang; bits then travel from disk → bus → memory → CPU, multiplying along the way.

Thus the world is built on a stable philosophical foundation, an infinite‑state mathematical representation of bits, and a highly efficient wave‑particle based reality.

Von‑Neumann Architecture

The classic pyramid of computer components—processor, memory, controller, and I/O devices—remains stable across PCs, mobiles, and emerging IoT architectures, differing only in performance and power consumption.

Compilation Principles

Understanding any programming language’s underlying mechanics requires knowledge of lexical analysis, syntax analysis, semantic analysis, regular expressions, and finite state machines; these concepts have changed little over time.

Whether the language is Go, Rust, Java, C/C++, Python, JavaScript, or C#, the focus should be on the compilation process rather than superficial syntactic differences.

All languages, regardless of being interpreted or compiled, construct abstract syntax trees, perform lexical and semantic analysis, and eventually translate the tree into binary code.

Distributed Principles

Distributed storage systems replicate data using the same principle first described by Lamport in 1978’s “The Implementation of Reliable Distributed Multiprocess Systems”.

Even though the technology has evolved, the theoretical foundation remains unchanged, reminding us to reflect, summarize, and solidify knowledge while learning new tools.

This replication principle is employed in relational databases (MySQL, SQL Server) and NoSQL stores (Redis, MongoDB), as well as search engines (Elasticsearch) and message queues (Kafka, RabbitMQ).

Methodology

Agnosticism

Einstein likened the universe to a watch whose interior we know nothing about; agnosticism assumes we know nothing, then re‑examines the truth of our thoughts, recognizing that perception is unreliable and knowledge is fallible.

When business scales and concurrency rises, patchwork code becomes unsustainable; only by revisiting or rebuilding the underlying architecture can we temporarily meet demand, though the future evolution remains unknown.

Agnosticism means pursuing the knowable from a stance of not‑knowing—a sincere learning attitude.

Universal Doubt

Universal doubt is not doubt for its own sake; the universe is a chaotic whole, and disciplinary names are not eternal, so any single perspective is limited.

Descartes argued that the body cannot be proven to exist, prompting the question of whether we live in a simulation; his famous “I think, therefore I am” reflects this inquiry.

Universal doubt forces us to discard all preconceived ideas, re‑evaluate them, and thereby drives innovation, as illustrated by Einstein overturning Newton’s gravity with relativity.

Thought ≠ I

When criticized, we often react emotionally because we conflate our thoughts with our identity; separating the two reduces emotional bias and promotes growth.

Thoughts are shadows of ancestral wisdom that have merged with our bodies over time.

Thus we must decide whether to defend ourselves or our thoughts; defending thoughts should not trigger emotional reactions, and recognizing flawed cognition should be welcomed.

Independent Thinking

Human evolution fostered herd behavior for safety, but blind conformity leads to irrational ignorance; recognizing this danger is essential for true independent judgment.

Independent thinking is painful; many avoid it, as illustrated by statements from entrepreneurs who claim people prefer not to think.

In computing, independent thinking translates to systematic, abstract, rational logic rather than mere emotional or visual thinking; mathematical intuition is the inner skill of computer science.

Summary

Therefore, our learning goal should focus on abstract knowledge models—universal keys that unlock various domains—while our method should employ universal doubt and agnosticism to detach thought from self, eliminate blind conformity, and continuously question our assumptions, echoing Buffett’s advice to “break at least one belief each year”.

software engineeringphilosophycomputer fundamentalsabstract modelslearning methodology
Java Captain
Written by

Java Captain

Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.