--- slug: /intro/prerequisites title: Prerequisites author: Nathan Wang order: 2 --- Here's what you should learn before reading these resources. These resources do not teach you how to code. We recommend you learn roughly the first half of AP Computer Science A before continuing. If you do not meet these prerequisites, you can go to the resources below to get started. Familiarity with contest math (ex. AIME qualification) is helpful but not required. Expected Knowledge: - Variables - Data types - Reading Input - Writing Output - Loops - If/else - Logical operators - Functions - Basic Recursion (a function calling itself) - Arrays - Multidimensional Arrays ## Introductory Resources ### Learning to Code [Sololearn](https://www.sololearn.com/) has courses on C++, Java, and Python. You don't have to complete the full course. - For C++, we recommend you finish Sololearn up to (but not including) "More on Classes." [[info | Pro Tip]] | You do not need to learn pointers (for now). Knowledge of structs and classes is useful but not required. ### Getting Started - [CodeSignal](https://codesignal.com/) - good place to practice basics - [IOI: Getting Started](https://ioinformatics.org/page/getting-started/14) - [Philippines OI: Prepare](https://noi.ph/prepare/) - [Schedule for Beginners](https://www.quora.com/What-is-a-good-schedule-to-follow-for-becoming-better-at-competitive-programming-for-beginners) - [E869120 Tutorial](http://codeforces.com/blog/entry/53341)