2020-06-03 22:48:48 +00:00
---
slug: /intro/prerequisites
2020-06-04 05:39:49 +00:00
title: Prerequisites
2020-06-04 00:38:30 +00:00
author: Nathan Wang
2020-06-08 20:42:55 +00:00
order: 3
2020-06-03 22:48:48 +00:00
---
2020-06-04 05:39:49 +00:00
Here's what you should learn before reading these resources.
2020-06-03 16:39:55 +00:00
2020-06-04 05:39:49 +00:00
<!-- END DESCRIPTION -->
2020-06-09 00:47:37 +00:00
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.
2020-06-03 04:03:02 +00:00
2020-06-09 00:47:37 +00:00
Familiarity with [competition math ](https://github.com/bqi343/USACO/blob/master/Resources/Competition%20Math.md ) (ex. AIME qualification) is helpful but not required.
2020-06-08 19:51:58 +00:00
2020-06-09 00:47:37 +00:00
## Expected Knowledge
2020-06-07 01:05:28 +00:00
- Variables
- Data types
- Reading Input
- Writing Output
- Loops
- If/else
- Logical operators
- Functions
- Basic Recursion (a function calling itself)
- Arrays
- Multidimensional Arrays
2020-06-09 00:47:37 +00:00
## Resources for Learning How to Code
2020-06-03 04:03:02 +00:00
2020-06-08 19:51:58 +00:00
[Sololearn ](https://www.sololearn.com/ ) has courses on C++, Java, and Python. You don't have to complete the full course.
2020-06-06 04:28:54 +00:00
2020-06-08 19:51:58 +00:00
- For C++, we recommend you finish Sololearn up to (but not including) "More on Classes."
2020-06-06 04:28:54 +00:00
2020-06-07 01:29:02 +00:00
[[info | Pro Tip]]
| You do not need to learn pointers (for now). Knowledge of structs and classes is useful but not required.
2020-06-08 20:42:55 +00:00
### Resources for Getting Started
2020-06-06 04:28:54 +00:00
2020-06-08 19:51:58 +00:00
- [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 )