diff --git a/guide/10_exercise.md b/guide/10_exercise.md
new file mode 100644
index 0000000000000000000000000000000000000000..fe086dd29392fb30b930659b8cc8e978cb61b48d
--- /dev/null
+++ b/guide/10_exercise.md
@@ -0,0 +1,164 @@
+0. Virtuális környezet és Modulok bemutatása gyakorlatban
+
+```python
+# Beolvasás
+#
+# builtins.py fájlból jön ez az "open" függvény
+# első paramétere a fájl neve és mindig onnan értékelődik ki
+# ahonnan indítottuk a pythont.
+# utána jövő paraméter, hogy hogyan nyitjuk meg a fájlt.
+# r - read
+# w - write: felülírja az egészet
+# a - append: fájl végére ír hozzá
+# x - Create: Létrehozza a fájlt.
+
+# r,w,a,x -et próbálják ki
+
+# Készítsenek egy 01_file.txt -t vagy hasonlót
+
+# Read:
+fajl = open("01_file.txt", "r")
+print(fajl.read())
+
+fajl.close() # Mindig zárják be
+
+# Write
+fajl = open("01_file.txt", "w")
+fajl.write("Okay. ")
+# Mi történt a fájlal? - Felülírta teljesen
+
+
+fajl.close()
+
+# Append
+fajl = open("01_file.txt", "a")
+fajl.write("Okay?")
+# Mi történt? - Végére írta
+
+
+fajl.close()
+
+
+# Create
+fajl = open("something_new.txt", "x")
+# Mi történt? - Létrehozta
+# Ha újra lefutatják mi történik? - Errort kaptunk, ezt kezeljük is le!
+
+fajl.close()
+```
+
+```python
+# Előző példában fájl újra létrehozáskor kaptunk
+# egy hibát!
+# Python ezeket az úgynevezett "objektumokat" szokta
+# dobni, mikor hiba keletkezik és különféle
+# adatokkal rendelkeznek, mint üzenet.
+# Előzőben volt egy: FileExistsError: [Errno 17] File exists: 'something_new.txt'
+
+try: # Ezen a blokkon belüli dolgokat majd elkapja
+    fajl = open("something_new.txt", "x")
+    fajl.close() # Ha errort kap, akkor nem nyitja meg a fájlt,
+                 # szóval nem kell a finally blokkba tenni
+except FileExistsError as fe: # Itt feltudjuk típus szerint sorolni, hogy mit kapjon el.
+    print(fe)                 # Ha oda írjuk, hogy "as ...", akkor abba bele menti.
+                              # Első körben as nélkül. "Hogyan tudnánk kiírni a hibát?"
+
+
+# Ezután írjuk ki, hogy "kész a fájl" hibától független
+
+try:
+    fajl = open("something_new.txt", "x")
+    fajl.close() # Ha errort kap, akkor nem nyitja meg a fájlt,
+                 # szóval nem kell a finally blokkba tenni
+except FileExistsError as fe:
+    print(fe)
+finally:
+    print("Fájl elkészítve! (Vagy már el volt)")
+```
+
+1. Készítsetek egy Python szkriptet, ami a https://hanyadikhetvan.attiss.eu/api -ról
+   leszedett információ alapján kiírja, hogy hanyadik hét van.
+
+```python
+# https://hanyadikhetvan.attiss.eu/api
+
+import requests
+
+
+# Mi az az API?
+# Application Programming Interface, a lényeg, hogy
+# ez az interfész, amin 1-1 alkalmazást elérünk és valamilyen
+# formában tudunk vele kommunikálni.
+#
+# Nézzék meg, hogy mi van a https://hanyadikhetvan.attiss.eu/api oldalon.
+# Ez egy JSON, mely egy sztenderd adatközlési mód a weben,
+# a lényeg, hogy kulcs érték párosokat tudunk az oldalon lévőhöz hasonlóképp
+# leírni.
+# Na és használjuk!
+
+r = requests.get('https://hanyadikhetvan.attiss.eu/api')
+
+print(r) # <Response [200]> - Különböző státuszkódokkal térhet vissza
+         # egy API, pl 200 - OK, vagy 404 - Not Found
+# Vannak beépített függvényeink
+print(r.status_code) # Státuszkód számként
+print(r.ok) # Státuszkód 200 és 400 közé esik
+
+# Na de olvassuk ki az adatunkat végre
+print(r.content) # hmm ez így nem lesz tökéletes nekünk. Látható, hogy b'', azaz
+                 # ezek bájtok, továbbá egy új sor is van benne
+print(r.json()) # Újabb beépített függvény, mely készít nekünk egy Dictionary-t!!
+print(type(r.json())) # <class 'dict'>
+print(r.json()["week"]) # 5
+
+# Végleges kód:
+
+import requests
+
+r = requests.get('https://hanyadikhetvan.attiss.eu/api')
+
+print(r.json()["week"])
+```
+
+2. Írjátok meg a saját "hanyadikhétvan" apitokat.
+
+```python
+# Ehhez a flask könyvtárat fogjuk használni,
+# mellyel képesek vagyunk nagyon könnyedén
+# webszervereket készíteni.
+
+import flask
+import requests
+
+# Inicializáció. Ez az objektum fő amin
+# keresztül mindent elérünk Flask-ben.
+# Kosntruktorban átadtuk a jelenlegi App nevét,
+# emlékeztek ha ez = "__main__" akkor ezt a fájlt
+# indítottuk el.
+app = flask.Flask(__name__)
+# Engedélyezzük, hogy logoljon mindent
+app.config["DEBUG"] = True
+
+
+# Megmondjuk, hogy a /-re GET-el ezt a függvényt hívja meg.
+# Hogy ez hogyan működik a háttérben?
+# - Nézzenek utánna a különböző Python dekorátoroknak :)
+@app.route('/', methods=['GET'])
+def home():
+    # Lekérjük az előző oldalról :D Laziness 100
+    r = requests.get('https://hanyadikhetvan.attiss.eu/api')
+    # Visszatérünk vele
+    return r.json()
+
+app.run()
+```
+
+3. Kössétek össze az első szkriptetekkel
+
+```python
+import requests
+
+r = requests.get('http://127.0.0.1:5000')
+
+print(r.json()["week"])
+```