# 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/apply) 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.