Így érdemes:

Ha teljesen laikus vagy, akkor az első résztől olvasd el a honlapot, mert egymásra vannak építve az oldalak! Jobbra a menü... Kire érdemes szavazni? Mindenki lop, vagy lopni fog ugyanúgy, ez a rendszerből adódik. A minimum cél a magyarság (és a fehérek) túlélése. A Fidesz ezt nem tudja teljesíteni (szerintem nem is akarja-> álnemzetiek), a Balliberális (Tisza is az) kifejezetten kiirtani akar! Ezért vagy nem szavazni, vagy Mi Hazánk! Minden más kamu!

5. Moduláris programozás, stb.

 Ezen az oldalon egy kicsit mélyebbre merülünk, és tekintsük át az informatika és a programozás területeit, nézzük meg a moduláris programozás alapjait, és néhány alapfogalmat nézzünk át, meg filozofálunk kicsit. 

Az Informatika Fő Ágazatai

Az informatika (vagy számítástechnika) a problémamegoldás tudománya az információ gyűjtésével, tárolásával, feldolgozásával és továbbításával kapcsolatban. Számos ágazatra bontható:

1. Szoftverfejlesztés / Programozás:

Ez az, amire általában az emberek gondolnak, ha az informatikáról beszélnek. Magában foglalja az alkalmazások (asztali, webes, mobil), operációs rendszerek, játékok és egyéb szoftverek tervezését, fejlesztését, tesztelését és karbantartását.

Alágazatok: Webfejlesztés (frontend, backend, full-stack), mobilfejlesztés, játékfejlesztés, beágyazott rendszerek fejlesztése, adatbázis-programozás, mesterséges intelligencia fejlesztés stb.


2. Hardverfejlesztés:

A fizikai számítógép-komponensek (CPU, GPU, memória, alaplapok, hálózati eszközök stb.) tervezésével, fejlesztésével és gyártásával foglalkozik. Ide tartozik az elektronikai tervezés és a mikrochip-gyártás.

3. Hálózatok és Rendszeradminisztráció (IT Operations):

A számítógépes hálózatok (LAN, WAN, internet), szerverek, adatbázisok és egyéb IT-infrastruktúra tervezése, telepítése, konfigurálása, karbantartása és hibaelhárítása.

Alágazatok: Hálózatbiztonság, felhőszolgáltatások menedzselése (DevOps, Cloud Engineering), rendszerüzemeltetés, IT-támogatás.


Mi az a számítógépes hálózat?

A számítógépes hálózat olyan rendszer, amelyben számítógépek, telefonok, nyomtatók vagy más eszközök kapcsolódnak egymáshoz, hogy adatokat cseréljenek.

Képzeld el úgy, mint egy postahálózatot, ahol a gépek leveleket (adatokat) küldenek egymásnak.


LAN (Local Area Network) – Helyi hálózat

Jelentése: Helyi területű hálózat

Hol találkozhatsz vele? Otthon, iskolában, irodában.

Csak egy kis területet fed le (egy szoba, épület vagy épületcsoport).

Pl.: A laptopod, telefonod és nyomtatód kapcsolódik egy otthoni Wi-Fi routerhez. Ez egy LAN.


WAN (Wide Area Network) – Nagy kiterjedésű hálózat

Jelentése: Nagy földrajzi területet lefedő hálózat

Példa: Az internet is egy WAN.

Összeköti a LAN-okat városokon, országokon, földrészeken át.

Például: Egy magyarországi cég WAN-on keresztül kapcsolódik a németországi irodájához.


WLAN (Wireless LAN) – Vezeték nélküli helyi hálózat

Jelentése: Ugyanaz, mint a LAN, csak vezetéknélküli.

Példa: A Wi-Fi otthonodban vagy egy kávézóban. Az eszközök rádióhullámon keresztül kommunikálnak, nem kábellel.

A Wi-Fi egy WLAN-technológia.


Internet – A hálózatok hálózata

Mi az internet? 

Egy óriási, világszintű hálózat, amely sok WAN és LAN összekapcsolásával jött létre.

Nincs egyetlen tulajdonosa.

Olyan, mint egy globális útvonalhálózat, amin információk "utaznak".


Még néhány fontos fogalom:

Router Irányítja az adatokat az eszközök között. Mint egy postás.

Switch Hálózati elosztó – több gépet köt össze egy hálózaton belül.

Modem Az internetet hozza el hozzád (pl. a szolgáltatótól).

IP-cím Minden eszköz egyedi „címet” kap, amin elérhető a hálózatban.

DNS Olyan, mint egy telefonkönyv: lefordítja a webcímeket (pl. google.com) IP-címre.

Wi-Fi Egy vezeték nélküli kapcsolat a helyi hálózathoz (WLAN).

Bluetooth Rövid hatótávú vezeték nélküli kapcsolat, pl. fejhallgatókhoz.


Összefoglalva egy hasonlattal:

Képzeld el, hogy:

A LAN a házadban lévő szobák közti csengőhálózat.

A WLAN ugyanez, de rádióval, kábelek nélkül.

A WAN a városokat összekötő országos postahálózat.

Az internet az egész világot lefedő postahálózat, ahol minden címhez eljuthat egy üzenet.

A router a postás, aki eldönti, merre menjen az üzenet.

---------------------

Hogyan kapcsolódik egy eszköz az internetre?


1. Kapcsolódás a helyi hálózathoz (LAN/WLAN)

A telefonod csatlakozik a Wi-Fi hálózathoz, vagyis a WLAN-hoz.

Ez a Wi-Fi routered jelét használja.

Ha vezetéken csatlakoznál (pl. PC-vel), akkor LAN-kábelen át tennéd ugyanezt.


2. Router – az otthoni „forgalomirányító”

A Wi-Fi router az, ami az eszközöket összehangolja otthon, és kapcsolatot teremt az internetszolgáltatóval (ISP – Internet Service Provider, pl. Telekom, Digi, Vodafone stb.).

A router általában belső IP-címet ad a telefonodnak (pl. 192.168.1.12).

Ez egy helyi cím, ami csak otthon, a LAN-odon belül érvényes.


3. Modem / Router csatlakozik az internetszolgáltatóhoz (ISP)

A router egy modemen keresztül (vagy a modem be van építve a routerbe) felcsatlakozik az internetszolgáltatóhoz.

Az ISP ad a routerednek egy nyilvános (globális) IP-címet, pl. 84.112.33.45. Ez már az internet felé néz, és ezen keresztül „látják” kívülről az otthoni hálózatodat.


4. A router „fordít” a belső és a külső világ között

Ezt a műveletet úgy hívják: NAT (Network Address Translation) – hálózati címfordítás.

A router „emlékszik rá”, hogy a telefonod kérte a Google-t, és amikor a válasz megjön, visszaküldi a telefonnak.


5. A DNS segít „lefordítani” a webcímet

Te beírod: google.com

De a gépek IP-címekkel dolgoznak, nem nevekkel.

A router vagy az ISP megkérdezi a DNS-szervert: „Mi az IP-címe a google.com-nak?”

A válasz például: 142.250.187.78

A DNS olyan, mint egy névjegyzék vagy telefonkönyv.


6. Kérés kiküldése az internetre

A router ezután elküldi a kérést a Google szerverének, ami lehet az USA-ban, Németországban, stb.

Az adatcsomagok sok-sok útválasztón (routeren) haladnak át, mint egy levelezési lánc.


7. Válasz visszaérkezik

A Google szervere válaszol: „Tessék, itt van a keresési oldal!”

Az adatok visszajutnak a routerhez, az pedig továbbítja a telefonod felé.


Összefoglalva egy ábrával (képzeletben):

Telefonod

   │

  Wi-Fi (WLAN)

   │

Router (helyi IP: 192.168.x.x)

   │

Modem (ISP adja a globális IP-t)

   │

Internetszolgáltató

   │

DNS szerver: google.com ➜ IP

   │

Internetes útvonal (WAN)

   │

Google szerver

   │

vissza ugyanazon az úton

Kiegészítés: Mi kell tehát az internetkapcsolathoz?

Eszköz (PC, telefon) A felhasználó oldala

Wi-Fi / LAN Kapcsolat a routerhez

Router Közvetít, IP-címet ad, továbbít

Modem Internetre csatlakoztat (pl. kábel, optikai)

ISP Internetkapcsolat biztosítása

DNS Webcím ➜ IP-cím fordítás

Távoli szerver (pl. Google) Akihez a kérés végül eljut

---------------------------

Mi az az IP-cím?

Az IP-cím (Internet Protocol cím) olyan, mint egy telefonszám vagy házszám a hálózatban. Ezen keresztül tudják a számítógépek és eszközök, hogy hova küldjék az adatokat.


A számítógéped, telefonod, nyomtatód, de még egy okosizzó is kaphat IP-címet.

Az internetes kommunikáció minden lépése IP-címekre épül.


Milyen formátumban van egy IP-cím?

IPv4 (a leggyakoribb):

Négy szám, pontokkal elválasztva:

Pl. 192.168.0.12 vagy 8.8.8.8

Mindegyik szám 0–255 között lehet.


IPv6 (újabb, hosszabb):

Példa: 2001:0db8:85a3:0000:0000:8a2e:0370:7334

Ezt most nem részletezem, de ha érdekel, szívesen elmagyarázom külön.


Belső (privát) és külső (publikus) IP-címek

Belső (privát) IP-cím

Ez csak a helyi hálózaton (LAN-on) belül érvényes.

Pl.: 192.168.1.10, 10.0.0.5, 172.16.0.1

Ezeket a router osztja ki automatikusan a csatlakozó eszközöknek.

Nem látszanak az internet felől.


Például a telefonod IP-címe otthon lehet 192.168.1.7, de a külvilág ezt nem látja.

Külső (publikus) IP-cím

Ez a világ felé látható cím, amit az internetszolgáltató (ISP) ad a routerednek.


Példa: 84.112.33.45, 5.148.72.91

Ez a cím az, amin az egész otthoni hálózatod elérhető az interneten keresztül (egy irányban, NAT-tal).

Ha egy weboldal megnézi, honnan jöttél, ezt fogja látni.


Hasonlat – lakás és társasház:

Képzeld el:

A külső IP-cím olyan, mint a társasház címe (pl. „Fő utca 12.”)

A belső IP-cím olyan, mint a lakások száma a házon belül (pl. „3. emelet 6.”).

Amikor valaki levelet küld a Fő utca 12-re, a portás (router) tudja, hogy azt a 3/6-os lakásnak (eszköznek) kell kézbesíteni.


Összefoglalás:

Tulajdonság Belső IP-cím (LAN) Külső IP-cím (WAN / internet)

Ki adja? A router Az internetszolgáltató (ISP)

Hol érvényes? Helyi hálózatban Világméretű hálózatban

Példák 192.168.1.1, 10.0.0.12 84.112.33.45, 5.182.71.9

Látható az interneten?

Több eszköz használhatja egyszerre ugyanazt? Igen (külön hálózatokban) Nem


Extra: Hogy talál vissza hozzád az adat?

Mivel a külső IP-cím a routeré, és otthon több eszköz is lehet egyszerre online, a router emlékszik rá, hogy melyik belső eszköz kérte az adatot, és visszairányítja oda. Ezt nevezzük:

NAT = Network Address Translation (Hálózati Címfordítás)

-------------------------

Mi az a MAC-cím?

A MAC-cím (ejtsd: "mek", angolul: Media Access Control address) egy egyedi azonosító, amit minden hálózati eszköz (pl. számítógép, telefon, nyomtató, Wi-Fi kártya) gyárilag kap a hálózati kártyájához.

Ez az eszköz hálózati "névjegykártyája".

Példa egy MAC-címre:

00:1A:2B:3C:4D:5E

12 hexadecimális karakterből áll (0–9, A–F betűk).

Minden egyes eszköz (Wi-Fi, Bluetooth, Ethernet) saját MAC-címmel rendelkezik.

Két eszköz sosem kap ugyanolyat gyárilag.


Mire használjuk a MAC-címet?

A helyi hálózaton (LAN/WLAN) azonosítja az eszközöket.

Például: A router a MAC-cím alapján dönti el, melyik eszköznek ad IP-címet.

A switch vagy router ez alapján továbbítja az adatokat a megfelelő eszköznek.


A MAC-cím nem változik, nem kapod az internetszolgáltatótól, hanem az eszközödé örökre (kivéve, ha kézzel megváltoztatod – ezt hívják MAC spoofing-nak).


IP-cím vs. MAC-cím – Miben különböznek?

Tulajdonság IP-cím MAC-cím

Mi ez? Hálózati cím, amin elérhető egy eszköz Hálózati kártya egyedi azonosítója

Ki osztja ki? A router vagy az internetszolgáltató A gyártó állítja be

Változik? Igen, dinamikus lehet Nem (állandó, de megváltoztatható kézzel)

Milyen típusú? Logikai cím (interneten változhat) Fizikai cím (hardveres)

Hol használják? Helyi és globális hálózatokban Csak a helyi hálózatban (LAN/WLAN)

Példa 192.168.1.12 B4:6D:83:2F:9C:11


Hogy dolgozik együtt a két cím?

Képzeld el a helyi hálózatodat, ahol:

A MAC-cím mondja meg: „Ki vagyok?”

Az IP-cím mondja meg: „Hol vagyok most a hálózaton?”


Ha a számítógéped szeretne küldeni valamit a routernek, akkor:

Tudja annak IP-címét, de meg kell kérdeznie: „Melyik MAC-címhez tartozik ez az IP?”

Ehhez használja az ARP protokollt (Address Resolution Protocol).


Egy egyszerű példa:

Eszköz MAC-cím IP-cím

Laptop 00:14:22:01:23:45 192.168.1.12

Telefon AC:4B:C8:7E:12:EF 192.168.1.13

Router (belső) B4:6D:83:2F:9C:11 192.168.1.1


Összefoglalás egy mondatban:

Az IP-cím egy eszköz aktuális címét mondja meg a hálózaton, míg a MAC-cím az eszköz személyi igazolványa, amit mindig magán visel.

-------------------------------

Mi az a port?

A port egyfajta „kapu” egy számítógépen vagy eszközön, amin keresztül különféle szolgáltatásokkal vagy programokkal lehet kommunikálni.

Hasonlat:

Képzeld el, hogy egy ház (IP-cím) sok ajtóval (port) rendelkezik. Mindegyik ajtó mögött egy másik ember (szolgáltatás) lakik.


A ház = az eszközöd (IP-cím)

Az ajtók = a portok (számokkal azonosítva)

Az ott lakó szolgáltatás = pl. weboldal, e-mail, fájlmegosztás


Miért kellenek a portok?

Az IP-cím csak az eszközt azonosítja. De ha több program is fut az eszközön, akkor tudni kell, melyikhez tartozik a bejövő adat.


Példa: ha megnyitsz egy weboldalt a böngészőben, az adat a 80-as vagy 443-as porton érkezik.


Portszámok típusai

Tartomány Típus Kinek?

0 – 1023 Well-known ports Standard szolgáltatásoknak

1024 – 49151 Registered ports Alkalmazásoknak, szoftvereknek

49152 – 65535 Dynamic / Private ports Ideiglenes kapcsolatkezelésre


Leggyakoribb portok példákkal

Port Szolgáltatás Mire használják?

80 HTTP Weboldalak (nem titkosított)

443 HTTPS Weboldalak (titkosított, biztonságos)

21 FTP Fájlátvitel

22 SSH Biztonságos távoli bejelentkezés

25 SMTP E-mail küldés

53 DNS Webcím ↔ IP-cím fordítás

110 POP3 E-mail letöltés

143 IMAP E-mail olvasás távolról


Példa valós működésre

Tegyük fel, hogy beírod: https://google.com

A böngésződ kapcsolatot kezdeményez a Google IP-címével.


Az adatokat a 443-as porton küldi (mert titkosított, HTTPS).

A Google szerverén a 443-as porton egy program (webszerver) figyel és válaszol.

A válasz visszajön a te böngésződ felé, ami egy véletlenszerű ideiglenes portot használ (pl. 51023), hogy fogadja az adatot.


Port és biztonság

Ha egy port nyitva van, akkor kívülről is elérhető, így:

Jó esetben: működik a szolgáltatás (pl. weboldal).

Rossz esetben: biztonsági kockázat, ha senkinek sem kéne használnia.


A tűzfalak (firewall-ok) lezárják a fölösleges portokat, és csak azt engedik, amire szükség van.


Összefoglalás:

IP-cím Melyik eszközhöz szól az adat

Port Melyik programhoz / szolgáltatáshoz az eszközön belül

Protokoll Milyen „nyelven” beszélnek (pl. HTTP, HTTPS, FTP)

------------------------------

Mi történik pontosan, amikor beírsz egy webcímet a böngészőbe (pl. google.com)?


1. Beírod: google.com a böngészőbe

Ez még csak egy webcím (domain). A számítógépek viszont IP-címeken keresztül kommunikálnak, szóval először ezt kell megtalálni.


2. DNS lekérdezés – „Hol találom meg a google.com-ot?”

A böngésződ a háttérben ezt kérdezi:

„Mi az IP-címe a google.com-nak?”


Ez úgy zajlik:

A géped megkérdezi a beállított DNS-szervert (pl. a routert, vagy a Google DNS-t: 8.8.8.8).

A DNS-szerver visszaadja a választ, pl.:

google.com = 142.250.186.206


3. Kapcsolat felépítése (TCP)

Most, hogy megvan az IP-cím, a géped TCP-kapcsolatot épít ki a Google szerverével:

Az IP-cím: 142.250.186.206

A port: 443 (mert titkosított HTTPS-t használunk)

Ez a kapcsolat olyan, mint egy privát „telefonvonal” a te géped és a szerver között.


4. HTTPS – Titkosított kapcsolat felépítése (TLS/SSL)

A böngésződ és a Google szervere biztonságos titkosítást állapítanak meg:

A szerver egy tanúsítványt küld, amit a böngésződ ellenőriz.

Ha minden rendben, létrejön a titkosított kapcsolat.

Ettől van a kis lakat ikon a címsorban 


5. HTTP kérés küldése

Most, hogy él a kapcsolat, a böngésződ elküldi az első kérést:


GET / HTTP/1.1

Host: google.com

Ez annyit jelent:

 „Kérem a google.com főoldalát!”


6. A Google válaszol – HTML, CSS, képek, stb.

A Google szervere elküldi a weboldal „nyers” tartalmát:

HTML-fájl (a weboldal váza)

CSS-fájl (kinézet: betűk, színek, elrendezés)

JavaScript (funkciók: keresés, animációk)

Képek, ikonok, logók

A böngésződ értelmezi, megjeleníti és rendezi az oldalt ezek alapján.

7. Megjelenik a Google főoldal

Most már nem egy IP-címet vagy fájlokat látsz, hanem egy szépen megjelenített oldalt: logó, keresősáv, nyelvi beállítások stb.


8. Ezt az egész folyamatot 0,2–1 másodperc alatt végzi el a géped.

Összefoglalás lépésekben:

Beírod: google.com

DNS-szerver megmondja: google.com = 142.250.186.206

TCP-kapcsolat kiépül a 443-as porton

Titkosítás (TLS / SSL) beállítása

Böngésződ HTTP-kérést küld: „Kérem a főoldalt!”

A szerver válaszol HTML, CSS, JS és képekkel

A böngésző kirajzolja a lapot

Kész!


Érdekességek:

Ha egyszer lekértél egy weboldalt, a böngésződ cache-eli (eltárolja) egy ideig, hogy gyorsabban újratölthesse.

A DNS-lekérdezés eredménye is ideiglenesen tárolva van, hogy ne kelljen újra kérni.

Ha bármi gond van közben (pl. nincs internet, vagy rossz a DNS), akkor hibaüzenetet kapsz (pl. „A weboldal nem érhető el”).

---------------------------

Mi az a tűzfal, NAT, proxy vagy VPN?

1. Tűzfal (Firewall) – Az őr az ajtóban

Mi ez?

Egy biztonsági rendszer, ami szabályozza, hogy milyen adatcsomagok mehetnek be vagy ki a számítógépedről vagy a hálózatodból.


Olyan, mint egy szigorú portás:

– Beengedem a postást? Igen.

– Jön egy ismeretlen alak a 9999-es ajtón? Nem!


Mire jó?

Megvéd a támadásoktól (pl. hackerek, rosszindulatú programok).

Le tud tiltani bizonyos programokat vagy portokat.

Lehet hardveres (routerben) vagy szoftveres (pl. Windows tűzfal).


Példa:

A böngésződ kérheti az internetet (443-as port ).

Egy rosszindulatú alkalmazás próbálhat más porton küldeni adatot, de a a tűzfal leállítja.


2. NAT (Network Address Translation) – Címfordító a routeredben

Mi ez?

Egy olyan rendszer, ami a belső IP-címeket „lefordítja” egy külső IP-címre az internet felé, és vissza.

Képzeld el úgy, mintha egy recepciós a társasházban átadná a csomagokat:


– A lakásban (belső IP) leadsz egy rendelést

– A recepciós (router) a társasház címét (külső IP) használja

– Mikor megjön a csomag, tudja, hogy azt neked kell visszavinni


Mire jó?

Lehetővé teszi, hogy sok eszköz egyetlen IP-címen osztozzon.

Ezért tud otthon a telefonod, laptopod, tévéd egyszerre netezni.


3. Proxy (proxy szerver) – A közvetítő ember

Mi ez?

Egy közvetítő szerver, ami helyetted küldi el a kéréseket az internet felé.

Olyan, mintha nem te mennél el a boltba, hanem elküldenél valakit.


Mire jó?

Elrejti az IP-címedet a távoli szerver elől.

Lehet szűrni vele: pl. munkahelyen letiltják a Facebookot.

Használható gyorsítótárként (cache) is, hogy bizonyos weboldalak gyorsabban betöltődjenek.


Példa:

A géped nem közvetlenül kérdezi meg a google.com-ot.

Előbb a proxyhoz szól, az megkérdezi helyetted.

A válasz visszajön a proxyn keresztül.


4. VPN (Virtual Private Network) – Titkosított alagút

Mi ez?

Egy titkosított kapcsolat két pont között, általában a számítógéped és egy VPN-szerver között.

Képzeld el úgy, mint egy biztonságos alagutat, amin keresztül közlekedik az internetforgalmad.


Mire jó?

Titkosítja az adatokat, még a saját internetszolgáltatód sem látja, mit csinálsz.

Elrejti az IP-címedet, úgy tűnik, mintha más helyről neteznél (pl. USA, Németország).

Használják távmunkához, vagy földrajzi korlátozások megkerülésére (pl. Netflix régióváltás).


Összefoglalás táblázatban:

Tűzfal Szűri az adatokat Megakadályozza a nem kívánt forgalmat

NAT Belső-külső IP fordítás Egy külső IP-n több eszköz kommunikál

Proxy Közvetít közted és az internet között IP-elrejtés, tartalomszűrés, gyorsítótár

VPN Titkosított csatorna a netre Adatvédelem, IP-védelem, régiókerülés


Melyik mire jó neked, hétköznapi emberként?

A tűzfal védi a gépedet – ez alap, mindig legyen bekapcsolva.

A NAT automatikusan működik a routeredben – nem kell vele foglalkoznod.

A proxy akkor hasznos, ha pl. egy munkahelyi vagy iskolai hálózatban vagy.


A VPN jó választás, ha:

Nem akarod, hogy mások lássák, mit netezel.

Cenzúrát akarsz megkerülni

Más ország tartalmát akarod elérni

( Ha ingyen jó VPN-t (valójában kanadai proxi-t) akarsz, akkor az Opera böngésző az egyik legjobb választás, amibe bele van építve, de be kell kapcsolni.!)

----------------------------------------

Az internet nem egyetlen hálózat, hanem sok-sok kisebb-nagyobb hálózat összekapcsolása. Ezeket a hálózatokat úgy hívják: Autonomous System-ek (AS), vagyis önálló rendszerek. Egy internetszolgáltató (pl. Telekom, Vodafone) is egy AS. Egy nagy egyetem vagy cég saját AS lehet. Ezek a rendszerek szerződések alapján össze vannak kötve.

Az útvonalválasztás kulcsa: routerek és protokollok

Minden ilyen AS-hálózat routereket (útválasztókat) üzemeltet. A routerek egymás közt kommunikálnak, hogy megtudják, merre van a legjobb út egy IP-címhez. Ezt a döntést nem a te modemed hozza meg, hanem a nagyobb routerek az internetszolgáltatók hálózatában.

Fontos protokoll:

BGP (Border Gateway Protocol) – ez irányítja a nagy internetes forgalmat.

Olyan, mint amikor a posta eldönti, melyik országon keresztül küldje a csomagot.

Hogyan jut el egy adat a gépedtől a célhoz?

Tegyük fel, hogy Magyarországon vagy, és megnyitsz egy amerikai oldalt. A te számítógéped elküldi a kérést a modem/routerednek. Az továbbküldi az internetszolgáltatód (pl. Telekom) központi routereihez. Ezek a routerek megnézik: "Merre van a cél IP-cím? "Kinek tudom továbbadni?" A kérés továbbmegy más nagy szolgáltatókhoz (pl. Orange, AT&T, Level 3). Végül eljut az amerikai szolgáltatóhoz, ahol a Google vagy Netflix van. Minden egyes lépésnél a routerek megvizsgálják a lehetőségeket, és a BGP alapján választják ki a legjobb útvonalat (pl. a legrövidebb, leggyorsabb, legkevésbé leterhelt). Az útvonal nem fix. Ha egy csomópont (pl. egy nagy router) meghibásodik, vagy túlterheltté válik, a rendszer automatikusan új útvonalat keres. Ezért tud az internet „önjavítani” – nagyfokú hibatűrésre van tervezve.

Mit csinál a te modemed?

A te routered/modemed csak az első lépést végzi el: továbbítja a csomagot a szolgáltatód első „nagy” routeréhez. Innen kezdve a nagy internetes routerek és a BGP protokoll viszik tovább.

Windows cmd parancsű! Ez kilistázza, milyen útvonalon keresztül jut el az adatcsomagod a Google szerveréhez: országokon, szolgáltatókon, routereken át:

tracert google.com

Hogyan lehet elrejteni az IP-címedet úgy, hogy közben mégis minden válasz visszataláljon hozzád?

A kulcs a "közvetítő rendszer" működésének és az adatkapcsolat logikájának megértése. Nézzük végig külön a két esetet:

VPN – Titkosított alagút, nem valódi IP-hamisítás A géped titkosított kapcsolatot (alagutat) épít ki a VPN-szerverrel (pl. Hollandiában). Minden, amit netezel, először a VPN-hez megy, titkosítva. A VPN-szerver ezután lekéri az adatot (pl. google.com) a saját nevén, tehát az ő IP-címével. A Google a választ a VPN-szervernek küldi vissza. A VPN-szerver ezután visszacsomagolja az adatot a titkosított alagútba, és eljuttatja hozzád. A VPN-szerver pontosan emlékszik, hogy:

„Tibor 192.168.1.10 a titkosított csatornán kért egy weboldalt, visszaküldöm neki a választ.”

Olyan ez, mintha egy barátod elmenne helyetted a boltba, azt mondaná, hogy ő kéri a pizzát, de tudja, hogy neked hozza vissza.

Proxy – Közvetítő, de nem titkosított

A proxy is a saját IP-címét használja, így a céloldal nem látja a te címedet. A proxy jegyzi, hogy ki kérte a választ, és visszaküldi neked. Nem titkosított, tehát ha valaki a hálózatodon „belehallgat”, látja, mit csinálsz. Olyan, mint egy titkárnő, aki helyetted levelez: ő írja alá a levelet, de tudja, melyik kollégának kell visszavinni a választ.

Röviden: Mi történik az IP-címmel?

Kérdés VPN Proxy

A te IP-címed látszik? ❌ Nem ❌ Nem

Ki kommunikál a neten? A VPN-szerver A proxy-szerver

Ki kapja a választ? A VPN/proxy szerver A VPN/proxy szerver

Honnan tudják, hogy a tiéd? A kapcsolat alapján (emlékszik rá) A kérés alapján (nyilvántartja)

Titkosított? ✅ Igen (VPN alagút) ❌ Nem (kivéve HTTPS esetén)

A VPN és a proxy valóban elrejtik az IP-címedet a külvilág elől, de nem feltétlenül véglegesen és nem mindenkinek. A kulcs az, hogy ki működteti azt a köztes szervert (VPN vagy proxy), és hogy naplózza-e a forgalmat.

Lássuk pontosan, hogyan, mikor és kik juthatnak hozzá az eredeti IP-címedhez:

Igen, a VPN/proxy elmentheti az IP-címedet

A VPN/proxy technikai lehetősége megvan rá, hogy nyilvántartsa, ki mikor mit csinált.

Ezeket hívják naplóknak (log files).

Ilyen lehet például:

Melyik IP-cím csatlakozott

Mikor

Melyik weboldalakat látogatta meg

Milyen portokat, protokollokat használt

Hatóságok, kormányzatok hozzáférhetnek ezekhez. Ha a VPN szolgáltató országon belül működik, akkor a hatóság kérhet tőle adatokat. Ha más országban, akkor két ország együttműködése kell (pl. USA ↔ EU). Egyes országok között ilyen gyors adatmegosztási egyezmények léteznek (pl. „Five Eyes” titkosszolgálati szövetség: USA, UK, Kanada, Ausztrália, Új-Zéland). Vannak VPN szolgáltatók, akik nem naplóznak – de ez bizalom kérdése. Egyes szolgáltatók azt mondják: „No logs”, azaz nem tárolnak semmit. Ezt néha független auditokkal igazolják – pl. a ProtonVPN, Mullvad, NordVPN időnként külső cégekkel ellenőrizteti, hogy valóban nem tárolnak naplókat. De végső soron: bíznod kell bennük, mert te nem látod, mit csinálnak.

Összefoglalva:

Állítás Igaz vagy hamis? Miért?

A VPN elrejti az IP-címedet a weboldaltól ✅ Igaz A weboldal a VPN IP-címét látja

Senki nem tudja, hogy te voltál ❌ Nem teljesen igaz A VPN tudja, és lehet, hogy rögzíti

A hatóságok soha nem férhetnek hozzá ❌ Hamis Jogilag kikérhetik az adatokat

A „No Logs” VPN-ek teljesen biztonságosak ⚠️ Részben igaz Csak ha valóban nem tárolnak adatokat

A Tor még biztonságosabb ilyen szempontból ✅ Igen De lassabb és másra való (pl. anonim böngészés)

Az Opera böngészőbe valóban van beépített „VPN”, de fontos tudni, hogy ez nem egy teljes értékű VPN, hanem inkább egy titkosított proxy-szolgáltatás, amit csak a böngészőben használsz. Csak az Opera böngészőben lévő adatforgalmat tereli át egy titkosított csatornán (proxy-n). A géped más programjai (pl. e-mail kliens, torrent, másik böngésző) nem használják ezt a VPN-t.  Hogyan működik technikailag? Amikor bekapcsolod az Opera VPN-t, a böngésződ egy titkosított kapcsolatot (HTTPS-alapú) épít ki egy Opera által működtetett szerverrel. Ezután minden weboldalhoz kapcsolódás ezen keresztül történik. Így a meglátogatott weboldalak nem látják a valódi IP-címedet, csak az Opera szerverét. Akkor ez most VPN vagy proxy? Valójában ez egy titkosított HTTPS proxy – az Opera csak „VPN-nek” nevezi marketing okból.

Összehasonlítás:

Tulajdonság Teljes VPN Opera VPN

Védi az egész eszköz forgalmát? ✅ Igen ❌ Csak az Opera böngészőben

Titkosított csatorna? ✅ Igen ✅ Igen

Elrejti az IP címedet? ✅ Igen ✅ Igen (csak böngészőn belül)

Naplózik? ❌/⚠️ (attól függ) ⚠️ Valamennyit igen (saját szabályzat szerint)

Tudod választani a szerver helyét? ✅ Általában igen ⚠️ Csak régiót (pl. "Európa")


Mennyire biztonságos?

Alap böngészéshez (pl. Wi-Fi-n nyilvános hálózaton) biztonságosabb vele netezni, mint nélküle. Nem biztosít teljes adatvédelmet a géped más programjai számára. Az Opera VPN forgalma átmegy az Opera saját szerverein, tehát ha nagyon érzékeny adatokat küldesz, az Opera (vagy hatóságok) elvileg hozzáférhetnek. Az Opera VPN szolgáltatása például Kanadán keresztül működik, és a szolgáltató mögött kínai tulajdonosi háttér áll (ez adatvédelmi szempontból fontos lehet). Mikor érdemes használni? Ha: Nyilvános Wi-Fi-n vagy, és szeretnél alap biztonságot a böngészéshez. Olyan oldalt akarsz elérni, ami a saját országodból nem elérhető. Nem akarsz külön telepíteni VPN-t. Nem javasolt, ha: Torrentet használsz, E-mailt, banki szolgáltatást végzel nem az Operán belül, Teljes anonimitás vagy adatbiztonság a cél

Mi az a Tor?

(The Onion Router = a „hagyma” router)

A Tor egy ingyenes, nyílt forráskódú hálózat, amely lehetővé teszi, hogy anonim módon böngéssz az interneten.

Úgy tervezték, hogy senki ne tudja egyértelműen megmondani: Ki vagy, Hol vagy, Melyik weboldalt látogattad meg.

Hogyan működik?

A „hagyma” név nem véletlen – a Tor olyan, mint egy többrétegű hagyma:

Minden adat többszörösen titkosított, és több ugráson keresztül halad át, mielőtt eljutna a célhoz.

Te → Tor belépési pont → középső csomópont → kilépési pont → weboldal

A belépési pont tudja, hogy te vagy a feladó, de nem tudja, hová mész.

A középső csomópont csak átirányít.

A kilépési pont tudja, hogy melyik weboldalt kéred, de nem tudja, hogy ki kérte.

Így nincs egyetlen pont, ahol egyszerre látható lenne, hogy ki vagy és hová mész. Ez a Tor legfőbb ereje.

Miért jobb az anonimitás szempontjából?

Funkció VPN Tor

IP-cím elrejtése ✅ Igen ✅ Igen

Ki látja az adatokat? A VPN szolgáltató láthatja A Tor-hálózat nem egyetlen ponton láthatja

Anonimitás ⚠️ Korlátozott ✅ Nagyon magas

Titkosítás ✅ Igen (VPN-szolgáltatóig) ✅ Igen, többrétegű

Sebesség 🚀 Gyorsabb 🐢 Lassabb

A Tor nem csak egy böngésző, hanem egy egész hálózat

De a Tor böngésző (Tor Browser) a leggyakoribb használati mód:

Firefox-alapú

Ingyenes, letölthető: https://www.torproject.org/

Különleges „.onion” végű weboldalakat is el tud érni (ez a dark web része)

Mire jó?

Ha szeretnél:

Anonim böngészést

Elrejteni a valódi IP-címedet

Olyan oldalakat elérni, amik a te országodban le vannak tiltva

Megkerülni a megfigyelést, cenzúrát


Nem való:

Nagy sávszélességű dolgokra (pl. videó, torrent)

Belépés saját fiókokba (pl. Gmail), ha nem akarod, hogy gyanús legyen

Fontos megjegyzés:

A Tor csak akkor ad valódi anonimitást, ha helyesen használod (pl. nem lépsz be saját nevű fiókokba, nem osztasz meg személyes adatot).

A Tor nem egyenlő a dark webbel, de lehet vele .onion oldalakhoz is hozzáférni.

Összefoglalás 1 mondatban:

A Tor egy speciális, titkosított, több ugrásos hálózat, amely sokkal magasabb anonimitást biztosít, mint a VPN vagy a proxy – cserébe lassabb, és nagyobb tudatosságot igényel a használata.

----------------------------
Mi a Domain?
Egy weboldal ip címének emberi nyelvű változata. Az ip cím valójában egy számsor, de nem ezt írjuk be, a böngészőbe, mert az nehézkes lenne, hanem a domain nevet, pl. www.google.com

Mi az URL? 
Az egy adott elem elérési címe, ami lehet videó, egy mp3 fájl, egy fénykép is. 


4. Adatkezelés és Adattudomány (Data Science):

Nagy mennyiségű adat gyűjtésével, tárolásával, elemzésével és értelmezésével foglalkozik, célja az adatokból származó hasznos információk kinyerése és döntések támogatása.

Alágazatok: Adatbázis-kezelés, adattárházak, adatbányászat, gépi tanulás, statisztikai modellezés, Big Data.

5. Kiberbiztonság (Cybersecurity):

Rendszerek, hálózatok és adatok védelme a digitális támadásoktól, jogosulatlan hozzáféréstől, károsodástól vagy információvesztéstől.

Alágazatok: Hálózati biztonság, alkalmazásbiztonság, etikus hacker, biztonsági audit, incidenskezelés.

6. Mesterséges Intelligencia (AI) és Gépi Tanulás (Machine Learning):

7. Rendszerek fejlesztése, amelyek képesek az emberi intelligenciához hasonló feladatok elvégzésére: tanulás, problémamegoldás, döntéshozatal, mintafelismerés.

Alágazatok: Természetes nyelvi feldolgozás (NLP), számítógépes látás (Computer Vision), robotika, szakértői rendszerek.

8. Felhasználói Élmény (UX) és Felhasználói Felület (UI) Tervezés:

Az alkalmazások és rendszerek felhasználóbarát, intuitív és esztétikus kialakításával foglalkozik, hogy a felhasználók számára kellemes és hatékony legyen a használat.

Alágazatok: Interakciótervezés, vizuális tervezés, felhasználói kutatás, információarchitektúra.

9. Számítógépes Grafika és Multimédia:

Képek, animációk, videók és interaktív multimédiás tartalmak létrehozása és manipulálása számítógépek segítségével. Fontos szerepe van a játékfejlesztésben, filmgyártásban és virtuális valóságban.

A Programozás Fő Területei:
A programozás az a folyamat, amely során utasításokat (kódot) írunk, hogy a számítógép végrehajtson egy adott feladatot. Számos területre bontható, gyakran átfedésben az informatika ágazataival:

1. Webfejlesztés:
Frontend (kliensoldali): Az, amit a felhasználó lát és amivel interakcióba lép a böngészőben. Nyelvek: HTML, CSS, JavaScript (React, Angular, Vue.js keretrendszerekkel).

A Front-end és Back-end:
Front end a webfejlesztésben azt a területet jelenti, ahol egy weboldal, webes felület azon részét alakítják, ki amivel a weboldal látogatója találkozik, tehát a gombok, beviteli mezők, a designe, a felhasználói élmény (User Experience – UX). Ezek technikailag alap esetben úgynevezett leíró nyelvvel vannak kialakítva, vagyis olyan programozói nyelvek (HTML, CSS, XML, stb.), amelyek még nem igazán csinálnak semmit, csak leírnak, megjelenítenek, létrehoznak, tartalmaznak valamit.  A HTML nem csak a webes felület alapja, hanem szerintem magát a programozás elsajátítását is ezzel érdemes kezdeni. A JavaScript pedig már olyan nyelv, amely a gombokat, illetve a többi elemet vezérli, és amely a felhasználó tevékenységét kezeli, azaz interaktív, azaz csinál is valamit. A JavaScript már valódi programozás, ezért azzal folytatjuk majd. Ezen kívül a modern front-end fejlesztésben gyakran használnak különböző keretrendszereket és könyvtárakat (pl. React, Angular, Vue.js), amelyek felgyorsítják és hatékonyabbá teszik a fejlesztést, valamint segítenek komplex alkalmazások felépítésében.

2. Backend (szerveroldali): A weboldal "motorja", ami a szerveren fut, kezeli az adatbázisokat, logikát és a kommunikációt a frontenddel. Nyelvek: Python (Django, Flask), JavaScript (Node.js, Express), PHP (Laravel, Symfony), Ruby (Rails), Java (Spring), C#.

Back-end a webes alkalmazás "motorja", vagyis az a része, amit a látogató nem lát és nem is ér el közvetlenül a böngészőjéből. Ez az, ami a háttérben fut, és biztosítja, hogy minden működjön. Képzeld el a weboldalt egy étteremként! A front-end az étterem étlapja, a berendezés, az asztalok, a felszolgálók, mindaz, amit a vendég lát és amivel interaktál. A back-end pedig a konyha, a raktár, az alapanyagok beszerzése, a könyvelés – azok a rendszerek és folyamatok, amik nélkül az étterem nem tudna működni, de a vendég nem látja őket.

Milyen feladatokat lát el a back-end?
A back-end feladatai közé tartozik többek között:
Adatbázis-kezelés: Az adatok (felhasználói adatok, termékek, bejegyzések stb.) tárolása, rendszerezése és kezelése.
Szerver-oldali logika: Az üzleti logika futtatása, pl. regisztráció, bejelentkezés, rendelések feldolgozása, jogosultságok ellenőrzése, adatok lekérdezése és feldolgozása.
API-k (Application Programming Interface) biztosítása: Ez az a "kapu", amin keresztül a front-end kommunikálni tud a back-enddel, adatokat kérhet le tőle, vagy küldhet neki.
Biztonság: A felhasználói adatok védelme, a jogosulatlan hozzáférés megakadályozása.
Integráció: Más rendszerekkel (pl. fizetési rendszerekkel, külső szolgáltatásokkal) való kapcsolódás.

Milyen technológiákat használnak a back-end fejlesztők?
A back-end fejlesztők sokféle programozási nyelvet és technológiát használnak, például:
Programozási nyelvek: Python (Django, Flask keretrendszerekkel), Java (Spring), Node.js (JavaScript), PHP (Laravel, Symfony), Ruby (Ruby on Rails), C# (.NET) stb.
Adatbázisok: MySQL, PostgreSQL, MongoDB, SQL Server.
Szerverek: Apache, Nginx.

3. Full-stack: Olyan fejlesztő, aki mind a frontend, mind a backend területén jártas.

4. Mobilfejlesztés:
Natív: Specifikus platformokra (iOS, Android) fejlesztett alkalmazások, amelyek kihasználják a platform összes funkcióját. Nyelvek: Swift/Objective-C (iOS), Kotlin/Java (Android).
Keresztplatformos (Cross-platform): Egy kódbázissal több platformra is fejleszthető alkalmazások. Keretrendszerek: React Native, Flutter, Xamarin.

5. Asztali alkalmazás fejlesztés:
Programok írása Windows, macOS vagy Linux rendszerekre. Nyelvek: C++, C#, Java, Python (Tkinter, PyQt, Kivy).

6. Játékfejlesztés:
Videojátékok tervezése, programozása és tesztelése.
Nyelvek: C++ (magas teljesítményű játékokhoz), C# (Unity), Java, Python.
Játék motorok: Unity, Unreal Engine, Godot.

7. Adatbázis-programozás (ez egy kicsit részletesebben:
Adatbázisok (SQL, NoSQL) tervezése, kezelése és lekérdezése, valamint olyan alkalmazások fejlesztése, amelyek adatbázisokkal kommunikálnak. Nyelvek: SQL, Python, Java.

Mi az adatbázis?
Adatbázis (angolul: database) egy olyan rendszer, amelyben strukturált adatokat tárolunk, kezelünk és kereshetünk. Egyszerű példa: képzeld el egy Excel-táblázatot, ahol minden sor egy-egy adat (pl. egy ember neve, email címe, telefonszáma), minden oszlop pedig egy tulajdonság (pl. név, email, telefonszám).

Mire jók az adatbázisok?

Az adatbázisok lehetővé teszik, hogy:
-nagy mennyiségű adatot tároljunk (pl. felhasználói adatok, termékek, rendelési előzmények),
-gyorsan lekérdezzünk belőle (pl. "ki rendelt múlt héten Budapestről?"),
-több felhasználó egyszerre használja (pl. weboldal látogatók, admin felület),
-biztonságosan tároljuk az adatokat (pl. jelszavak, pénzügyi információk).

Leggyakoribb típusok

Relációs adatbázisok (RDBMS)
Ezek a legelterjedtebbek. Táblázatokban tárolják az adatokat, amik kapcsolódhatnak egymáshoz.
Példák: MySQL, PostgreSQL, SQLite, MariaDB, Microsoft SQL Server
Lekérdezéshez használt nyelv: SQL (Structured Query Language)
Weboldalakon és vállalati rendszerekben gyakran használják.

Nem-relációs (NoSQL) adatbázisok
Ezek nem táblákban tárolják az adatokat, hanem pl. dokumentumként, kulcs-érték párokban, gráfként, stb.
Példák: MongoDB, Redis, Firebase, Cassandra
Rugalmasságot kínálnak ott, ahol nem feltétlenül kell szabályos tábla.
Mobilalkalmazások, nagy adatmennyiségű rendszerek, valós idejű adatok esetén népszerű.

Hogyan kapcsolódik a weboldalakhoz?
Régen (és még ma is sok esetben) a weboldalak dinamikus tartalmát egy adatbázisban tárolják.
Például:
A látogatók regisztrációkor adatokat adnak meg → ezek bekerülnek egy adatbázisba.
A bejelentkezéskor a weboldal ellenőrzi az adatokat az adatbázisban.
A cikkeket, képeket, hozzászólásokat nem HTML-ben tárolják, hanem adatbázisban → a weboldal „kiszedi” őket megjelenítéskor.

Egy tipikus weboldal háttérben így néz ki:
Frontend (HTML/CSS/JS) → amit a látogató lát
Backend (PHP, Python, Node.js, stb.) → ami „beszél” az adatbázissal
Adatbázis (MySQL, PostgreSQL, stb.) → ahol az adatok laknak

Lépésről lépésre példa:
A projektmappában 3 fájl van. Van egy html weboldal három gombbal, az adat 1, adat2, és adat3 gombbal. Amikor megnyomod az egyik gombot, akkor meghívja a php fájlt, ami kiveszi a .db fájlból a megfelelő adatot, ami a html oldalon a gomb mellett megjelenik. 
sql, adatok.db fájl:

CREATE TABLE adatok (
    gomb_nev TEXT PRIMARY KEY,
    ertek INTEGER
);

INSERT INTO adatok (gomb_nev, ertek) VALUES
('adat1', 435),
('adat2', 322),
('adat3', 777);

Index.html fájl:
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Adat lekérdezés</title>
</head>
<body>
  <h2>Adat lekérdezés gombbal</h2>
  
  <button onclick="lekerdez('adat1')">Adat 1</button>
  <span id="eredmeny1"></span><br><br>

  <button onclick="lekerdez('adat2')">Adat 2</button>
  <span id="eredmeny2"></span><br><br>

  <button onclick="lekerdez('adat3')">Adat 3</button>
  <span id="eredmeny3"></span><br><br>

  <script>
    function lekerdez(gombNev) {
      fetch('adat.php?gomb=' + gombNev)
        .then(response => response.text())
        .then(ertek => {
          document.getElementById('eredmeny' + gombNev.charAt(gombNev.length - 1)).textContent = ' Érték: ' + ertek;
        });
    }
  </script>
</body>
</html>

Adat php fájl:

<?php
// adat.php

if (!isset($_GET['gomb'])) {
    echo "Hiba: nincs gomb megadva.";
    exit;
}

$gomb = $_GET['gomb'];

// SQLite adatbázis megnyitása
$db = new SQLite3('adatok.db');

// Lekérdezés előkészítése
$stmt = $db->prepare('SELECT ertek FROM adatok WHERE gomb_nev = :gomb');
$stmt->bindValue(':gomb', $gomb, SQLITE3_TEXT);

$result = $stmt->execute();
$row = $result->fetchArray(SQLITE3_ASSOC);

if ($row) {
    echo $row['ertek'];
} else {
    echo "Nincs ilyen adat.";
}
?>

Ahhoz, hogy ezt kipróbáld php szerver kell....


8. Beágyazott rendszerek programozása:
Mikrovezérlők, IoT (Internet of Things) eszközök, ipari vezérlőrendszerek programozása. Gyakran alacsony szintű programozás és hardver közeli tudás szükséges. Nyelvek: C, C++, Assembly.

9. Mesterséges Intelligencia és Gépi Tanulás programozás:
Algoritmusok és modellek fejlesztése az adatok elemzésére, mintafelismerésre, előrejelzésre és döntéshozatalra.
Nyelvek: Python (TensorFlow, PyTorch, Scikit-learn könyvtárakkal), R, Java, C++.

10. Rendszerprogramozás:
Operációs rendszerek, illesztőprogramok (driverek), fordítók (compilers) és egyéb alapvető rendszerszoftverek fejlesztése. Mélyreható hardver- és operációs rendszer ismeret szükséges. Nyelvek: C, C++, Assembly, Rust.

11. Tudományos és Numerikus Programozás:
Komplex matematikai modellek, szimulációk és adatfeldolgozó alkalmazások fejlesztése tudományos kutatásokhoz. Nyelvek: Python (NumPy, SciPy), MATLAB, R, Fortran.

Mi a programozás bonyolódásának fő okai:

Komplex problémák és komplex eszközök:

Maguk a számítógépek is bonyolódnak.

A modern szoftvereknek rengeteg igénynek kell megfelelniük: biztonság, platformfüggetlenség, internetkapcsolat, több nyelv támogatása, grafika, UI-UX, stb.

Ezekhez sok rétegű rendszerek kellenek (például: Android OS → Java → Kotlin → XML → Gradle).

Absztrakciók egymásra épülése:

A számítástechnika egymásra épülő absztrakciók világa. Az absztrakció a lényeg kihúzása, és elnevezése, megnevezése, vagy használhatóvá tétele a káoszból, vagy valami ilyesmi.

A számítógép egy univerzális automata, amit az alacsonyabb és magasabb feszültségszintek váltakozásával vezérlünk. Az alacsonyabb feszültséget nullának, a magasabbat egyesnek ábrázoljuk. A nulla és az egyes sorozat részekből áll. Ezeket a részeket kódoknak hívjuk. A kódokat olyan kódokká alakítjuk, amelyeket emberként könnyebben felismerhetünk, kezelhetünk. Ezeknek a kódoknak a működésének a lényegét az ember által jobban érthető szóval címkézzük fel, ezekből a szavakból végül olyan mondatokat, a mondatokból pedig olyan működési parancssort (történetet) próbálunk létrehozni, ami az emberi nyelvhez, de legalább a felfoghatósághoz minél közelebb áll. 

Pl.:

Gépikód (bináris: 0 és 1)

Assembly

C

Java

Kotlin

Android Jetpack

Compose UI

...stb.

Minden réteg egyszerűsít valamit, de egy újabb réteg maga is komplexitást hoz.


Kényelmi rétegek:

Egy 3 soros Kotlin utasítás lehet, hogy 1000 sor gépi utasításra fordul le. Ez kényelmes, de el is „rejti” a valódi működést.

Az emberek kényelmet szeretnek – így alakulnak ki olyan „monstrum” rendszerek, amelyek végül bonyolultabbak lesznek, mint az eredeti probléma.

Túlzott rugalmasság és visszafelé kompatibilitás:

A rendszerek gyakran tartalmaznak régi dolgokat, hogy ne törjék el a korábbi alkalmazásokat. Ez is komplexitást okoz.

Az egyszerűsítés-bonyolítás ciklusa:

Új nyelv (vagy platform) születik → cél: egyszerűsíteni a régit.

Nő a használat, több igény, nő a funkcionalitás, majd nő a komplexitás.

Egy ponton már túl komplex lesz, új eszköz születik, és a ciklus újraindul.

Példák:

Assembly → C → Java → Kotlin → Jetpack Compose → mind az előző egyszerűsítésére indult, de egy idő után önmaga is túlbonyolódott.

HTML → jQuery → AngularJS → React → Svelte → hasonló ciklus.


Hogyan értelmeződik a program a számítógép szintjén?

A számítógép tényleg csak 0 és 1-et ért

Az elektromos szintek (nagyfeszültség: 1, alacsonyfeszültség: 0).

Ez a gépi kód, azaz bináris (pl. 10101011), amit a processzor közvetlenül végrehajt.

Mi az Assembly vagy alacsony szintű nyelv?

Az Assembly ember által olvasható változata a gépi utasításoknak.

Példa (x86):

MOV AX, 4C00h

INT 21h

Ez kb. ennyi gépi kódot jelent hexadecimális ábrázolásban:

B8 00 4C CD 21

Mi történik például a Kotlin kóddal?

Kotlin sem közvetlenül fordul gépi kódra. Az út így néz ki:

Kotlin → JVM bytecode → gépi kód

A Kotlin Java Virtual Machine (JVM) bytecode-ra fordul.

A JVM egy szoftveres „processzor”, ami értelmezi a bytecode-ot.

Az Androidon a Kotlinból .dex (Dalvik/ART) bytecode lesz, amit az Android rendszer futtat.

Példa Kotlin útjára:

kotlin:

println("Hello")

→ Kotlin compiler → .class fájl (JVM bytecode)

→ Android build → .dex fájl

→ Android futtató (ART) → valódi gépi utasításokká fordítja futás közben.

Miért nem lehet csak sima Assembly-ben írni mindent?

Lehetne, de:

1000 sor Assembly = 10 sor Kotlin

Nehéz hibakeresés

Nincs platformfüggetlenség

Nincs kódújrafelhasználás

Nehéz olvasni, érteni, karbantartani

Ezért létezik Kotlin – és még sok más nyelv – hogy emberek számára legyen hatékony a fejlesztés, még ha ez a gép felől nézve bonyolult is.

A nyelvek nem egymásba, egymás után fordítódnak, hanem mindegyik egyből bytecode-ra vagy gépikódra, de a különböző szinten lévő programok, mint hardware, firmware, kernel,  az operációs rendszer, és az applikációk egymásra vannak építve, és egymással együtt kell működniük. Így, logikai szinten kell érteni a rétegződés.

Mit jelent ez a fejlesztőknek?

A gép nagyon egyszerű, a szoftver nagyon összetett, hogy az ember számára egyszerű legyen.

A nyelvek és eszközök: híd az ember és a gép között.

Érdemes tudni a „vas” működéséről, de nem kell mindig azon írni.


Mi az, hogy natív kód? 
A „natív kód” lényegében a gépi kódhoz közeli kód, szinte annak veszik, de valójában még nem a a tényleges gépi kód, nem a nulla és az egyes variációi.

Windows-on ez általában .exe vagy .dll fájl,
Linuxon például egy .out vagy futtatható fájl,
Androidon .so (shared object) fájl lehet például natív kódként beépítve.
Példa:
Ha C-ben írsz egy programot és lefordítod gcc-vel, akkor az egy natív, gépi kódú fájlt hoz létre.
Ez közvetlenül fut a processzoron, nem kell hozzá JVM, Python interpreter vagy más „futási környezet”.

Mi a debug, debuggolás és a debugger?

Hibakeresés, hibajavítás, hibajavító segédprogram.

Mi az IDE?

Integrált FejlesztőkörnyezetIntegrált Fejlesztői KörnyezetIntegrated Development Environment azaz IDE

Mi az SDK?

Szoftverfejlesztői készlet:

API-könyvtárak: Ezek olyan kódgyűjtemények, amelyek lehetővé teszik a fejlesztők számára, hogy hozzáférjenek egy platform vagy rendszer meghatározott funkcióihoz.

Súrolók: Eszközök, amelyek lehetővé teszik a kód hibáinak hatékony azonosítását és javítását.

Fordítók és tolmácsok: Átalakítják a forráskódot egy számítógép által végrehajtható formátumba.

Kódpéldák: Előre megírt részletek, amelyek megkönnyítik az adott funkciók megértését és megvalósítását.

Dokumentáció és útmutatók: Segítik a fejlesztőt a készletben található eszközök hatékony használatában.

A Java-ra külön szó van: JSK

Mi az API?

API = Application Programming Interface

Az API egy programozási felület, ami lehetővé teszi, hogy különböző programok kommunikáljanak egymással.

Példa:

Gondolj az API-ra úgy, mint egy éttermi pincérre:

Te (a programod) leadod a rendelést (kérés – pl. „kérek időjárási adatokat”),

A pincér (az API) átadja a kérést a konyhának (a háttérrendszernek),

Majd visszahozza neked az ételt (az adatokat).

Valós példák: A Google Maps API segítségével beágyazhatsz térképet az appodba.

A Bluetooth API az Androidban lehetővé teszi, hogy a telefonod kezelje a Bluetooth-eszközöket.


Mi a DDK?

DDK = Driver Development Kit

A DDK egy olyan eszközkészlet, amit illesztőprogramok (driverek) fejlesztésére használnak.

Az illesztőprogram egy olyan szoftver, ami lehetővé teszi, hogy a számítógép kommunikáljon a hardverrel (pl. egér, nyomtató, Bluetooth chip).

A DDK tartalmaz kódmintákat, könyvtárakat, dokumentációt stb., hogy könnyebb legyen drivereket fejleszteni.

A Microsoft Windows esetén a DDK része a "Windows Driver Kit" (WDK) néven ismert fejlesztői eszközkészletnek.


Mi a konzol, avagy a parancssor (cmd) vagy a PowerShell?

A számítógépet most is parancsokkal vezérled, de most különböző programok felhasználó felületein keresztül, például a böngésző gombjain keresztül, vagy az operációs rendszered gombjain keresztül. A parancssor egy olyan szoftver, ahol nincsenek gombok, hanem a parancsokat begépeled, és így vezérled a számítógépedet. Sőt, ha nem akarsz képszerkesztőt használni, akkor a parancssori vezérléssel is készíthetsz képeket.

-fájlok másolása, átnevezése, tömeges feldolgozása,

-képek, hangok, videók szerkesztése scriptből,

-weboldalakról adat letöltése, elemzése,

-programok írása, tesztelése, telepítése,

-automatizálás (pl. minden nap egy backup készítése egy mappáról).

Ezt mind egyetlen felületen, máshogy mint parancsokkal nem is lehetne megvalósítani, hiszen ennyi gombot nem lehet kirakni, vagy túl bonyolult és szerteágazó és lassú lenne a gombrendszer a gombrendszer. Ha semmilyen grafikus szoftvered nem lenne a számítógépeden, akkor csak egy parancssori ablak kell, és azzal tudnád működtetni. A régi számítógépek ilyenek voltak...

Amikor a cmd-be (vagy PowerShell-be, Terminalba stb.) beírsz parancsokat, utasításokat adsz a számítógépnek.

Ez szkriptelésnek vagy parancssoros vezérlésnek is nevezhető.

Példa:

dir  → megmutatja a fájlokat az aktuális könyvtárban  

cd mappanév   → belép egy mappába  

cd ..  → ezzel visszalép a magasabb szintű mappába

del fájl.txt → töröl egy fájlt

Ez nem teljes értékű programozás, de alapja lehet például:

automatizálásnak (pl. BAT fájlokkal),

szoftverfejlesztési környezetek használatának,

hibakeresésnek és rendszeradminisztrációnak.

Röviden: nem klasszikus programozás, de programozási gondolkodást igényel.

A parancssorban utasításokat írsz, nem építesz összetett logikát (mint pl. változók, ciklusok, feltételek).

De a BAT fájlokban már lehet feltételes elágazás, ciklus stb., tehát ott már programszerű dolgokat írsz.

Honnan lehet megtanulni a parancssoros parancsokat?

SS64.com (Windows CMD parancsok):

https://ss64.com/nt/

Microsoft dokumentáció:

https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/windows-commands

YouTube-on rengeteg kezdőbarát videó van: "Windows CMD for beginners"

Gyakorlat:

Nyisd meg a cmd-t és írj be:

help – kilistázza az alap parancsokat.

help dir – részletes segítséget ad a dir parancshoz.


Könyvek (ha szereted a nyomtatott anyagot):

„Windows Command Line Beginner's Guide”

„Learning the bash Shell” (ha Linux is érdekel)

Érdemes megtanulni?

Igen, különösen ha érdekel a:

programozás,

szoftverfejlesztés,

rendszergazdai feladatok,

vagy csak hatékonyabban akarod használni a gépedet.


Mi a BAT file?

BAT file = Batch file

A BAT fájl egy szöveges fájl, amiben Windows parancsok vannak egymás után leírva.

Amikor lefuttatod, a parancsokat sorban végrehajtja, mintha kézzel írnád be őket a parancssorba (cmd).

példa:

@echo off

echo Hello, világ!

pause

--------

Ez a kis BAT fájl:

kiírja, hogy „Hello, világ!”,

majd szünetel, amíg le nem nyomsz egy billentyűt.

Hasznos lehet automatizáláshoz, szoftvertelepítéshez, vagy akár egyszerű parancsok gyors végrehajtásához.


Moduláris Programozás:

Nyilván egy hosszabb, nagyméretű programnál előnyös, ha több egységre bontjuk a szoftverünket. Ekkor átláthatóbb is lesz a program, sőt, a profiknál sokszor úgy működik, hogy a nagyobb programokon többen dolgoznak, és akár külön ember csinálja az egyik modult, és egy másik ember a program másik fájlját. Sőt, esetleg más programnyelvet is használnak a rendszer kialakításához.

A komolyabb programokat általában egy fejlesztői szoftverrel, amit IDE-nek hívnak írják meg. Ilyen pl. a Visual Studio, Android Studio, stb., amikben olyan többet tudó nyelveken is programozhatunk, mint a C vagy a Kotlin. Ugyanakkor ezeket a nyelveket is lehet szövegszerkesztőben (pl. Notepad, Notepad++, nano, vim stb.) írni, mert az IDE tulajdonképpen csak kényelmi eszköz, automatikus kiegészítést, hibajelzést, projektkezelést stb. nyújt. Az IDE észreveszik a fájlokat, automatikusan összerendezi őket a nyelv logikája alapján, és segít hibát keresni, fordítani, futtatni.
C nyelv esetében a kiterjesztés egyébként .c Kotlin esetében .kt
Ha tesztelni szeretnéd az ilyen nyelveken megírt programodat, akkor azonban compilerre (fordítóra) mindig szükséged lesz, de ez lehet külön is az IDE-től. 

A JavaScript esetében a böngésző megoldja a fordítást, így viszonylag egyszerűbben  kipróbálhatjuk a moduláris programozást is vele.


JavaScriptet valóban lehet egyszerű .html vagy .js fájlban írni. 


HTML-ben például így hívjuk meg a külső .js modult:
<script type="module" src="main.js"></script>

Több <script> fájl használata HTML-ben:

<script src="modul1.js"></script>
<script src="modul2.js"></script>
<script src="foprogram.js"></script>

Modern mód: ES6 modulok:
Import:

// main.js
import { hello } from './utils.js';
hello();

Export:

// utils.js
export function hello() {
  console.log("Szia a modulból!");
}

Nem baj, ha még nem érted, itt egy konkrétabb példa:
Most egy olyan konkrét példát mutatok, hogy egy HTML oldalba van egy gomb, amit ha megnyomunk, akkor összeadja azt, hogy 2+2= 4 Viszont ez úgy van megoldva, hogy a program egyik része a html fájlba van ágyazva, a többi meg .js fájlba. 

Ez a kis projektünk, konkrétan három fájlból áll:

  1. index.html – tartalmazza a gombot és az eredmény helyét.

  2. main.js – ez figyeli a gombot, és meghívja a számolást.

  3. math.js – ebben lesz maga az összeadás.

Az index.html fájlnak a kódja:

<!DOCTYPE html>
<html lang="hu">
<head>
  <meta charset="UTF-8">
  <title>Összeadás modulokkal</title>
</head>
<body>
  <h1>Egyszerű összeadás (2 + 2)</h1>
  <button id="calcButton">Számolj!</button>
  <p>Eredmény: <span id="result">?</span></p>

  <!-- Itt kapcsoljuk be a JavaScriptet -->
  <script type="module" src="main.js"></script>
</body>
</html>

A main.js fájlnak a kódja:

// Importáljuk az összeadó függvényt a másik fájlból
import { osszead } from './math.js';

document.getElementById('calcButton').addEventListener('click', () => {
  const eredmeny = osszead(2, 2);
  document.getElementById('result').textContent = eredmeny;
});

A math.js fájlnak a kódja:

// Külön fájlban van a logika
export function osszead(a, b) {
  return a + b;
}

Magyarázat:

  • A HTML tartalmaz egy gombot és egy helyet az eredménynek.

  • main.js reagál a kattintásra, és meghívja a math.js fájlban lévő összeadást.

  • math.js csak egyetlen funkciót tartalmaz, amit export-álunk, hogy máshonnan elérhető legyen.

  • main.js import-álja ezt a függvényt, így tudja használni.


Ezt a három fájl, ha windows-od van, jegyzettömbbel írd meg (egyszerűen másold bele), és UTF-8-ként ments el, mert a betűk nem fognak jól megjelenni másképpen a benne lévő <meta charset="UTF-8"> sor miatt, ami a magyar ékezetes betűket jeleníti meg helyesen. Egyébként ki is lehet venni belőle, és akkor jól fogja megjeleníteni, akkor is, ha nem UTF-8 ként van elmentve... A fájlokat azonos mappába tedd, és úgy nevezd el őket, és olyan kiterjesztéssel, ami meg van adva!

Ha az index fájlra kettőt rákattintasz, akkor betölti a szoftverünket, de a gombra kattintva csalódni fogsz, mert a szoftverünk nem csinál semmit. Miért? Mert sajnos már minden böngészőbe be van építve a CORS politika. A böngészőben jobb egérgombbal, majd vizsgálat a console ki fogja írni a hibát!
Ez egy böngésző biztonsági mechanizmus ami megakadályozza, hogy a moduláris JavaScript programunkat teszteljük. Erre a legegyszerűbb megoldás:

Ez egy BAT fájl lesz, amin keresztül megnyitva a chrome böngésződet, kikapcsolja a CORS-t! Vigyázz, hogy csak teszteléshez használd, ne netezéshez! 

1. Másold be az alábbi szöveget egy új fájlba:

@echo off
echo Indul a Chrome CORS nélkül...
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="%TEMP%\chrome-cors-test"

2. Mentsd el ezzel a névvel szintén UTF-8-ba:

indits-chrome-cors-nelkul.bat

Zárd be a böngésződet, majd katt erre a fájlra! Próbálj a kezdeti dolgokon átlépni, és elkerülni az internetezést, mert most úgy indítottad el a Chrome böngésződet, hogy kikapcsoltad a CORS biztonsági működést, csak írd be a cím keresőjébe az index fájlod elérési útját. Most megjeleníti a weboldalad, és a gombra kattintva ki fogja írni, hogy 4. 

Tehát a moduláris programunk működik...

Ezután zárd be a böngésződet, és normálisan nyisd meg az internetezéshez, most már biztonságos módban! 

Később, amikor IDE-t fogsz használni, már érteni fogod a programfát! 

------------
Az XML

Mi az XML lényege?

XML (Extensible Markup Language) nem egy programnyelv, hanem egy leíró nyelv, azaz nem csinál semmit, hanem igazából csak adatok tárolására használják. Annyit csinálunk, hogy az adatokat felcímkézzük, és struktúrába rendezzük. 

Például, ha autókereskedésről van szó, akkor rendezhetjük úgy az adatokat, hogy vannak a személygépkocsik, vannak a kisteherautók, vannak a lakókocsik. Ez három különböző kategória, és ezekben hozunk létre alkategóriákat, tehát pl. a személygépkocsiknál a különböző típusok, mint a Mercédesz, a BMV, Toyota, és ezekben is lehet alkategóriákat létrehozni, pl. a 10 évnél fiatalabb BMV-k, a tíz évnél öregebb BMV-k. 

Tehát, amikor MXL dokumentumot csinálunk, akkor az adatainkat címkézzük, és strukturáljuk.
Az XML fájlok létrehozásánál az adatokat a HTML-hez hasonló fa struktúrában alakítjuk ki, a címkék bármik lehetnek, azokat mi találunk ki, de ugyanolyan nyilakba tesszük < > mint a HTML-ben. A fa struktúra tulajdonképpen azt jelenti, hogy van a gyökér (a fő kategória  azaz az autó kereskedés), amiben az összes további adat benne van, és leány kategóriák, amelyek egymás mellett vagy egymásban helyezkednek el. Ahogy címkézzük az adatokat, akkor az adatoknak különböző típusaik lesznek, amik azt is elmondják, milyen szinten, és hol a fában a helye az adatnak. 

Például  egy  CD bolti rendszer esetében ilyen típusú adatok lehetnek:
CD címe, a dalok szerzője, a dal címe: <cd>, <szerzo>, <dalcim>.  tehát bármit kitalálhatunk tageknek (címkéknek).

Mivel egy szerzőnek több dala is lehet, ezért a dal címe alacsonyabb típusú adat, mint a dal szerzője. 
Az XML célja hogy platform függetlenül, szabványosan lehessen tárolni adatokat, amelyeket aztán bármilyen rendszer (pl. Java, Python, Kotlin, vagy éppen a HTML-t használó böngésző) is képes legyen értelmezni. A rendszerek felismerik az XML szabványosított szerkezetét, és amikor beolvassák (parse-olják) az XML fájlt, értelmezik a benne lévő adatokat, és azokat akár más formátummá is tudják alakítani. 

Az XML-ben a programok vizuális felületének (User Interface, rövidítve: UI), amely a gombokat a beviteli mezőket, stb. is tartalmazza, adatait is el lehet helyezni.

Mi az XSLT? Hogyan kapcsolódik az XML-hez?

XSLT (Extensible Stylesheet Language Transformations) egy speciális nyelv, ami XML adatot más formátumba tud átalakítani – például:
HTML megjelenítéshez (böngészőbe)
egy másik XML formára
akár JSON-ra, vagy más adatstruktúrára.

Ez gyakorlatilag egy fordító szabályrendszer, ami azt mondja meg:
„Ha találkozol egy <termek> címkével, azt írd át HTML-ben így: <div class="termek">…”
Amikor UI adatokat tárol az XML, akkor a fájlunkat már kötöttebb szabályok szerint kell felépítenünk, hogy az XSLT mint egy sablon, át tudja fordítani HTML oldalra.

Tehát ez a folyamat:
1. XML: az adat
2. XSLT: a sablon, hogy mit kezdjünk az adatokkal
3. HTML: a végeredmény

Példa:
Másold bele a jegyzettömbbe, és mentsd el XML fájlként:

<termekek>
    <termek>
        <nev>Kávé</nev>
        <ar>990</ar>
    </termek>
</termekek>

Amikor megnyitod a böngésződdel a kódot látod, de nem UI, illetve weboldalként fogja megnyitni.

Az XSLL egy Sablont nyomd rá, és utána ugyanez a fájl így fog kinézni. Most ezt írd bele az xml fájlba, és most nyisd meg a böngésződdel!
:
<xsl:template match="termek">
  <div class="termek">
    <h2><xsl:value-of select="nev"/></h2>
    <p>Ár: <xsl:value-of select="ar"/> Ft</p>
  </div>
</xsl:template>

Nálam hibát ír ki, de fogadjuk el, hogy
ebből a böngésző egy ilyen HTML-t készít:

<div class="termek">
  <h2>Kávé</h2>
  <p>Ár: 990 Ft</p>
</div>

-------------------

Kávé

Ár: 990 Ft

-------------------

Az XML remek köztes formátum, ha különböző nyelvek vagy rendszerek kommunikálnak.
Például:

Egy Python program XML-be írja az adatokat.
Egy C# program beolvassa azt.
Egy JavaScript alkalmazás XSLT-vel megjeleníti.
Ez azért működik, mert az XML szabványos, tehát minden nyelv képes értelmezni.

És mi a helyzet az Androiddal?

Android fejlesztés során:
az XML fájlokat nem XSLT-vel, nem HTML-re fordítjuk, hanem a rendszer (pl. Kotlin vagy Java kód) használja őket a UI (User visuális felület) felépítésére.
A rendszer érti, hogy <Button> = gomb, <EditText> = beviteli mező stb., mert ezek szabványos Android komponensek.
Tehát az Android XML speciális:
nem szabadon választott címkék vannak, hanem előre definiált név szerint történik az értelmezés.
nem böngésző, hanem az Android rendszer értelmezi.

A programozási nyelvnek tehát ismernie kell az XML szerkezetét (pl. a címkéket), vagy valamilyen előre lefektetett szabvány szerint kell eljárnia (pl. XML Schema, vagy XSD alapján)...

Összefoglalva:
XML Adatok strukturált, szabványos tárolása
XSLT XML adatok átalakítása más formátumba (pl. HTML)
HTML Webes megjelenítés
Android XML Felhasználói felület leírása Androidon, rendszerszinten értelmezett
Python/Java/Kotlin + XML A program beolvassa és használja az XML-t az adatok vagy felület érdekében.

Ha tovább szeretnél elmélyülni akkor errefelé lehet:
-hogyan lehet Pythonból XML-t írni vagy olvasni,
-hogyan készül egy egyszerű XSLT átalakítás lépésről lépésre,
-vagy hogy pontosan hogyan épül fel egy Android XML layout és hogyan használja a Kotlin kód.

Mi az Objektumorientált programozás?

Az OOP egy programozási szemlélet, ahol a programot objektumok alkotják.
Az objektumok a valós világ dolgait (például egy autót, felhasználót vagy terméket) modellezik a programban.

A lényeg: a program elemei “dolgokként” (objektumokként) vannak kezelve
Egy objektum:
Tulajdonságokkal (adatokkal) rendelkezik → pl. egy autó: szín, sebesség, típus

Műveletekkel (függvényekkel/metódusokkal) rendelkezik → pl. gyorsítás(), fékezés()

A 4 alappillér (ez a lényege az OOP-nak):

Encapsulation (Kapszulázás)
Az adatokat és a műveleteket egy egységbe zárjuk (objektumba), és elrejtjük a belső működést.

Haszon: a kód biztonságosabb, kevésbé hibás, és jobban kezelhető.

Inheritance (Öröklés)
Egy új osztály átvehet egy meglévő osztálytól tulajdonságokat és viselkedést.

Pl. egy Jármű osztályból származhat az Autó és a Motor.

Polymorphism (Polimorfizmus)
Ugyanaz a művelet többféleképpen viselkedhet különböző objektumoknál.

Pl. egy rajzol() metódus mást csinál egy Kör, mint egy Téglalap esetén.

Abstraction (Absztrakció)
Csak a fontos dolgokat mutatjuk, a részleteket elrejtjük.

Olyan, mint amikor egy autót vezetsz – nem kell tudnod, mi történik a motorban, csak használod a pedálokat.

Kotlin példa: 

open class Allat(val nev: String) {
    fun eszik() {
        println("$nev eszik.")
    }
}

class Kutya(nev: String) : Allat(nev) {
    fun ugat() {
        println("$nev ugat.")
    }
}

fun main() {
    val bloki = Kutya("Blöki")
    bloki.eszik()  // Örökölt metódus
    bloki.ugat()   // Saját metódus
}

Allat osztály = alap (szülő) osztály
Kutya = örökli az Allat tulajdonságait és viselkedését
bloki = egy konkrét objektum

Mlért jó az OOP?
A kód átláthatóbb és újrahasznosítható.
Könnyebb a karbantartás és bővítés.
A való világ dolgait természetesen modellezi.

Mi a Github?


Egy olyan weboldal, közösség, és rendszerahol tárolhatod a kódjaidat, azokat másoknak is elérhetővé teheted, ha akarod, sőt, megengedheted, hogy azokat mások letölthessék, vagy akár fejlesszenek, javítsanak rajta.