Oktatás, óraadás

Az informatikai tréningek egyik nehézsége a jó oktató megtalálása: valljuk be, hogy ha valaki jó előadói képességekkel rendelkezik, akkor gyakran kevesebb a gyakorlata - míg ha szakmailag elkötelezett, nagy tudású szakember, akkor gyakorta az iparból érkezett "kocka", aki nem tudja átadni a tudását.
Két évtizedes szakmai múlttal a hátam mögött (mint fejlesztő, fejlesztési bezető, project manager, üzleti elemző, rendszertervező, informatikai vezető és cégvezető, valamint rendszeradminisztrátor) magas szintű és kurrens technológiai tudással rendelkezek az IT területén, mindezt kombinálva megfelelő kommunikációs képességekkel, "tanári vénával". Elérhető vagyok közvetlen klienseknek, illetve oktatás -és training szervezőknek.

A növekvő komplexitás

Kevesebb, mint húsz évvel ezelőtt az első publikus internetes munkám, a Hungarian TOP1000 alig néhány száz sor kódból állt, mégis piacvezetővé tudott válni, miközben több ezer felhasználót szolgált ki egy egymagos - emlékeim szerint talán 90MHz-es - CPU-n futtatva. Ezzel szemben ma egy "egyszerű", pár perc alatt telepíthető, ingyenes fórum motor több tízezer sor, ami integrálódik egy rakás külső rendszerrel - például: FaceBook regisztráció, Google Analytics, stb. -, és ahol egyetlen HTML oldal mérete nagyobb, mint az első számítógépem (C64) teljes memóriája volt.
Azt gondolom, hogy analóg módon a Moore-törvénnyel, a szoftverek komplexitása is exponenciálisan növekszik. A szoftverfejlesztés különféle módszertanokkal, fejlesztői környezetekkel, könyvtárakkal, egyre nagyobb absztrakciós szintekkel próbálja meg kézben tartani ezt a jelenséget - kisebb-nagyobb sikerrel. Ennek eredménye végső soron az, hogy a szakmában élen maradni akaró, de legalábbis lemaradni nem kívánó fejlesztőnek folyamatosan tanulnia kell - ha másért nem is, legalább azért, hogy a megfelelő eszköz kiválasztását el tudja végezni egy adott feladat esetén.

A training fontossága

Hiszek abban, hogy gyakorlati dolgokat úgy tudunk a legjobban megtanulni, ha egyszerűen elkezdjük őket csinálni. Ez a "learn-by-doing" elve. "Éles" projekten tanulni valamit azonban általában nem vállalható kockázat, ha pedig csak mellékesen, az online dokumentációkat olvasgatva próbálunk meg új ismereteket szerezni, teljesítménykényszer hiányában rosszabb a hatásfokunk - már ha egyáltalán belekezdünk a tanulásba, és nem tartjuk időfecsérlésnek.
Ezért fontos kiemelten a tréning. Egy pár napos intenzív oktatás át tud fogni egy fél éves szemeszternek megfelelő anyagot, a tréningen történő megjelenés pedig predesztinálja azt, hogy az időt a tanulásra szánjuk - másokkal együtt, inspiráló környezetben.

Témák

Néhány példa a témákból, melyekkel kapcsolatban oktatást vállalok. Angol vagy magyar nyelven.

NoSQL, MongoDB

Bevezetés a NoSQL világba; a MongoDB

Mi az a NoSQL, és hogy viszonyul egyéb adatbázis típusokhoz? Hol és miért használjuk - és persze hol nem. Néhány ismertebb NoSQL adatbáziskezelő (MongoDB, ElasticSearch, CouchDB, stb.) ismertetése. Gyakorlati MongoDB alapú tervezés, modellezés, parancsok és lekérdezések. MongoDB replikáció, cluster, aggregáció, mapreduce, stb.

Perl

Perl programozás (különféle szintek)

A Perl5 programnyelv ismertetése, programozása. Procedurális és objektum orientált progrmozás. A CPAN használata. Saját modulok írása. Utasítások, vezérlő szerkezetek, reguláris kifejezések, I/O, adatbáziskezelés. Modern Perl (Moose, Catalyst). Rövid kitérő a Perl6 irányába.

PHP

A PHP programozása (különféle szintek)

A PHP programnyelv ismertetése, programozása. Procedurális és objektum orientált progrmozás. Ismertebb kiterjesztések, konfiguráció, CLI, webszerver modul. Utasítások, vezérlő szerkezetek, I/O, környezeti változók, adatbáziskezelés. Gyakori kiegészítők (composer, MVC framework-ök, stb.) Verziók közötti különbségek.

Web fejlesztés

Weblapok fejlesztése

Általános weblap fejlesztési oktatás. CMS rendszerek, egyedi fejlesztések. Módszertanok. Biztonságtechnika. Kliens oldali technológiák. Bootstrap, JavaScipt, JQuery, HTML, HTML5. Adatbáziskezelők, adatmodellezés. Külső rendszerek illesztése. Tesztelés, tesztelhetőség. Szerver oldali fejlesztések, lehetőségek. Üzemeltetés.