Training for new Software team members, from first variable to a working robot program.
A mixture of presentations given by mentors and exercises done on your own machine. The order matters — each resource builds on the ones before it.
A mentor sets the pace. Don't work ahead. Presentations come before the exercises they cover, and starting an exercise cold means fighting concepts nobody has explained yet.
Proof of completion. For presentations, register your attendance. For exercises, review the finished code with a mentor so they can check you understood it, not just that it runs.
Getting stuck is expected. Say so early instead of grinding alone. Finishing first isn't the goal — that's what stretch goals are for.
Our school is three years, and the season structure follows it: year 1 is FTC, years 2 and 3 are FRC.
Most members start at 1 and work down. Members who join in year 2 skip the FTC section — Java, Git, then straight to FRC. If they already write Java, they start at Git.
- W3Schools Java Tutorial — External · self-study, done before anything else
- Java Fundamentals — Presentation · borrowed, Spectrum 3847 (C1.1) · replace by 2027
- Robot Stats Card — Exercise · variables and types
- Voltage Guard — Exercise · conditionals
- Loop Drills — Exercise · loops
- Sensor Log — Exercise · arrays
- Method Toolbox — Exercise · methods
- Your First Class — Exercise · classes and objects
- Encapsulation and Composition — Exercise · privacy, getters, has-a
- Inheritance and Polymorphism — Exercise · subsystems
Plain Java only — no WPILib, no FTC SDK. Items 8–10 are one continuous project, not three separate ones.
Items 3–7 are each a single file: javac RobotStats.java, then java RobotStats. Items 8–10 use several files in one folder: javac *.java, then java Robot. VS Code and IntelliJ handle both if you just hit run.
The eight exercises are tracked as Java 1–8 on the progress sheet, matching their own headers rather than the numbers in this list.
- Version Control, Git and GitHub — Presentation · not written yet
Scope: commits, push and pull, branches, pull requests. Nothing more — rebase, cherry-pick, stash, and rewriting history aren't needed on a robot repo and are a good way to lose a beginner's work. Students work in VS Code, which has a terminal built in.
- Intro to FTC Controls — Presentation · we don't have this yet
- Intro to Vision Systems — Presentation · borrowed, Spectrum 3847 (C1.6) · replace by 2027
- Install FTC Software Tools — Presentation · we don't have this yet · needed for 2026, then rewritten for the new control system in 2027
- Beginner Motors for FTC — Presentation · we don't have this yet
- Programming Best Practices — Presentation · we don't have this yet
- Control Loops: PID and Motion Magic — Presentation · borrowed, CTRE · replace by 2027 · link needed
- Open Loop Motor Control — Exercise · mentor supervised
- Velocity Control with PID and Feedforward — Exercise · mentor supervised
- Position Control with PID — Exercise · mentor supervised
The FTC control system changes in 2027. Anything here that describes specific hardware or the software that talks to it needs a 2026 version now and a rewrite for 2027 — that's a different deadline from the borrowed decks, which get replaced because they aren't ours, not because they go stale.
Items 13, 16 and 17 are shared with FRC, and so are exercises 18–20. They teach vision, control loops, good practice and motor control in general terms rather than for one program, so the same material serves both. Everything shared is listed again in the FRC section, because members who join in year 2 skip FTC and would otherwise never see it.
Exercises 18–20 move real hardware and require a mentor present. That's a safety rule, not a pacing one.
- Intro to FRC Controls — Presentation · borrowed, Spectrum 3847 (C1.2) · replace by 2027
- Intro to Vision Systems — Presentation · same deck as item 13
- Install FRC Software Tools — Presentation · borrowed, Spectrum 3847 (C2.0) · replace by 2027
- Beginner FRC Programming — Presentation · we don't have this yet
- Subsystems and Commands — Presentation · we don't have this yet
- Intro to FRC Apps, Dashboards and Logging — Presentation · we don't have this yet
- Beginner Motors for FRC — Presentation · borrowed, Spectrum 3847 (C2.3) · replace by 2027
- Encoders — Presentation · link needed
- Programming Best Practices — Presentation · same deck as item 16
- Control Loops: PID and Motion Magic — Presentation · same deck as item 17
- Open Loop Motor Control — Exercise · same as item 18 · mentor supervised
- Velocity Control with PID and Feedforward — Exercise · same as item 19 · mentor supervised
- Position Control with PID — Exercise · same as item 20 · mentor supervised
- Position with an External Encoder — Exercise · FRC only · mentor supervised
- Motion Magic — Exercise · FRC only · mentor supervised
Members who did FTC in year 1 have already seen items 22, 29, 30 and done exercises 31–33. Members who joined in year 2 meet all of them here.
Items 1–10 are for members who join in year 2 without Java. Existing FRC members skip them, which is why they aren't columns on the FRC progress sheet.
Some material is borrowed from other teams while we write our own. Borrowed items say so above, with the season we intend to replace them.
Control theory isn't a separate section — the FTC-level pass is item 17 and the FRC-level pass is item 30, which are the same deck. Members meet it once in year 1 and go over it again, deeper, in year 2.