# Rust for the Novice Programmer/Introduction
## Introduction

Welcome to Rust for the Novice Programmer! In the introduction, you will gain some context for the concepts you will learn in the following chapters. Don't worry if you don't understand bits and pieces of it. Learning some portions will help you grasp ideas as you move forward!

### What is Programming?

Programming is writing programs that instruct a computer to do a specific task. However, computers are both complicated and rudimentary: they don't understand normal human language very well because our languages are imprecise and inaccurate. Therefore, we must use a language that is precise and clear to communicate our exact intent to computers. This idea is where programming languages come in. They provide a way for us to lay out instructions on how we want a computer to perform. However, new programmers must learn them from scratch since they are not natural languages. There are many programming languages, each with advantages and disadvantages. In this guide, we will focus on learning the Rust programming language.

### What is Rust?

Rust is a modern programming language designed for performance and safety. You may see this tagline often, but what does it mean?

#### Modern

Rust is considered 'modern' because of its recent development history. It began development in 2006 and became stable in 2015. In programming terms, the promise of stability is essential - it means that your old programs won't break due to language updates. Despite being stable for some time, most programmers believe Rust to be a modern language. What gives?
Well, it can take a long time to build up an ecosystem. A programming language is only as valuable as the tools surrounding it, and sprouting programming languages often need more tooling.
However, these newer languages have their benefits, too. With decades of history behind us, programmers can design more accessible language features, learning from past projects' successes and failures. With that concept in mind, old languages tend to be stuck with old ideas. The moment they become stable, removing any language features that are confusing or harmful is impossible. By taking it slow, Rust could learn from history and create a comfortable language.

#### Performant

When people say that Rust is fast and 'performant', they refer to the mechanics of the language. Created by Mozilla as a systems programming language, Rust was always intended to be quick. However, think of all the vast places where computers control our world: computers serve websites, render 3D graphics, and perform scientific research. All of these tasks benefit from high performance!
For these systemic tasks, Rust is an excellent choice of language. It can reduce energy usage, helping to foster a better climate and reducing server costs for large businesses. Everyone wins!

#### Safe

The 'safety' of a program is critical in many contexts. Computers power systems such as vehicles, banking, and personal information worldwide. Not only is it imperative that these programs work, but also that they remain intact during critical situations or potential cyberattacks. Rust has various concepts that help ensure your programs always work as expected.

### Moving On

All that said, we hope you have fun! Programming can be fun and engaging. You don't need to get caught up in these concepts when you start. Now, let's learn how to get Rust installed on your computer!
Next: Getting Setup