Resources

Java Languge Tutorials

Don't worry if you don't know much about Java! FRC requires only a basic understanding to get started. A rough understanding of variables and their types, operators, conditionals, methods, classes, and object-oriented program structure will suffice. These resources can help introduce you to and deepen your understanding of Java's capabilities.
MIT Open Access Course: Learning Java
I recommend reading Lecture Notes 1 through 5. If you feel comfortable with this material, you should be prepared for FRC programming.

FRC Documentation

WPILib Command-Based Programming
Dcoumentation for Command-Based programming in WPILib's Java Framework.
CTRE Phoenix Documentation
Documentation for TalonFX motor controllers, Pigeon gyros, CANDle LED controllers, and other CTRE products.
REV Robotics Documentation
Documentation for REV Ion products including NEO motor controllers and REV sensors.
PathPlanner Documentation
Documentation for PathPlanner's autonomous path planning and auto-command integration software.
Choreo Documentation
Documentation for the Choreo autonomous path planning and auto-command integration software. Unlike Pathplanner, Choreo uses time-optimized curves instead of customizable paths.
Limelight Documentation
Documentation for vision processing with Limelights.
PhotonVision Documentation
Documentation for Vision processing for non-Limelight devices or as an alternative to limelight API.
Elastic Dashboard Documentation
Documentation for overlaying and customizing the Elastic Dashboard overlay.
Kauai Labs NavX Documentation
Documentation for NavX gyro
PlayingWithFusion Documentation
Documentation for Playing With Fusion sensors including Time-Of-Flight

FRC Library Example Repos

WPILib Java Examples
Examples for WPILib libraries.
CTRE Phoenix 6 Examples
Examples for CTRE libraries.
REV Lib Examples
Examples for REV libraries.

FRC Team Repos to Watch

These are all teams who produce world-class FRC code consistently. Teams participating in Open Alliance often keep their repos public during build season, allowing you to learn new software implementations and borrow ideas.

Understanding Controls Engineering

Controls engineering is extremely important in robotics. It can make a system significantly more reliable, efficient, fast, and stable. In addition to library documentation from WPILib and motor controller vendors, you can reference these guides to gain a deeper understand of what closed loop controls are and how kp, ki, kd, and feedforward interact.
CTRL ALT FTC Control Guide
A great control theory guide that explains the fundamentals of control: open loop, closed loop, PID, and feedforward. Explains what these control options do, how they work, and how to tune them.
Controls Engineering in FRC
A large and more advanced controls engineering text that describes controls mathematically and with historical context.

Understanding Motors

Understanding the mechanical, electrical, and firmware fundamentals of motors can be very helpful for deeply understanding how to write better motor software.
Stryke Force Motor Training Course
Here is a (somewhat dated, but still great) course by Team 2767 that explains FRC motor and encoder fundamentals.
BLDC motors
This video explains how Brushless DC motors (the type most commonly used in FRC) work.
How to Wire a robot
This video posted by FIRST explains how to wire a FRC robot system, which can be useful to help you understand how these devices interact

Understanding Path Finding

Although we mostly rely on PathPlanner or Choreo to create paths, if you want to understand the theory of how optimal paths and pathfinding techniques work, here are some resources.
Introduction to A* - Stanford CS
The A* Pathfinding Algorithm, one of the most used modern pathfinding algorithms and the algorithm used by PathPlanner, explained for use in game development here.
A* (A Star) Search Algorithm - Computerphile
This video also explains A* nicely.