Milyen vezetők a milliárdos techmogulok?

Bill Gates, Mark Zuckerberg, Larry Page, Jeff Bezos, Steve Jobs, Elon Musk, Zhang Yiming neve mindenkinek ismerős. Biztosan mindenki társítana hozzájuk rögtön cégnevet, projektet, küldetést, akár többet is. Milyen hard- és soft skill birtokában vannak a milliárdos techmogulok? Mi a szakterületük, azon belül mivel foglalkoznak? Milyen vezetők? Hogyan lehet velük kooperálni? Honnan származik igen erős küldetéstudatuk? Munkájukon kívül mivel foglalkoznak még? Vannak-e közöttük közös pontok, tulajdonságok, konfliktusok? Mitől sikeresek, eredményesek?

A Forbes üzleti magazin évről-évre megjelenteti a leggazdagabb emberek listáját. Közülük számos üzletember számítástechnikával, IT technológiával, szoftverfejlesztéssel, informati­kával foglalkozott/foglalkozik. Közülük válogattam ebben a blog bejegyzésben:

Mindhárom elemzett nagy vezető általában „nehéz ember”. A szakterületükön belül kiválóak, értenek ahhoz, mit csinálnak. Ez sokszor technológiai hard skilleket jelent. A vezetéshez viszont sok-sok soft skill is szükséges. Gyakran autokratikus stílust képviselnek, azaz tekintélyi, hatalmi eszközökkel, céltudatosan, fenyegetéssel érik el nagy céljaikat, amik erősen motiválják, vezérlik őket. A beosztottakra többnyire úgy gondolnak, mint kizsákmá­nyolható lehetőség, akik rendelkeznek a szükséges tapasztalatokkal, amire támaszkodnak a vezetők, de ezen túl a beosztottak emberek is (érzésekkel, gondolatokkal, véleménnyel), ami ezeknek a vezetőknek kevésbé vagy egyáltalán nem számít. Egy-egy projekt koordinálásában azonban mindegyikük kiváló, akár többféle szerepben is. Ez többnyire segít „elviselni őket”, hiszen meggyőző a szakértelmük.


Bill Gates

Bill Gates (1955-) amerikai üzletember, szoftverfejlesztő, feltaláló, filantróp, a világ egyik leggazdagabb embere. Életének mérföldkövei:

Szülei sikeres üzletemberek voltak. Érdeklődési területének meg­felelően a Lakeside középiskolába járt (1968-1973), mert ott kimagasló volt a számítás­tudomány specializáció. Felsőoktatási tanulmányait a Harvardon (1973-1975) matematika szakon kezdte, de 1976-ban halasztott és nem szerzett diplomát.

Gates első vállalkozása a Paul Allennel közösen alapított Traf-O-Data, amely a seattle-i utakon végzett forgalommérés adatait dolgozta fel mikroszámítógép segítségével. Az IT-ban hírnevét elsősorban a grafikus interfész forradalmasítása során végzett tevékenységéért szerezte. A Microsoft vezérigazgatója 1975-től.

A grafikus interfész ötletének eredete a ’60-as évekig nyúlik vissza, de sokáig laboratóriu­mokban, a nagyközönségtől elzártan maradt a koncepció. Az Apple alapító-tulajdonosának, Steve Jobsnak felkeltette az érdeklődését a Xerox PARC kutatólaboratóriumban folyó munka, illetve számítógépük, a Xerox Star, és az Apple elkezdett dolgozni a grafikus interfészen. Az Apple és a Microsoft ebben az időben szoros partneri viszonyban álltak, a Microsoft különféle szoftvereket fejlesztett a konstruktőr számára. A kapcsolatnak köszönhetően Gates tudomást szerzett a megvalósítási fázisba lépett tervről. Ő maga is elkötelezettje volt a grafikus felületnek. Steve Jobs előrelátóan olyan megállapodást kötött a Microsofttal, amelyben ki kellett jelenteniük, hogy 1983 decemberéig nem szállítanak grafikus felhasználói felületet az MS-DOS-hoz. Gates elhatározta, hogy az MS-DOS-hoz is kifejleszt egy grafikus képernyőt, ez lett a későbbi Windows. Amint ez Jobs tudomására jutott, lopással és ipari kémkedéssel vádolta meg Gatest, de akkor még sikerült elsimítani a konfliktust, mivel a Windows még csak ötlet szintjén létezett. 1984. január 23-án bemutatták az Apple Macintosht, amely óriási sikert aratott. A bemutatón Gates is részt vett, és kifejezte szándékát minél több Microsoft alkal­mazás Macintoshra történő adaptálására. A Microsoft következő generációs operációs rend­szere IBM-kompatibilis rendszerekre a grafikus felülettel rendelkező Windows 1.0 lett, amely kereskedelmi forgalomba majdnem két év késéssel, 1985. november 20-án került.

Bill Gates és felesége, Melinda 2000-ben hozta létre a Bill és Melinda Gates alapítványt. Az eleinte számítástechnikai irányultságú tervek (interneten elérhető nyilvános könyvtárak létrehozása) után a házaspár figyelme a szegény gyerekek támogatása és az orvosi célú kutatások felé fordult. Célul tűzték ki a gyermekhalandóság csökkentését, valamint az Egyesült Államokban beindítottak egy lakhatási programot hajléktalan családok számára. 2003-ban Indiában AIDS-ellenes kutatásokat támogatott az alapítvány, illetve malária-ellenes vakcinák kifejlesztésére fordítottak 258 millió dollárt. E két betegség ellen a szervezet ezt követően is kitartóan küzdött. 2006-ban az alapítvány három alappillérre helyezte tevékenységét, melyek a globális egészségügy, a globális fejlődés, illetve az Egyesült Államokban tapasztalható munkanélküliség csökkentése új munkahelyek teremtésével. Az alapítvány projektjei az évek során folyamatosan bővültek a fenntartható mezőgazdasági fejlődés, a természeti katasztró­fák elleni gyors reagálás, az éhínség leküzdése, a gyermekbénulás elleni harc, védőoltások és más hasonló témákkal, mely projektek elsősorban a fejlődő világ országaira fókuszáltak. Bill Gates 2012-ig 28 milliárd dollárt költött jótékonyságra. 2008-ban felhagyott a Microsoft-beli napi munkával, hogy minél több időt tudjon jótékonysági tevékenységére fordítani.

Bill Gates 2005. március 2-án lovagi címet kapott II. Erzsébet brit királynőtől, elsősorban jótékonysági tevékenységének elismeréseként. Világszerte hírnévre tett szert.

Bill Gates legfontosabb vezetői tulajdonságai voltak

  • Céltudatos
    Gates kezdettől fogva arra fókuszált, amihez a legjobban – és mindenki másnál jobban – értett: a szoftverre. Ezt kemény munkával a lehető legmagasabb szintre tökéletesítette. Évtizedeken át képes volt kitartóan követni célját, bármilyen akadályok kerültek útjába. Céltudatossága megmutatkozik jótékonysági tevékenységében is.
  • Elkötelezett
    Az volt az álma, hogy minden háztartásban legyen számítógép. Ezt a célt gyakorlatias módon, lépésenként haladva kívánta megvalósítani. Vezetői gyakorlatában azt az elvet követte, hogy „Ahelyett, hogy megpróbálnánk egyből a csúcsra jutni, egyszerre csak egy lépést teszünk”.
  • A változásokból előnyt kovácsolt
    „Az egyetlen biztos dolog a változás, és minél jobban tudunk alkalmazkodni hozzá, annál sikeresebbek lehetünk.” Bill Gates tisztában volt azzal, hogy az üzleti életben mindig vannak fluktuációk és változások, amelyekhez a siker elérése érdekében alkalmazkodni kell. Ezzel a hozzáállással egy olyan vállalatot hozott létre, amely túlélte a nehézségeket, válságokat, és sikerrel jött ki belőlük.
  • Szenvedélyes, mindent beleadva dolgozott
    Gates hitt abban, hogy „Ha valamit érdemes csinálni, akkor azt érdemes a lehető legjobban csinálni”. Óriási lelkesedéssel és szeretettel csinált mindent. Gates szerint rendkívül fontos, hogy mindent, amit az ember elvállal, a tőle telhető legnagyobb odaadással végezze.
  • Önképző
    Annak ellenére, hogy abbahagyta a felsőoktatást és tisztában volt a formális oktatás korlátaival, Gates számára a tanulás egy élethosszig tartó folyamatot jelent, és vezetőként is ezt a meggyőződést adta át az embereinek. Folyamatosan tanult, képezte magát, fejlesztette a kommunikációs és társas készségeit, tanulta a nyilvános beszéd fortélyait. Emellett rengeteget írt és olvasott. Többet, mint amennyit legtöbbünk valaha is fog egész életében. A tudás – ahogy Gates vallja – korlátlan, az emberben pedig bölcsességet és alázatot kell, hogy eredményezzen felsőbbrendűség helyett.
  • Jótékonykodó
    Bill Gates a világ egyik leggazdagabb embere, azt is elmondhatjuk róla, hogy ő az egyik azok közül, akik jótékonysági munkájuk által a legtöbbet adják vissza az emberiségnek, lásd fenn: Bill és Melinda Gates Alapítvány.
  • Jövőkép-orientált
    A Microsoft azért tudta legyőzni versenytársait, mert Gates mindig, folyamatosan egyre nagyobb és nagyobb jövőképet vizionált.

Bill Gates ismert gyenge pontjai voltak vezetőként

  • Konfliktuskerülő
    Gates nem szeretett konfrontálódni. Gyakran amennyire csak lehetett, kerülte a konfliktusokat, mert kényelmetlenül érezte magát ezekben a helyzetekben.
  • Arrogáns
    Amikor valaki mélyreható tudással rendelkezik egy témában, amit szenvedéllyel kutat, könnyen átcsúszhat a túlzott magabiztosságból az arroganciába. Gates önérvényesítő volt, nyíltan kinyilvánította az általa helyesnek vélt elképzeléseket, ötleteket. Ha úgy érezte, hogy az ő ötlete a legjobb, akkor elvárta, hogy azt kövessék. Amennyiben kiderült, hogy az adott elképzelés mégsem működik, Gates könnyen arrogánssá vált, amivel megnehezítette mások munkáját.

Steve Jobs

Steve Jobs (1955-2011) amerikai feltaláló és üzletember volt. Az Apple multinacionális IT vállalat társalapítója, egykori elnök-vezérigazgatója. Jobs irányítása alatt fejlesztette ki a cég egyik fő termékét, a kultikus Macintosh számítógépet, valamint az iPod médialejátszót, az iPhone okostelefont és az iPad táblagépet. Életének mérföldkövei:

A fiatal Steve Jobsra nagy hatással volt apja ezermester-tudása és tökéletességre való törek­vése. Jobs az iskolai éveket unalmasnak találta, később pedig beilleszkedési zavarai voltak. Több csínytevése volt, de örökbefogadó szülei laza fegyelemmel nevelték. A Life magazin egyik éhező gyerekeket mutató címlapjának hatására megingott a bizalma a keresztény vallásban. Jobs a Homestead középiskolában tanult, ahol kiemelten foglalkozott elektronikával. Kipró­bálta a marihuánát és az LSD-t is. Különc volt megjelenési és étkezési szokásait illetően. Egy elektronikai témájú órán ismerkedett meg az öt évvel idősebb, zseniális Steve Wozniakkal. Habár a szintén némileg aszociális Wozniak jelleme különbözött Jobsétól, mégis összebarát­koztak. Később együtt alapították meg az Apple vállalatot.

Vegyük sorra legfontosabb találmányait, amelyek elkészültében többféle szerepet is betöltött (technológiai innovátor, tervező, termékmenedzser, folyamatmenedzser, értékesítő):

  • Apple I., 1975: korának megfelelően „teljesen összeszerelt” számítógép volt, de tápegységgel, monitorral, burkolattal, de még billentyűzettel se rendelkezett, csak a készre szerelt alaplap volt meg a szükséges csatlakozóhelyekkel.
  • Apple II., 1977: az egyik első rendkívül sikeres, tömeggyártású mikroszámítógép, kapcsolóüzemű tápegységgel, értékesítése fogyasztói piacra irányult: az amerikai háztartásokat célozta meg.
  • Macintosh 128k (1984): az első üzleti sikert hozó számítógép a Classis Max OS grafikus felhasználói felülettel rendelkező operációs rendszerrel.
  • Apple-boltok (2001-től): exkluzív üzlethálózat az Apple termékek kizárólagos értékesítésére szánva.
  • iPod (2001): az első hordozható mp3 lejátszó.
  • iTunes-bolt (2004): legális digitális zeneletöltési lehetőség, online platform.
  • iPhone (2005): az első saját, zárt platformos okostelefon és egyben fejlesztői platform és online alkalmazásbolt.
  • iPad (2010): az első óriási táblagép, ezzel az Apple mindenhol jelen van, ahol csak lehet az elektronikai piacon.

Egy lopás története: Steve Jobsszal kapcsolatban az egyik legtöbbet emlegetett kritika, hogy ellopta a Xerox PARC által kifejlesztett grafikus felhasználói felület (GUI) és az egér ötletét, megfosztva a feltalálót a jogos sikerétől. A valóság azonban ennél árnyaltabb. Habár Jobs a Xerox PARC által fejlesztett találmányt felhasználta, sőt a „lopás tényét” is elismerte, jóval többet tett egy technika átvételénél. A Xerox PARC által készített rendszer nem csak nagyon drága, de működése is kényelmetlen és kidolgozatlan volt. Jobs a Xerox PARC egeret nem csak továbbfejlesztette, hanem az árát 300 dollárról mindössze 15 dollárra csökkentette. A grafikus kezelőfelület pedig jóval kifinomultabb és felhasználóbarátabb lett, mint az eredeti. Habár nem közismert, de a Xerox PARC 1981-ben – jóval Steve Jobs előtt – bemutatta a maga modelljét Xerox Star néven. Azonban a forradalmi gép üzleti bukás volt és mindössze 30 ezer darabot tudtak értékesíteni. Jobs így lényegében egy olyan technológiát „lopott el”, amit feltalálója nem tudott sikeresen hasznosítani. Ez az eset jó példája Jobs munkásságának, amikor mások számára sikertelen vagy kevésbé sikeres technológiát gondol újra és áttervezve sikerre viszi azt.

Steve Jobs legfontosabb vezetői tulajdonságai

  • Nem szívesen delegált.
  • Jobs tudta, hogy a kreativitás csak „összekapcsolja a dolgokat”.
  • Megtalálta az egyensúlyt a munkatársai felhatalmazása és a példamutatás között.
  • Távol tartotta a kreatív munkatársait a kritikusoktól.
  • Az innováció néha a kivonásról szól. „Hagyjuk el a nem szükséges dolgokat, funkciókat, nyessük le a vadhajtásokat.”
  • Rendíthetetlenül szenvedélyes volt cégei iránt.
  • Nem félt másként gondolkodni.
  • „Sokkal többre van szükséged, mint a vízióra – makacsságra, szívósságra, hitre és türelemre van szükséged ahhoz, hogy megtartsd az irányt” – mondta Edwin Catmull, a Pixar társalapítója. „Steve esetében egészen a határig nyomul, hogy megpróbálja megtenni a következő nagy lépést előre.”
  • „A nagyszerű dolgokat az üzleti életben soha nem egy ember csinálja, hanem egy csapat ember.”
  • Hatékony prezentációs technikát fejlesztett ki.

Elon Musk

Elon Musk (1971-) dél-afrikai származású amerikai mérnök, vállalkozó és multimilliárdos újító, a világ egyik leggazdagabb embere. Nevéhez fűződnek a következő cégek/projektek: Zip2, X.com, PayPal, SpaceX, Tesla Inc., SolarCity, The Boring Company, Neuralink, Starlink, Hyperloop. Napjaink egyik géniusza, megszállott zseni, magával ragadó jövőképpel és tömény ambícióval. Életének mérföldkövei:

12 évesen játékprogramot írt, amivel 500 dollárt keresett. 17 évesen Amerikába szeretett volna emigrálni, de csak Kanadában kapta meg az állampolgárságot. Fizikát és közgazdaság­tant tanult, szerzett is 2 diplomát, majd az USA-ba költözött. 1995-ben meg alapította az öccsével a Zip2 vállalatot, majd ezt el is adták 1999-ben 345 millió dollárért a Compaqnak. Musk vállalatai az elektronika köré csoportosítható technológiákkal foglalkoznak, ő maga pedig az elektromos járműveinek (Tesla típusok), akkumulátorainak és napenergiás termékei­nek terméktervezési, mérnöki és globális gyártási munkálatait látja el. Űrkutatással foglalkozó vállalata kifejlesztette a Dragon űrhajót és a Falcon hordozórakétát, amelyek képesek a Nem­zetközi Űrállomás ellátására, innovatív, nagy arányban újrahasznosítható/visszatérő modulok­ból állnak.

Elon Musk vezetői tulajdonságai

  • Megszállott
    A munkája a lételeme. Hajthatatlan. Minden ébren töltött órájában formálja, finomítja és megvalósítja elképzeléseit. Szenvedélyesen merül bele a munka legapróbb részleteibe is. Napjainkra elért sikerének kulcsa, hogy heti kb. 100 órát dolgozik. Extrém magas elvárásokat támaszt önmaga és a cég emberei felé is, és hidegvérrel kirúgja azokat, akik nem képesek megugrani ezeket. Nagyon személyes kapcsolat fűzi találmányaihoz és vállalkozásaihoz. Ez a szenvedély és szeretet pedig ragályos: bizalmat, tiszteletet, sőt odaadást, imádatot vált ki másokból. Hosszú távú és másokat is magával ragadó jövőképpel rendelkezik. Rendkívüli ambícióval és kitartással valósítja meg mindazokat a dolgokat, amiket mindenki más lehetetlennek tart. Musk jövőképe, a sikerei mögött rejlő hajtóerő: az emberiség jobb jövője. Egy olyan világ, amely a fosszilis energiahordozók helyett környezetbarát energiaforrásokkal működik. Egy olyan világ, amely elektromos autókat használ, amely meghódítja az űrt és kolóniákat épít a Marson. Ezenfelül Musk azáltal, hogy megosztja grandiózus jövőképét és céljait a munkavállalókkal, képes magához vonzani a világ legtehetségesebb, legjobb szakembereit. Még olyankor is, amikor más vállalatok jelentősen nagyobb fizetéseket vagy kedvezőbb feltételeket ígérnek nekik. Az egyik tehetséges szakembere így nyilatkozott erről: „Amikor döntenem kellett, hogy Musknak akarok-e dolgozni vagy egy másik cégnél, ahol többet fizetnek, eldobtam minden logikát és óvatosságot, és a kreatív géniusz mellett döntöttem.”
  • Csapatban gondolkodik
    Musk folyamatosan nyeri el követőinek bizalmát még a bizonytalan helyzetekben is azáltal, hogy kiszámítható, megbízható és átlátható. Ezért tartanak ki mellette a befektetői és támogatói még a gazdaságilag instabil időszakokban is. Musk rendkívüli mértékben tudja inspirálni az embereit. Kulcsfontosságú számára, hogy a legjobb embereket a számukra legmegfelelőbb munkakörökben alkalmazza. Majd ezt követően magas követelményeket támasszon feléjük és – amennyiben teljesítik ezeket – tisztességes javadalmazásban részesítse őket. Ugyanakkor igen gyorsan kirúgja azokat, akik nem végzik munkájukat kellő szenvedéllyel és lelkesedéssel.
  • Rendíthetetlenül optimista
    Musk ötleteit sokan kételyekkel fogadják. Őt azonban semmilyen módon nem befolyásolja mások szkepticizmusa, és nem törődik azzal, ha mások nem hisznek benne. Folyamatosan kiáll azért, amiben hisz. A kritikát, ellenvéleményeket azonnal lereagálja, és konkrét tényekkel érvelve támasztja alá meggyőződéseit. Musk számára a kudarc a kreatív, alkotó folyamat természetes velejárója. Nagyra értékeli a visszajelzéseket. Folyamatosan arra törekszik, hogy egyre jobban teljesítsen, mert tudja, hogy csak így juthat el céljai megvalósításához. Musk a kudarcok ellenére is mindig megtartja rendíthetetlen optimizmusát, és teljes bizonyossággal tudja, hogy sikert fog elérni.
  • Az állandó tanulásra, fejlődésre fókuszál egyéni és vállalati szinten egyaránt
    Muskot a folyamatos kíváncsiság, tudásszomj és tanulási vágy jellemzi. Az összes vállalkozásának minden részletét alaposan kitanulta. Hibáiból, kudarcaiból és sikereiből egyaránt gyorsan tanul. Minden új információra nyitott, és nem fél a változtatástól, amikor új információk segítségével ismeretlen szituációkhoz kell alkalmazkodnia. Dolgozóit is arra biztatja, hogy merjenek elrugaszkodni a megszokottól, a hagyományos módszerektől, és legyenek kreatívak, innovatívak. „Igen, lehet, hogy hibázni fog az ember. Ha sosem hibázik, az azt jelenti, hogy nem eléggé újító.”
  • Nagyra értékeli önmagát
    Musk a gyengeségei helyett az erősségeire fókuszál, és ezeket nem rejti véka alá. Nem szerénykedik képességeivel, tudásával, sőt, nyíltan vállalja azokat.
  • Nyers stílusban kommunikál
    Muskot agresszív, követelőző magatartás jellemzi. Makacs és rugalmatlan. Nyers, durva stílusban kommunikál és konfrontálódik. Egocentrikus, és ez a mindennapos kommunikációjában is jelen van. Hiányoznak az érzelmi intelligenciához szükséges bizonyos képességei. Nem képes az empátiára, és nem tudja felismerni mások érzéseit. Számára egyébként sem fontos a dolgozók lelkivilága, vagy az, hogy az emberei hogyan érzik magukat a cégnél. A termelékenység és a hatékonyság élvez prioritást a humán tényezőkkel szemben.

Források

Kutatók éjszakája 2024

Kutatók éjszakája logó

Kutatók éjszakája logó

A Kutatók éjszakája nemzetközi rendezvénysorozat 2005-ben indult. Magyarország 2006-ban csatlakozott. Azóta évről-évre egyre több intézmény nyitja meg hazánkban kapuit, szervez érdekes programokat, sok-sok településen, több száz helyszínen, több ezer eseményt meghirdetve sok tízezer érdeklődő/résztvevő látogatónak biztosít tartalmas estét.

Bár a kezdeményezés elsősorban a kutatói pálya népszerűsítését szolgálja, ezért leginkább a tizen- és huszonévesekre számít, az események vonzók és elég érdekesek ahhoz, hogy a kisgyerekektől a legidősebbekig mindenki megtalálja a számára izgalmas programokat. Korábban nagyobb felsőoktatási intézmények és kutatóintézetek szerepeltek döntően, de az utóbbi néhány évben egyre több kisebb intézmény, tehetséggondozással foglalkozó középiskola, cég, egyesület is csatlakozott a rendezvényhez. A Kutatók éjszakája rendezvény minden meghirdetett programja ingyenes.

Rendezvényünk plakátja

Az it-tanfolyam.hu 2024-ben is hirdetett programokat az eseményhez kötődően. Programjainkat elsődlegesen követőinknek, aktív hallgatóinknak és az alumni csoportunkban hirdettük meg, de persze nyílt rendezvényként valósult meg. Az eseményekre regisztrálni kellett a weblapon. A regisztrációs időszak két hétig tartott, szeptember 13-26-ig. Programjainkra szeptember 27-én 21:00-23:55-ig került sor.

21:00-21:25 – Kiss Balázs: OpenAI GPT nyelvi modell – tippek a hatékony használatához
Az előadó az egyike volt a Doktoranduszok programoznak – újratöltve 24 órás Mesterséges intelligencia modul oktatóinak. Saját tapasztalatait összegzi az alábbi hívószavak alapján. Alap AI funkcionalitás, megerősítéses és gépi tanulás lehetőségei és korlátai, nyelvi modellek képességei. Említ néhány generatív AI funkciót a kép, ábra, grafikon, térkép, hang, animáció, videó generálása és ezek tömeges feldolgozása kapcsán. Előkerülnek a programozási tételek, valamint alkalmazásuk multimédia analitikával együtt. Ha lesznek haladók a látogatók között, akkor az előadó bemutat néhány objektum- és aspektusorientált tervezés során használható AI eszközt, illetve igény esetén néhány kutatómunkát támogató AI eszközt is.

21:35-21:55 – Kaczur Sándor: Algoritmusok vesebeteg-donorok párosítására
Hogyan működik 2007 óta Nagy-Britanniában a vesebeteg-donorok párosítása? Sima csere 2 pár esetén adódik. 3 pár esetén körbeadják a vesét egymásnak – ez már jóval összetettebb. A felépített óriási adatbázisban akár több száz lehetőség is adódhat. A probléma megfelelő párosítási algoritmus és számítógép nélkül, pusztán emberi erővel megoldhatatlan lenne. Az implementált algoritmus futási ideje mindössze 30 perc. A párosítást követően a következő lépés a műtétek egyidejűsége, és a donor szervek „utaztatása” minden lehetséges földi, vízi, légi úton és lehetséges közlekedési eszközzel. Hogyan működik mindez a gyakorlatban? Milyen korlátok, problémák vannak? Milyen adatok alapján dönthető el a betegek „kompatibilitása”? Ezek közül mi kapcsolódik az egészségügyhöz és a szállításhoz? Az előadó próbál válaszokat adni, de lehet, hogy a végén több lesz a kérdés, mint a válasz. Vajon egyáltalán felmerül a párosítási algoritmus hatékonysága ekkora társadalmi hasznosság mellett? A program a Java tanfolyamaink orientáló moduljához kötődik. A tavalyi előadás anyaga kiegészült néhány igazán látványos animációval, szimulációval.

22:00-22:25 – Szegedi Kristóf: Játékprogramok nyerő stratégiáinak elemzése
A tudásalapú rendszerek elméleti alapjaihoz tartoznak a mesterséges intelligencia különböző megoldáskereső módszerei, az állapottér-reprezentáció és a klasszikus keresési stratégiák, heurisztikák. Egy játék állapotait nyilvántartjuk egy adatszerkezetben. Lehet, hogy néhány lépést előre kalkulálunk (kiterjesztünk) és ezek elágazásaiból fát (fa adatszerkezet) tudunk építeni. Ezeket hatékonyan karban kell tartani konstrukciós és szelekciós műveletekkel. Heurisztika alapján döntéseket kell hozni. Vajon melyik állapot a jobb, vagy kevésbé rossz, legalább olyan jó mint ahol járunk? Ki kell értékelni és abba az irányba érdemes haladni, amelyben végül a döntések sokasága igazolja és egyben adja a nyerő stratégiát. Ha ez nem megy, akkor még mindig játszhatunk nem vesztő stratégiával, azaz lehet cél a hosszabb játékmenet, vagy akár a döntetlen állapot is. Az előadás ismertet néhány tipikus problémaszituációt, játékteret leképező reprezentációs gráfbeli navigációt és összehasonlít néhány fabejáró/gráfbejáró stratégiát. A program mindhárom Java tanfolyamunk orientáló moduljához kötődik. Előismeretként feltételezünk némi jártasságot a programozási alapismeretek, programozási tételek, ciklusok, metódusok, tömbök témakörökből.

22:30-22:55 – Hollós Gábor: Algoritmikus gondolkodás fejlesztése: mintaprogramok, esettanulmányok
Az előadó bemutat néhány olyan mintaprogramot/esettanulmányt – természetesen a fokozatosság elve alapján -, amelyek kiválóan alkalmasak a közös eszmecserére. Az algoritmusok átgondolása segíti a szabályalapú megközelítést. Sémák, programozási tételek is előkerülnek – sőt ezek egymásba ágyazása is előkerül. Iteráció vs. rekurzió. Különböző adatszerkezetek képességei, funkciói, konstrukciós és szelekciós műveletei. Az algoritmikus megközelítés szemléletmód állandóságot, stabilitást jelent gondolkodásunkban, tágítja szellemi tevékenységünk körét, célt és formát ad egy probléma megoldásának. Az előadó abban bízik, hogy a fentiek érzékeltetésére alkalmas problémákat, programokat gyűjtögetett össze.

23:00-23:25 – Falus Anita, Ménesi Viktor: Karrierváltás után – az álláskeresés és néhány hónap KKV-s tapasztalatai szoftverfejlesztőként
Mennyire könnyű ma szoftverfejlesztőként elhelyezkedni szakirányú felsőfokú végzettség nélkül? Milyen kihívásokkal találkozhatunk a felvételi folyamat során? Milyen elvárásokat támasztanak a munkaadók egy junior szakemberrel szemben? Hogyan telnek a beilleszkedés után a hétköznapok junior fejlesztőként kis létszámmal működő informatikai profilú kisvállalkozásnál? A tanfolyamainkon 2021-től 2023-ig végzett előadók karrierváltó junior szakemberként személyes tapasztalataikról számolnak be és válaszolnak a kérdésekre. A program a Java tanfolyamaink orientáló moduljához kötődik.

23:30-23:55 – Kaczur Sándor: Gondolkodjunk logikusan!
Az előadás során áttekintjük az intelligencia, a kreatív problémamegoldó és logikus gondolkodás összefüggéseit és izgalmas feladatokból válogatva közösen megoldunk néhány fejtörő feladatot. Néhány példa: Hány éves a kapitány?CHOO + CHOO = TRAIN, Logikus gondolkodás teszt. Minden feladathoz adunk rávezető példákat – ha esetleg egyik-másik nem menne, akkor ebből ki fog derülni, hogy miket érdemes gyakorolni ahhoz, hogy sikerüljön. A korábbi évek anyagát az előadó kiegészítette néhány Java algebrai csomag funkcionalitásának bemutatásával és látványos, szinte önmagyarázó grafikus ábrákkal.

 

A programjaink népszerűek voltak. 52 érdeklődő látogatót fogadtunk. Többségük végig velünk tartott. Elgondolkodtató párbeszéd alakult ki a mesterséges intelligencia témakörében, illetve sok-sok kreatív megoldás került elő a logikus gondolkodás program fejtörőivel kapcsolatosan. Néhányan megragadták a lehetőséget, hogy több budapesti helyszínt is meglátogassanak – ahogyan ez megszokott a Kutatók éjszakája rendezvényeken hosszú évek óta. Kellemes hangulatban, tartalmasan töltöttük együtt ezt a három órát, aminek igazán örülök.

Szeretném megköszönni az előadó oktató kollégák és alumni hallgatóink színvonalas munkáját, igényes felkészülését. Köszönjük mindenkinek, aki részt vett a Kutatók éjszakája 2024 rendezvényünkön. Az előadások prezentációit tanfolyamaink hallgatói számára – a témához kapcsolódó témakörökhöz, ILIAS-ra feltöltve – tesszük elérhetővé.

Euler állatos feladata – geometriai megközelítés

EulerAllat

EulerAllatValaki sertést, kecskét és juhot vásá­rolt, összesen 100 állatot, pontosan 100 aranyért. A sertés darabja 3 és fél arany, a kecskéé 1 és egyharmad, a juhoké fél arany. Hány darabot vehetett az egyes állatokból?

Tudjuk, hogy a feladatnak három megoldása van:

  • 5 db sertés és 42 db kecske és 53 db juh
  • 10 db sertés és 24 db kecske és 66 db juh
  • 15 db sertés és 6 db kecske és 79 db juh

Klasszikus informatikai megközelítést – egymásba ágyazott ciklusokat – bemutattam már: Euler állatos feladata. A brute force alapgondolat fokozatos finomítását követően néhány ötleteket is adtam a továbbfejlesztéshez. Ez igazi örökzöld feladat. Látogatottsága alapján rendületlenül népszerű ez a blog bejegyzés az it-tanfolyam.hu szakmai blogban. Többek között ez inspirált a feladattal való további foglalkozásra.

Mit jelent a geometriai megközelítés?

Egy térbeli pont három koordinátával leírható. Az (s, k, j) ponthármas jelenti a sertések, kecskék és juhok számát. Az RGB színkockához hasonlóan (amibe belefér az összes ábrázolható színhez tartozó koordinátapont), most is elférünk egy kockában. Legyen a kocka egyik csúcsa az origó és az élei legyenek 100 egység hosszúak. A feladat megfogalmazása alapján két egyenlet (e1 és e2) írható fel 3-3 együtthatóval. Mindkét egyenlet meghatároz egy síkot (s1 és s2) a térben, amelynek ábrázoljuk a kockába eső síkmetszeteit. A két sík metszésvonala egyenes (e3), amire esnek a megoldások pontjai (m1, m2, m3). Lépésenként haladunk a geometriai ábrázolás során.

A grafikus felületen történő ábrázoláshoz, rajzoláshoz két korábbi projektünkből indulunk ki. A Kígyókocka grafikus felületen feladat ismertet egy grafikus keretrendszert JavaFX-ben megvalósítva. A három részből álló Naprendszer szimuláció esettanulmányunk pedig ismerteti az ábrázoláshoz szükséges elméleti hátteret, homogén transzformációkat, vetületi leképezést, Java forráskódot is bemutat a transzformációs mátrix alkalmazására.  Az eddig említett három blog bejegyzést mind összeépítve készültek a továbbiak.

A geometriai megoldást lépésenként, saját fejlesztésű, grafikus felhasználói felülettel rendelkező, JavaFX alapú programról készült képernyőképek mutatják be – markáns Java forráskód-részletekkel.

Hogy jelenik meg a megoldásokat tartalmazó kocka?

Elegendő ábrázolni a kockának azt a három élét, amik egybeesnek a koordinátatengelyekkel. Az RGB színkockához hasonlóan piros, zöld, kék színekkel jelennek meg a három tengelyen lévő néhány pont. Az ábrázoláshoz érdemes kísérletezni egy kicsit: mekkora méretben (skála), honnan (nézőpont), milyen messziről (vetület, ideális pont, perspektíva, távolság) látszik a modelltérbeli objektum (igen, ez a kocka).

Az alábbi Java forráskód-részlet helyezi el a fenti pontokat. Mindhárom tengelyen 5-től 95-ig, 10-esével haladunk. Így elkerülhető, hogy az origóba kerüljön pont, hiszen az nem tudna egyszerre három színnel megjelenni. Mivel az állatok száma pozitív, így a koordinátapontok is nemnegatívak.

Hol vannak az első egyenlet síkjának pontjai?

A korábbi megoldásnál feltételként megfogalmazott első 3.5*s+4.0/3*k+0.5*j==100 egyenlet egyszerű átalakításokkal megadja a piros és zöld síkbeli ponthoz tartozó kék térbeli pontot: j=(600-21*s-8*k)/3. Ezek az s1 síkra esnek. A citromsárga pontokat páros koordinátapárokra vizsgált feltétel jelöli ki. A narancssárga vonal behatárolja ezt a síkmetszetet. Ez a négyszög (trapéz) esik bele a kockába.

A citromsárga pontokat az első egymásba ágyazott ciklusok adják hozzá az ábrázolt modelltérhez: érzékeltetve a síkbeli pontokat. A narancssárga pontokkal a második egymásba ágyazott ciklusok bővítik a modellteret: behatárolva a kockabeli négyszög síkrészletet. (A trapéz oldalait szakaszként is lehetne ábrázolni, de ez a kellően sűrű ponthalmaz is elegendő).

Hol vannak a második egyenlet síkjának pontjai?

Hasonlóan az eddigiekhez. A korábbi  s+k+j==100 feltételből adódik a szintén feltételként megfogalmazott  j==100-s-k egyenlet. Ezek az s2 síkra esnek. Világosszürke pontok érzékeltetik a síkot és sötétszürke pontok adják a síkrészlet határait. A síkból ez a háromszög esik bele a kockába.

A Java forráskód nagyon hasonló az előzőhöz.

Hogyan helyezkedik el a két sík a kockában?

Egyben kirajzoltatva a fentieket, könnyen adódik ez az ábra:

Hol van a két sík metszésvonala?

Mivel a két sík nem esik egybe, így van metszésvonaluk. Ez egy egyenes, amiből csak az az e3 szakasz rész szükséges, ami a kockába esik. Bíbor (magenta) szín jelöli az alábbi ábrán:

Ahol a két egyenlethez tartozó konkrét pontok egybeesnek, ott van a metszésvonal. A behelyettesítést behatároló ciklusok szervezéséből (a ciklusváltozók alsó és felső és határaiból) adódik, hogy csak a kockabeli szakaszt rajzolja ki az alábbi Java forráskód-részlet:

Hol jelenik meg a feladat három megoldása?

A két egyenlethez tartozó síkok kockába eső metszésvonalán helyezkednek el az egész koordinátákkal ábrázolható, koordináta-hármasként megjelenő pontok. Nagyobb fehér pontok jelölik ezeket az alábbi ábrán:

Az eddigiek alapján könnyen adódik a három pont/megoldást ábrázoló Java forráskód-részlet:

A bejegyzéshez tartozó teljes forráskódot ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

Ez a feladat a Java SE szoftverfejlesztő tanfolyam szakmai moduljának 5-8. óra: Vezérlési szerkezetek, illetve 9-12. óra: Metódusok, rekurzió alkalmához, a 29-36. óra Grafikus felhasználói felület alkalmaihoz, valamint minden tanfolyamunk orientáló moduljának 1-4. óra: Programozási tételek alkalmához kapcsolódik.

Tanfolyamainkon JavaFX grafikus felülettel hangsúlyosan nem foglalkozunk, de egy-egy kész forráskódot közösen megbeszélünk, és össze is hasonlítjuk a swing-es változattal. Fejlesztünk játékprogramot, de inkább konzolosan, vagy swing-es ablakban, vagy webes alkalmazásként.

A grafikus felületek felépítésének megismerése fontos lépcső az objektumorientált programozás elmélyítéséhez, gyakorlásához. A grafikus felületekhez egy másik lényeges szemléletváltás is kapcsolódik, hiszen a korábbi algoritmusvezérelt megközelítést felváltja az eseményvezérelt (eseménykezelés). A GUI-s feladatainkat tudatosan hangsúlyozott MVC-s projektekben készítjük el.

Top 5 fizetésű alkalmazottak listája

Top5 fizetés

Top5 fizetésAz a fela­da­tunk, hogy az Oracle HR sé­má­ból le­kér­dez­ve állít­suk elő a top 5 fizetésű alkalmazottak listáját, a fizetések csökkenő sorrendjében. Ez egytáblás lekérdezéssel megvalósítható. Az EMPLOYEES táb­lában megtalálható az összefűzött névhez szükséges FIRST_NAME és LAST_NAME mezők, valamint a fizetés a SALARY mezőben. Min­den alkalmazottnak van neve és fizetése. Előfordul legalább 5 különböző fizetés.

Oracle HR séma

Tanfolyamainkon többféleképpen modellezzük és tervezzük meg a feladat megoldását.

Megoldás (Java SE szoftverfejlesztő tanfolyam)

A Java SE szoftverfejlesztő tanfolyam 45-52. óra: Adatbázis-kezelés JDBC alapon alkalmain a következők szerint modellezünk és tervezünk.

Kiindulunk az alábbi egyszerű lekérdező parancsból (V1):

Top5SalaryV1Select

Eredményül ezt kapjuk (részlet, V1):

Top5SalaryV1 Eredmény

A kapott 107 rekordból álló eredménytáblát a Java kliensprogram fejlesztése során leképezzük egy generikus POJO listába, a rekordonként összetartozó két adatból előállítva az objektumok tulajdonságait. Kiderül, hogy a 17000 többször is előfordul. Mivel bármely fizetés előfordulhatna többször is, így előre nem tudjuk, hogy az eredménytáblából mennyi rekordot kell áttölteni a listába. A fizetésekből generikus halmazt építhetve, addig tudjuk folytatni a beolvasást, amíg a halmaz elemszáma kisebb ötnél. Eredményül hat rekordot kapunk. A Java kliensprogram forráskódját most nem részletezzük, de tanfolyamaink hallgatói számára ILIAS e-learning tananyagban tesszük elérhetővé a teljes forráskódot. Ennél a megoldásnál egyszerűbb a lekérdező parancs, de több feladat hárul a Java kliensprogramra.

Lássunk néhány tévutat és az általános megoldás helyett konkrét megoldásokat! Ha szeretnénk adatbázis oldalon megoldani a feladatot, akkor használhatnánk a ROWNUM pszeudooszlopot. Ez 1-től sorszámozza az eredménytáblát, így használható lehetne arra, ha limitálni szeretnénk a visszaadandó rekordok számát.

1. elvi hibás lekérdező parancs:

Top5SalaryV2 Select

1. elvi hibás eredmény:

Top5SalaryV2 Eredmény

A hiba elvi, a lekérdező parancs szintaktikailag helyes. A harmadik oszlopban látjuk, hogy a rekordok sorszámozása megtörténik, de a kapott nevek és fizetések eltérnek a V1 esetben kapott helyes eredménytől. Az okokat természetesen megbeszéljük. Támpont: próbáljuk meg a lekérdező parancs feltételében kicserélni az 5-öt például 10-re és próbáljuk megmagyarázni, miért kapjuk azt, amit kapunk. Továbbá a konkrét esetben tudjuk, hogy hat rekordot kellene kapunk. Felmerülhet a gyanú, hogy a rendezés túl későn történik meg. Megpróbáljuk zárójelezéssel és lekérdezések egymásba ágyazásával befolyásolni a WHERE és ORDER BY alparancsok végrehajtási sorrendjét.

2. elvi hibás lekérdező parancs:

Top5SalaryV3 Select

2. elvi hibás eredmény:

Top5SalaryV3 Eredmény

A hiba most is elvi, a lekérdező parancs szintaktikailag helyes. A zárójelezés valóban hatással van a két alparancs végrehajtási sorrendjére és megfigyelhető, hogy a harmadik oszlopban a rekordok táblabeli fizikai sorrendje jelenik meg és a feltétel ( ROWNUM <= 5) nem a mező értékére, hanem a rekordok darabszámára értendő. Nyilván az 5-öt 6-ra módosítva visszakaphatnánk a V1 első hat rekordját, de ez nem lenne általános megoldás. Más úton is eljuthatunk a konkrét megoldáshoz.

3. elvi hibás lekérdező parancs:

Top5SalaryV4 Select

3. konkrét megközelítéssel kapott helyesnek látszó eredmény:

Top5SalaryV4 Eredmény

A hiba most is elvi, a lekérdező parancs szintaktikailag helyes. Általános megoldás helyett konkrét megoldásként megkapjuk a V1 első hat rekordját, de ehhez be kellett építeni a lekérdező parancsba a 13000-et. Ez a Top 5-ben legkisebb fizetés. Megbeszéljük, hogy miért hasznos a DISTINCT módosító/kulcsszó beépítése a lekérdező parancsba.

Megoldás (Java adatbázis-kezelő tanfolyam)

A Java adatbázis-kezelő tanfolyam 9-12. óra: Oracle HR séma elemzése, 13-16. óra: Konzolos kliensalkalmazás fejlesztése JDBC alapon, 1. rész, 33-36. óra: Grafikus kliensalkalmazás fejlesztése JDBC alapon, 2. rész alkalmával a következők szerint modellezünk és tervezünk.

Most arra helyezzük a hangsúlyt, hogy back-end, azaz adatbázis oldalon állítsuk elő az eredményt és ezáltal a front-end, azaz a Java kliensprogram egyszerűbb lehet. A lekérdező parancsot belülről kifelé haladva gondoljuk végig. Először kell egy halmaz a különböző fizetésekről csökkenő sorrendben. Utána ebből kell az első öt darab, amelyek halmazt alkotnak. Végül erre építve kell azoknak az alkalmazottaknak a neve és fizetése, akiknek a fizetése benne van a halmazban.

1. majdnem helyes megoldás:

Top5SalaryV5 Select

1. általános megközelítéssel kapott helyesnek látszó eredmény:

Top5SalaryV4 Eredmény

A probléma az, hogy az adatok helyes sorrendje a véletlennek köszönhető. Ha a lekérdező parancs feltételében az 5 helyett nagyobb számokat helyettesítünk be, akkor ez jól megfigyelhető. A következő megoldás már ezt a problémát is kezeli.

Finomítva a 3. elvi hibás lekérdező parancsot, a konkrét 13000 helyettesíthető belső lekérdező paranccsal. Építsük ezt be az 1. helyes megoldásba úgy, hogy az IN predikátum helyett használjuk a nagyobb vagy egyenlő hasonlító operátort. A középső lekérdező parancs a halmaz helyett már csak egyetlen értéket adjon vissza, amelyhez könnyű hasonlítani az aktuális alkalmazott fizetését. Ezzel kiváltható a nagyobb memóriaigényű halmazban való tartalmazottságot eldöntő művelet, a jóval hatékonyabb egy értékkel való összehasonlítással. Memóriaigény szempontjából nem maga a konkrét művelet/operátor az érdekes, hanem a használatukhoz szükséges adatok előállítása, mennyisége, tárolása, feldolgozása.

2. helyes megoldás:

Top5SalaryV6 Select

2. általános megközelítéssel kapott helyes eredmény:

Top5SalaryV4 Eredmény

Közben az is kiderült, hogy miért szükséges két helyen az ORDER BY alparancs.

Végül, ha ismerjük az Oracle DENSE_RANK() analitikai függvényét, amely egy rendezett lista különböző elemeihez rendel sorrendben számokat (másképpen rangsort állít fel 1-től kezdve), akkor elkészíthetjük az alábbi megoldást.

3. helyes megoldás:

Top5SalaryV7 Select

3. általános megközelítéssel kapott helyes eredmény:

Top5SalaryV7 Eredmény

Érdemes átgondolni és összehasonlítani a többféle különböző megközelítés lehetőségeit, korlátait. Ha egyensúlyozni kell a kliensprogram és az adatbázis-szerver terhelése között, valamint az MVC modell összetettsége, karbantarthatósága, könnyen dokumentálhatósága a/is szempont, akkor többféle alternatív módszer is bevethető, valamint építhetünk a különböző Oracle verziók (dialektusok) képességeire is.

Az SQL forráskódok formázásához a Free Online SQL Formatter-t használtam.

Kockadobás kliens-szerver alkalmazás

Fejlesszünk elosztott, hálózatos, datagram alapú üzenetküldéssel megvalósított Java alkalmazást!

A kockadobás kliens egyszerre két szabályos dobókockával dob, amit ezerszer megismétel és a dobott számok összegét datagram típusú üzenetküldéssel folyamatosan elküldi a szervernek. A szerver localhost-on fut és egy megadott porton keresztül várja a klienstől. A szerver és a kliens egyaránt szálkezelést alkalmazó konzolos alkalmazás.

A projektben van egy swing GUI-s alkalmazás, amely JFreeChart oszlopdiagramon – folyamatosan frissítve – megjeleníti az összesített adatokat, mindez a szerver üzenetküldésével irányítva (amint beérkezik egy dobott (2-12-ig) összeg).

A kommunikációnak – a lehetőségekhez képes – biztonságosnak és – a hálózati adatforgalmat tekintve – takarékosnak kell lennie! Ennek részeként szükséges egy azonosító és egy egyszerű szabály (protokoll).

Tekintsük át mondatszerűen a szálkezelést használó kliens és szerver kommunikációhoz kötődő feladatait:

Ezek működését összefogja egy központi vezérlőosztály és ez a fejlesztőeszköz projektablakában így jelenik meg (egyetlen MVC Java projektként):

A program két felületen kommunikál. A háttérben konzolosan logol a kliens, és a háttérben futó szerver időnként frissítteti a grafikus felhasználói felületen (GUI, ablak) megjelenő grafikont:

Kockadobás - Java kliens-szerver alkalmazás működésa

Aki kedvet kapott: bátran készítse el a fenti terv/koncepció/specifikáció alapján az MVC Java projektet. Érdemes alaposan tesztelni: külön a szervert, külön a klienst, először indítva az egyiket, majd a másikat, leállítani az egyiket majd fordítva. Átgondoltan indokolni is hasznos, vajon mi, hogyan és miért történik.

A bejegyzéshez tartozó forráskódot ILIAS e-learning tananyagban tesszük elérhetővé tanfolyamaink résztvevői számára.

A feladat a Java EE szoftverfejlesztő tanfolyam 1-8. óra: Elosztott alkalmazások, webszolgáltatások, szálkezelés, párhuzamosság alkalmához kapcsolódik. Amikor itt járunk a tananyagban, akkor a GUI felület és a grafikon tervezése, megvalósítása már magabiztosan megy, így elegendő a hálózati kommunikációra helyezni a fókuszt.