> For the complete documentation index, see [llms.txt](https://uni-rex5817.gitbook.io/programming-training/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://uni-rex5817.gitbook.io/programming-training/introduction.md).

# Introduction

As a programmer you should understand almost everything about the robot:

* **Mechanical systems** (Inertia, gear ratios, basic physics)
* **Electrical systems** (power distribution, sensors, networking).
* **Software systems** (subsystem control, autonomous routines, safety features).

Before diving into code, make sure to review the [design](https://unirex-5817.gitbook.io/training) and eletrical resources(TODO link). Programming decisions are only as good as your understanding of the hardware.

***

### What This Guide Covers

We’ll start by breaking down how the robot works and how to model it in software. From there, you’ll learn:

1. **Fundamentals** – Gear ratios, current limits, subsystem control, autonomous routines.
2. **Seasonal Workflow** – What you should be doing at each stage of the season.
3. **Competition Readiness** – What you should be doing to succeed at competition.

***

### Programming Language

We use **Java** as our primary programming language.

WPI (the creators of WPILib) maintain the libraries and frameworks that all FRC robots run on. Their resources are super useful:

&#x20;[WPILib Official Site](https://wpilib.org/)

***

### Learning Java

If you are new to Java, here are the recommended starting points:

* **Basics and Syntax**:\
  [Java Programming Basics and Syntax](https://docs.google.com/document/d/1DMp1ZqzaLNj9CzdIEbfEdjj1DOePfNHhwf5NEjGn7FE/edit?tab=t.0#heading=h.atft1gljwkj2)\
  (Skim the rest if you’re curious.)
* **Full Video Course** (highly recommended):\
  [Learn Java – Full Course](https://www.youtube.com/watch?v=xTtL8E4LzTQ)
  * Skip the starred sections and sections #10, #58, #59, #62, and #64.
  * This course covers far more than Mason’s guide and will give you a strong foundation.

***

### Key Mindset

You’ll spend your time not only writing code but also:

* Debugging hardware/software interactions.
* Testing and simulating before the robot is built.
* Iterating quickly to match evolving mechanical designs.
* Collaborating with design and electrical teams.

The better you understand the full system, the more effective you’ll be as a programmer.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://uni-rex5817.gitbook.io/programming-training/introduction.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
