# Fuchsia fundamentals

If you are new to Fuchsia, follow these guides to gain a better understanding of
the fundamentals.

## Introduction to Fuchsia

Understand the core principles behind Fuchsia and explore how Fuchsia creates a
foundation for developers to create long-lasting products and experiences across
a broad range of devices.

<a class="button button-primary"
    href="/docs/get-started/learn/intro">Get Started</a>

## Building Fuchsia

Navigate the Fuchsia source tree and its core components. Explore the build
system and use the tools to customize the build configuration.

<a class="button button-primary"
    href="/docs/get-started/learn/build">Get Started</a>

## Fuchsia Components

Discover Fuchsia's component framework, which provides the infrastructure for
software execution on the platform. Explore the developer tools to build, run,
and test components.

<a class="button button-primary"
    href="/docs/get-started/learn/components">Get Started</a>

## Fuchsia Interfaces

Learn how Fuchsia components expose and consume capabilities to interact with
one another using the Fuchsia Interface Definition Language (FIDL). Explore the
developer tools to debug and test component connections.

<a class="button button-primary"
    href="/docs/get-started/learn/fidl">Get Started</a>
