Milestone 0: Mastering the Command Line
Your First Step as a Programmer
1 Milestone 0: Mastering the Command Line
This is your first and most important step. Before writing code, a programmer must master their tools. Here, you will learn to use the command line—a developer’s most powerful and fundamental tool.
1.1 Overview & Learning Journey
Welcome to the true beginning of your journey as a programmer! In a world of graphical interfaces, you might wonder why we start at the command line. The reason is simple: power, speed, and control. The command line, or “shell,” is the universal language for interacting directly with a computer’s operating system. It allows you to perform complex tasks, automate repetitive work, and run the development tools that make modern software possible.
For students who have primarily used phones, tablets, or Chromebooks, this may feel like a big leap. This milestone is designed to make that leap manageable and empowering. We will start from the very beginning: opening the terminal. From there, you will learn how to navigate your computer’s file system, create and manage files, and perform essential operations—all without touching your mouse. Mastering these skills will build a strong foundation of confidence and competence for all the coding milestones to come.
1.2 What You’ll Accomplish
By the end of this milestone, you will have successfully:
- Opened and used a command-line terminal on Windows, macOS, or Linux.
- Oriented yourself within the file system using commands like
pwdandls. - Navigated between directories using the
cdcommand and understood concepts like absolute and relative paths. - Managed files and directories: creating, copying, moving, renaming, and deleting them from the command line.
- Understood the structure of a typical user’s file system, including the central role of the “home” directory.
1.3 Learning Objectives & Professional Alignment
The exercises in this module are designed to build the most foundational skills required for any technology professional, aligning with the O*NET SOC Code 15-1251.00 for Computer Programmers.
| Module Task | O*NET KSAs | Technologies Used |
|---|---|---|
| Using the Terminal | Knowledge: Computers and Electronics Skills: Interacting with Computers Abilities: Information Ordering |
Operating system software: Bash, Microsoft PowerShell, Windows CMD |
| File System Navigation | Knowledge: Computers and Electronics Skills: Systems Analysis Abilities: Deductive Reasoning |
Command interpreters: pwd, ls, cd |
| File & Directory Management | Skills: Programming, Active Learning Abilities: Information Ordering |
Command interpreters: mkdir, touch, cp, mv, rm |
1.4 Tools & Development Environment
This milestone focuses entirely on the command-line interface (CLI).
A terminal is the application you open to get a command prompt. The shell is the program running inside the terminal that interprets your commands.
Windows: You will use Windows Terminal, which can run different shells. We will focus on PowerShell (the modern default) and Command Prompt (CMD) (the legacy shell).
macOS: You will use the built-in Terminal application, which runs a shell called Zsh (very similar to Bash).
Linux: You will typically use an application like GNOME Terminal or Konsole, which runs a shell called Bash.
Throughout these exercises, we will provide commands for all these environments. While the commands may differ slightly, the underlying concepts are universal.