# Monadical Study Guide
Here's some documentation links for things we use in the Monadical stack. Whether you're brushing up on your skills to [apply to Monadical](https://monadical.com/team.html#careers) or just interested in what technology we use, these are the resources to get started.
- Backend
- Python Language
- Beginner: https://learnxinyminutes.com/docs/python/
- Beginner: https://wiki.python.org/moin/BeginnersGuide
- Beginner: https://docs.python.org/3/tutorial/index.html
- Docs: https://docs.python.org/3/
- Itermediate & Advanced: http://intermediate-and-advanced-software-carpentry.readthedocs.io/en/latest/day1.html
- PEP8: http://dcjtech.info/wp-content/uploads/2015/12/Python-Syntax-Checker-Codes-Cheatsheet.pdf
- django
- https://docs.djangoproject.com/en/1.11/
- https://docs.djangoproject.com/en/1.11/intro/
- https://docs.djangoproject.com/en/1.11/intro/overview/
- Frontend
- Javascript Language
- https://learnxinyminutes.com/docs/javascript/
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript
- https://www.toptal.com/javascript/javascript-es6-cheat-sheet
- https://hackernoon.com/javascript-es6-exploring-the-new-built-in-methods-b62583b0a8e6
- redux
- http://redux.js.org/
- https://www.scribd.com/document/311967613/Redux-Cheat-Sheet
- react-redux
- http://redux.js.org/docs/basics/UsageWithReact.html
- https://github.com/uanders/react-redux-cheatsheet
- react
- https://facebook.github.io/react/docs/
- https://facebook.github.io/react/docs/hello-world.html
- https://facebook.github.io/react/tutorial/tutorial.html
- redux-time
- https://github.com/Monadical-SAS/redux-time
- https://monadical-sas.github.io/redux-time/#documentation
- react-bootstrap
- https://react-bootstrap.github.io/components.html
- font-awesome
- http://fontawesome.io/icons/
## Practice projects
* **Multiplayer game**
*Level: Beginner*
Build a multiplayer game frontend & backend with django-channels and redux-time. An example would be a drawing game where one player's canvas drawing is synced to another person's scree, and they have to guess which work the user is drawing out of a selection, within a certain amount of time. It should use websockets to transmit the connection state in real time between players, but it can be anything realtime, it doesn't have to be a drawing game. Games with moving characters are harder because collision physics over a connection with latency is difficult to syncronize.
* **Video conference app**
*Level: Advanced*
Requires researching a complex API and implementing a redux-based store to manage a stateful API in a functional deterministic manner.
Build a video conferencing app with WebRTC that has clean management of connection state and an easy UX to video chat with other people by sharing a link
* **Leaderboard UX**
*Level: Medium*
Requires creativity, UX design, user & competitor research, and honing in loose design requirements come up with a good experience.
Design an interactive leaderboard & player ranking interface in React that encourages players to earn more chips and improve their skills. It should balance showing stats & info with remaining clean and encouraging users to take actionable steps to play against more people or learn more theory.