# Resources
**Source**: https://cscircles.cemc.uwaterloo.ca/resources/
**Parent**: https://cscircles.cemc.uwaterloo.ca/
If you haven't seen it already, check the [Python 3 online index](http://docs.python.org/py3k/genindex.html). This is the method that we use for searching the official documentation whenever we're confused.
**What Should I Do Next?**
There are a lot of ways to proceed once you're done with CS Circles, depending on what you'd like to focus on next.
- ****in Python & in-browser, more advanced material**:**[Problem Solving with Algorithms and Data Structures](https://runestone.academy/ns/books/published/pythonds/index.html) and its prequel [How to Think Like a Computer Scientist: Learning with Python, Interactive Edition](https://runestone.academy/ns/books/published//thinkcspy/index.html)
- **in Python, more interactive**: [Invent Your Own Computer Games With Python](http://inventwithpython.com/chapters/) and its sequel [PyGame](http://inventwithpython.com/pygame/index.html) about animated interactive games
- **in Python, video based**: the CEMC has [Python from Scratch](https://cemc.uwaterloo.ca/resources/courseware/python-from-scratch)
- **web-based design and programming:** the CEMC has [Web Basics](https://cemc.uwaterloo.ca/resources/courseware/web-basics) and [Web Programming](https://cemc.uwaterloo.ca/resources/courseware/web-programming) courses
- **different language, in-browser, focuses on interactivity and graphics**: JavaScript at [Khan Academy](http://www.khanacademy.org/cs)
- **language independent programming concepts:** the CEMC has [Language Independent Programming Lessons](https://cemc.uwaterloo.ca/resources/courseware/language-independent-lessons)
- **hard computational mathematics problems**: [projecteuler.net](http://projecteuler.net/)
- **programming contests for high schools**: [CCC](http://cemc.math.uwaterloo.ca/contests/computing.html), [ACSL](http://www.acsl.org/), [ECOO](http://ecoo.org/index.php?option=com_content&task=view&id=26&Itemid=57), [DWITE](http://dwite.ca/), and [USACO](http://ace.delos.com/contestgate)
**More Excellent Resources**
- Learn from courses at [Udacity](http://www.udacity.com/) and [Coursera](https://www.coursera.org/)
- Learn from the [USACO Trainer](http://train.usaco.org/usacogate) in C++, Java, and Pascal
- Learn from the TopCoder [tutorials](http://www.topcoder.com/tc?d1=tutorials&d2=alg_index&module=Static) or [contests](http://community.topcoder.com/tc) in C++ and Java
- Practice at the [Sphere/SPOJ](http://www.spoj.pl/) Judge or use its [ideone](http://ideone.com/) console
- Practice at the [PEG Judge](http://www.wcipeg.com/main) ('blue book' problems are for beginners)
- Practice at the [Pyschools](http://www.pyschools.com/) problem collection
- Practice at the [DMOJ](http://www.dmoj.ca/contests/) (contests such as DMOPC + archive of old problems)
While our lessons use **Python 3**, which is the newest and most streamlined version of the language, the older version Python 2 is also used on some of these sites. Check out [this summary of the differences between Python 2 and 3](http://inventwithpython.com/appendixa.html) (from the author of the pygame books).
If you want to share a resource or comment on the ones above, please [contact us](https://cscircles.cemc.uwaterloo.ca/contact)!
**Tools**
- Python 3 server: [ideone](http://ideone.com/)
- Python in-browser: [Skulpt](http://www.skulpt.org/), [repl.it](http://repl.it), [and](http://wiki.python.org/moin/WebBrowserProgramming#Python-to-JavaScript_Compilers) [more](http://wiki.python.org/moin/WebBrowserProgramming#Embedding_Python_inside_Web_Browsers)