# Autoaprendizaje Divertido

Recursos para aprender a programar de manera autónoma y lúdica.

Te será útil interactuar con este [currículum](https://curriculum.raspberrypi.org/).

## Plataformas en línea

* [code.org](https://code.org/learn)
* [hourofcode.com](https://hourofcode.com/)
* [Codecombat](https://codecombat.com/)
* [CodinGame](https://www.codingame.com/start)
* [CheckiO](https://py.checkio.org/)
* [Python Challenge](http://www.pythonchallenge.com/)
* [SQL Murder Mistery](https://mystery.knightlab.com/)
* [The SQL Schema Verse](https://schemaverse.com/)
* [Screeps (avanzado)](https://screeps.com/)

## Videojuegos de pago

* en [Steam](https://store.steampowered.com/tags/en/Programming/)

## Scratch

* [Tutoriales del MIT](https://scratch.mit.edu/studios/1817151/)
* [Tutoriales de Scratch School](https://www.scratch.school/)

## App Inventor

* [Curso para 4º ESO en catalán](http://alexandria.xtec.cat/course/view.php?id=679) y [en inglés](http://alexandria.xtec.cat/course/view.php?id=753): 99 horas y 17 temas donde entra diseño app + programación app + monetitzación. Sólo nos interesan los temas 3, 9, 10 y 16
* [Curso para CFGM en catalán](http://alexandria.xtec.cat/course/view.php?id=584): 20 horas AppInventor + 20 horas PhoneGap
* [Tutoriales del MIT](https://appinventor.mit.edu/explore/ai2/tutorials)

## Arduino

* <https://playground.arduino.cc/Main/SketchList#Games>
* <https://www.oxgadgets.com/2011/07/arduino-serial-communication.html>

## Python

* Python + [Turtle](https://docs.python.org/3/library/turtle.html):
  * <https://www.mclibre.org/consultar/python/lecciones/python-turtle-1.html>
* Python + [Blender](https://www.blender.org/):
  * <https://docs.blender.org/manual/en/latest/advanced/scripting/introduction.html>
* Python + [RoboCode](https://robocode.sourceforge.io/)
  * <https://github.com/turkishviking/Python-Robocode>
* (temp) Python + Juegos en terminal:
  * <https://github.com/asweigart/PythonStdioGames/>
* Python + [PyGame](https://www.pygame.org/):
  * <https://www.raspberrypi.org/magpi-issues/Essentials_Games_v1.pdf>
* Python + [Arcade](https://arcade.academy/):
  * <https://realpython.com/platformer-python-arcade/>
* Python + [Minecraft](https://minecraft.gamepedia.com/Minecraft_Wiki):
  * <https://www.raspberrypi.org/magpi-issues/Essentials_Minecraft_v1.pdf>
  * <https://github.com/martinohanlon/mcpi>
  * <https://www.stuffaboutcode.com/p/minecraft-api-reference.html>
* Python + Raspberry Pi [GPIO](https://www.raspberrypi.org/documentation/usage/gpio/):
  * <https://www.raspberrypi.org/magpi-issues/Essentials_GPIOZero_v1.pdf>
  * <https://realpython.com/python-raspberry-pi/>
  * <https://gpiozero.readthedocs.io/en/stable/recipes.html>
* Python + Aplicaciones con interfaz gráfica ([Tkinter](https://docs.python.org/3/library/tkinter.html), [PyQt](https://riverbankcomputing.com/software/pyqt/intro), [wxPython](https://www.wxpython.org/), [PySimpleGUI](https://pysimplegui.readthedocs.io/), ...):
  * <https://realpython.com/learning-paths/python-gui-programming/>
* Python + Sistemas y Ciberseguridad: mil y una librerías ...
  * [Scapy](https://scapy.net/) para crear paquetes TCP/IP
  * [shodan](https://shodan.readthedocs.io/) para interactuar con el buscador Shodan
  * [smtplib](https://docs.python.org/3/library/smtplib.html) para enviar correo
  * [Fabric](http://www.fabfile.org/) para automatizar tareas de administración
  * [dnspython](https://www.dnspython.org/) para consultas DNS
  * [python-whois](https://github.com/richardpenman/whois) para consultas WHOIS
  * [PyPDF4](https://github.com/claird/PyPDF4) para procesar o crear pdf
  * [ipaddress](https://docs.python.org/3/library/ipaddress.html) para cálculos de subnetting
  * [pyHook](https://sourceforge.net/projects/pyhook/) para crear keyloggers
  * [psutil](https://psutil.readthedocs.io/), [subprocess](https://docs.python.org/3/library/subprocess.html), [os](https://docs.python.org/3/library/os.html) y [sys](https://docs.python.org/3/library/sys.html) para interactuar con procesos y el sistema
  * [shutil](https://docs.python.org/3/library/shutil.html) para manipular ficheros a nivel de directorio
  * etc.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://acastan.gitbook.io/programacion/motivar.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
