> 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.
