Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Basic Setup

This guide walks you through setting up a development environment on Ubuntu with essential tools and utilities.

Operating System

Ubuntu

Download and install Ubuntu Desktop (version 25.10 or later recommended).

During installation:

  • Name: Klara Reinwasser
  • Username: kreinwasser
  • Computer name: keep the default

Configure sudo

sudo should already be installed. Configure passwordless sudo for convenience:

sudo sh -c 'echo "kreinwasser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/kreinwasser'

System Update

Update all packages to the latest versions:

sudo apt-get update && sudo apt-get upgrade -y

Essential Build Tools

Install the core development tools required for building software:

sudo apt-get install -y \
  build-essential \
  cmake \
  curl \
  git \
  git-lfs

Web Browser

Brave

A privacy-focused web browser built on Chromium. Official site

curl -fsS https://dl.brave.com/install.sh | sh

Terminal Enhancements

Nerd Fonts

Patched fonts with icons and glyphs for better terminal aesthetics. We recommend FiraCode Nerd Font.

Follow the installation guide for Ubuntu and select FiraCode Nerd Font.

Btop

A resource monitor that shows usage and stats for processor, memory, disks, network and processes. GitHub

Download the latest btop-x86_64-linux-musl.tbz from the releases page, then:

tar xvf btop-x86_64-linux-musl.tbz
cd btop
sudo make install

Programming Languages

Go

The Go programming language. Official site

Download the latest version for Linux (amd64) from the download page, then install:

# Replace version number with the latest available
sudo rm -rf /usr/local/go && \
  sudo tar -C /usr/local -xzf go1.*.linux-amd64.tar.gz

echo 'export PATH="/usr/local/go/bin:${HOME}/go/bin:${PATH}"' >> ~/.bashrc

Rust

A language empowering everyone to build reliable and efficient software. Official site

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

After installation, reopen your terminal so cargo becomes available.

Shell Customization

starship

A minimal, fast, and customizable prompt for any shell. GitHub

cargo install --locked starship

echo 'eval "$(starship init bash)"' >> ~/.bashrc

atuin

Magical shell history with sync, search, and backup capabilities. GitHub

cargo install --locked atuin

curl https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh -o ~/.bash-preexec.sh
echo '[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh' >> ~/.bashrc

echo 'eval "$(atuin init bash)"' >> ~/.bashrc

Next Steps

After completing the basic setup, continue with: