# Core Academy

Core Academy prepares [Hoon](/hoon/why-hoon.md) developers to become [Arvo](/urbit-os/what-is-urbit-os.md) kernel developers. While only [Hoon School](/build-on-urbit/hoon-school.md) is strictly necessary to follow this material, readers should be capable of writing fairly complex applications in Hoon. Some knowledge of C and/or Rust is also necessary for some of the runtime material.

This written course is adapted from the teaching notes for the 2023 cohort of Core Academy, its first and to-date only live cohort. The course explores each part of Arvo, Zuse, Hoon, and the runtime to contextualize how Urbit works today and where further development is needed.

*The lesson notes represent a snapshot of Urbit core development at Zuse 412k and Vere 2.12. Some details have changed since that release.*

Video recordings of the 2023 Core Academy are [available to watch here](https://www.youtube.com/playlist?list=PLYGEMSwLguIGgrEGwxu2AAbESpfF_LRKx). The order in which vanes are covered differs between this written material and the recorded lectures, but aside from some Q\&A in the lectures it's all the same information.

## Preliminary material <a href="#preliminary-material" id="preliminary-material"></a>

* [Hoon School, Text Parsing III](/build-on-urbit/hoon-school/q2-parsing.md)
* [Hoon School, Generic and Variant Cores](/build-on-urbit/hoon-school/r-metals.md)
* [The Engine Pattern](/hoon/engine-pattern.md)


---

# Agent Instructions: 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:

```
GET https://docs.urbit.org/build-on-urbit/core-academy.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
