Monoton szellemi munkát végzők – VIGYÁZAT!

Manapság azt figyelhetjük meg lépten-nyomon, hogy a számítógépek, automatikus rendszerek éppen nagy sebességgel alakítják át az életünket. Ma már leginkább e-maileket és Facebook-üzeneteket írunk egymásnak, nem kézi leveleket, a banki ügyeinket egyre kevésbé személyesen, egyre inkább netbankon keresztül intézzük, a gyártási folyamatok egyre inkább automatizáltak, és lassan már a TESCO-ban sem lehet, csak automatánál fizetni.

A jelenben, a hétköznapi ember számára is megfigyelhető folyamatok sokban hasonlítanak arra az időre, amikor megjelent a gőzgép (és később a futószalag), és ez átalakította a termelést, és ezzel együtt a világot. Azt a korszakot ipari forradalomként tanultuk, és megtanultuk róla, hogy gyorsan és olcsón lehetett nagy mennyiségű és (viszonylag) jó minőségű termékeket előállítani, elvezetett a tőke felhalmozásához, és közvetve hozzájárult a kapitalizmus kialakulásához is.

Az ipari forradalom lehetővé tette a gyorsabb utazást (gőzhajó, gőzmozdony). Gyorsabban létrehozható, olcsóbb termékeket eredményezett. Ugyanakkor ahhoz is elvezetett, hogy számos ember munkája feleslegessé vagy idejétmúlttá vált, és az átrendeződésnek sok vesztese is volt, ami hozzájárult ahhoz, hogy gépromboló mozgalmak alakultak ki.

Nem véletlen, hogy a mostani kort is ipari forradalomként aposztrofálják (hogy pontos legyek, ez már szám szerint a 4. ipari forradalom, de ez most mindegy is), hiszen ma is hasonló folyamatok játszódnak le: új lehetőségek teremtődnek (mobiltelefon, Androidos játékok, hogy csak a legkézenfekvőbb példát említsem), gyorsabban és olcsóbban hajtható végre számos folyamat, és kényelmesebbé válik az életünk.

Míg a gőzgéphez kapcsolódó ipari forradalom az ember (és az állatok) fizikai erejét váltotta le, addig a manapság zajló folyamatok az iteratív szellemi munkát teszik feleslegessé. De az élet halad, megállítani úgysem lehet, jó hát, ha alkalmazkodunk hozzá. Például úgy, hogy az élére állunk a változásoknak, és profitálunk belőle azzal, hogy megtanulunk programozni!

Szóval ha Ön most egy pénztáros egy TESCO-ban, vagy ismétlődő munkát végző adminisztrátor egy cégnél, akkor lehet, hogy veszélyben a munkája! Gondolja végig, és ha veszélyeztetett helyzetben van, kezdjen el sürgősen új lehetőségek után nézni!

Erről jut eszembe egy sztori, a mai magyar bürokráciáról. Lakcímváltozást jelentettem be pár éve. A folyamat a következő volt: bementem a “hivatalba”, sorszámot téptem, vártam egy órát, bementem a kitöltött papírjaimmal, ahol egy ügyintéző lány megnézte, hogy én én vagyok-e, majd begépelte az adataimat a számítógépbe, kinyomtatta a kártyát, laminálta, a kezembe nyomta, majd elköszöntünk.

Hogy nézne ki a XXI. századi megoldás? Bejelentkezek az ügyfélkapus felületen, megadom az új címemet (esetleg, ha ragaszkodik hozzá valaki, feltöltöm az igazolást, hogy tényleg lakhatom ott – esetleg feltöltöm annak digitális tanúsítványát…), megnyomok egy gombot, egy számítógép ellenőrzi a jogosultságomat, majd kinyomtatódik az új kártya, laminálódik, majd egy munkatárs nap végén elviszi és kiviszi. A kedves ügyintéző lánynak már nincs helye a folyamatban – kell néhány felügyelő, illetve aki válaszol a telefonokra, e-mailekre.

Persze hozzáteheted, hogy akkor most 1 ember megélhetését elvettük. Igen is, meg nem is. Persze, azonnal lehet, hogy nem érinti jól, hogy nincs bevétele, de épp kapóra jön az alkalom, hogy elkezdjen megtanulni programozni, vagy éppen kézzel készített plüssfigurákat varrni, ami kreatívabb, ösztönzőbb, szebb… és emberibb.

Szóval az a lényeg, hogy ha épp egy szellemi iteratív munkafolyamatban dolgozik, akkor készüljön fel arra, hogy a szakmája lehet, hogy épp leáldozóban van, és pont most van itt az ideje, hogy tegyen valamit azért, hogy ebből a változásból győztesként kerüljön ki! Amit én tudok ajánlani, az a tanfolyamunk.

Milyen értéket teremt egy programozó?

Manapság az életünk minden területét átszövik a számítógépek és a rajta futó programok. Ezeket programozók írták, érdemes hát egy kicsit alaposabban megvizsgálni, hogy milyen értéket tulajdoníthatunk egy programozó munkájának.

A számítógépes rendszerek széles palettája – meglátásom szerint – négy területen ér el hatást, ami értékátadással jár. Ezen értékek kialakulásában programozók vesznek részt. Ezek:

  1. lehetővé tesz korábban lehetetlen dolgokat
    1. 20 évvel ezelőtt volt már számítógép, de ha valaki Android programokat akart eladni, akkor nehezen tehette volna meg, mert az Android még nem létezett. De még iPhone sem. Ma meg egy sokmilliárd dolláros piac! Egy megfelelő alkalmazással az ember részesedni tud belőle.
    2. Még néha ma is hallani olyan időseket, akik nem tudnak másképp telefonálni, csak ordítva. Régebben ugyanis ahhoz, hogy a szomszéd városban is még hallják, nagyon hangosan kellett beszélni, mert akkora volt a rendszer csillapítása, hogy ellenkező esetben a másik fél semmit nem hallott. Ma meg? Az ember felhívhatja a rokonait Ausztráliában (pl. Skype-on), és ugyanúgy lehet érteni, mint ha a szomszéd szobában lennének.
  2. gyorsít bizonyos tevékenységeket
    1. Vegyünk egy egyszerű folyamatot, ami bármely vállalkozás életében mindennapos dolog: a bevételekről nyugtát vagy számlát kell adni. Az “ÁFÁ-s számla” kiállítása régebben – számítógép hiányában vagy nem megfelelő informatikai rendszerrel – kézi módszerrel, számlatömbbe való írogatással történt. Még jól emlékszem, hogy egyetemista koromban, mikor siettem a vonatra, hosszú kígyózó sorok álltak a pénztárnál, és valaki “benyögte”, hogy ő ÁFÁ-s számlát is kér Kiskukutyin Bt. nevére. Ekkor ugyanis az ügyintéző fogta a számlatömböt, nyolcadszori bemondásra sikeresen leírta a cégnevet, kitöltötte a számlát, és mehetett tovább a sor.
      Ma meg? Gyakorlatilag olyan szinten integrálni lehet a funkciókat, hogy a megrendelés elejétől végéig emberi érintés nélkül végigmehet a folyamat. Gyorsan, flottul.
    2. Ha például ballagásra vagy hivatalos május elején (jelen sorok írásától számítva két hét múlva), gyorsabb és kényelmesebb felmenni az adott iskola honlapjára, megnézni, mikor kezdődik a ballagás, mint felhívni a ballagó diákot, hogy megtudd tőle, hogy mikor is van. Főleg, ha éppen edzésen van, nem ér rá, vagy éppen tanul az érettségire, és a telefon pont kizökkenti egy jó félórára…
    3. Nem egy mai történet, de szintén ide kapcsolódik, hogy a számítógépek segítségével tudományos számításokat lehet felgyorsítani. Míg 1940-es évek előtt egy szögfüggvénytábla (hány foknak mi a sinusa, cosinusa) megalkotása komoly projekt volt, addig ma egy nagyon kezdő programozó megírja a programot egy óra alatt (se), és máris kész az a táblázat, amit korábban sok-sok ember számolt hetekig, hónapokig.
  3. olcsóbbá tesz folyamatokat
    1. Részben az előző következménye: ha egy folyamathoz kevesebb emberi munka kell, akkor az olcsóbb (a gépek általában jóval kevesebbe kerülnek, mint egy alkalmazott az ő járulékaival).
    2. De emellett pl. a telekomcégek szenvednek az internet terjedésétől. Amit régen SMS-ben pötyögtünk, azt ma Facebook-, Viber-üzenetben vagy e-mailben írjuk meg. Ugyanúgy telefonról. Nekünk az üzenetváltás viszont – az internet minimális díján kívül – semmibe nem kerül.
    3. Vagy egy dokumentum átküldése… korábban ki kellett nyomtatni, beborítékolni, bélyeget ragasztani rá, elvinni a postára, feladni, majd várni, míg a másik fél megkapja… Ma meg? Megnyitjuk az e-mail programunkat, belépünk, becsatoljuk a dokumentumot, és kb. már ott is van, és egy fillérbe sem kerül.
  4. kényelmesebbé tesz folyamatokat
    1. A jelenlegi kor egyik legnagyobb hatású változásának tartom azt, hogy manapság gyakorlatilag bármit el lehet intézni bárhonnan. Fogja az ember a laptopját, kiül a tengerpartra, beül egy kávézóba, keres egy közösségi irodát, vagy elutazik valahova, és dolgozik. A fiatal generáció alábbadja a fizetési igényét azért, hogy ilyen cégnél dolgozhasson. Mert a számítógép kényelmesebbé tesz folyamatokat.
    2. Kényelmesebb bankolni a karosszékből, mint felöltözni, besétálni a bankfiókba, végigvárni a sort, elbeszélgetni az ügyintézővel, majd hazamenni (és nem mellesleg gyorsabb is).
    3. Kényelmesebb fogni a telefont, bekapcsolni a Google Térképet, mint a papírtérképpel hadakozni a szélben (megvan a helyzet? :-)), vagy olyan ember után kutatni, aki tudja, merre van az a hely, amit keresünk.

Ezek a példák is jól mutatják, hogy az informatika milyen sokban járult hozzá az élet változásaihoz, tette lehetővé, hogy emberek abból éljenek, ami 20 éve még nem is volt (Android szoftverek fejlesztése), gyorsítsa és olcsóbbá tegye a cégek folyamatait (ami végső soron a mi pénztárcánkban köt ki a verseny miatt), és kényelmesebbé tegye az életünket.

Ezen változások többsége mögött programozók teljesítménye áll.

Legyél te is programozó!

Melyik nyelvet válasszam?

Ha az ember programozó szeretne lenni, számos irány (ún. platform vagy világ) közül választhat. C, C++, C#, Java, PHP, Javascript (azok különféle keretrendszerei, pl. Angular, jQuery…), Python,…

Mégis melyik irányt érdemes választani? (Arról, hogy szerintem egyet érdemes választani, arról előző héten írtam).

C: A ma legnépszerűbb nyelvek ősatyja, a Java, a C++, a C#, a PHP és a Javascript is ebből a nyelvből fejlődött ki, az alapvető utasítások nagyon-nagyon hasonlóak – ha nem azonosak. Viszonylag kevés utasítást és lehetőséget tartalmaz, így elég könnyű megtanulni, viszont nem túl barátságos a programozóval: időnk és energiánk nagy része a gép specialitásaival való törődéssel megy el (memóriakezelés és -felszabadítás, pointerek nyomon követése, cím szerinti paraméterátadás kapcsán való gondolkodás – ha ez nem mond semmit, nem baj. A lényeg, hogy egy magasabb szintű nyelvnél ezekkel nem neked kell törődnöd).
És hogy hol használják manapság? Nagyon egyszerű beágyazott rendszerek vezérlésénél, pl. amilyen egy automata öntözőberendezés. De pl. a Raspberry Pi (ára tízezer Ft körüli) sem csak C-ben programozható, így a jelentősége egyre csökken. Ha érdekelnek a beágyazott rendszerek, válaszd ezt, és készülj fel, hogy a hardvert kell majd masszíroznod, hogy menjen a programod. Ez nagy odafigyelést, alapos elméleti tudást igényel. Tudásod csak egy speciális környezetben alkalmazható. Szóval nem ajánlom. (Egy beszúrás: Programozni megtanulni kívánóktól számtalanszor hallottam, hogy “Először megtanulom az alapokat, a C-t, majd utána rátérek a magasabb szintű nyelvekre”. Khm… Miért tanulnál meg lovagolni azelőtt, hogy autót vezetni tanulnál? Mert az autó feltalálása előtt lovagoltak az emberek? A lovaglás jó sport, de semmi szükség rá az autózáshoz).

C++: Objektum-orientált (=menő) programozási nyelv, de valahogy megörökölte a C-nek azt a tulajdonságát, hogy bal kézzel masszírozni kell a nyelvet, hogy működjön a program. Rengeteg lehetőség van benne, kevés kivétellel mindent meg lehet csinálni benne, ráadásul elég gyors is lesz a program. Ideális, ugye? Hátulütője, hogy sokszor tovább tart rendesen megtanulni, mint mondjuk a Javát. Kis túlzással azt szoktam mondani, hogy a Java és a C++ úgy viszonyul egymáshoz, hogy Javában a C++-ban megírható programok azt a 20%-át lehet kivitelezni, ami a problémák 80%-át megoldja. Ha a maradék 80%-ot is akarod programozni, akkor cserébe tanulhatsz 5-szörannyit. Állásszerzés szempontjából nem ideális, mert 5-ször tovább tart megtanulni olyan szinten, hogy állást találj, mint a Javát. Ha menő 3D-s számítógépes játékot akarsz programozni, telekommunikációs alapszoftvert, operációs rendszert, vagy más, sebességkritikus rendszert, akkor ez a te pályád. Mivel túl rögös és hosszú az út benne a programozóállásig, nem javaslom.

Java: Viszonylag gyorsan, könnyen megtanulható, mert elég jól leegyszerűsített és letisztított nyelv, keveset kell (és lehet) a számítógép lelkivilágával törődni, jobban lehet a feladatra koncentrálni, kellően kényelmes. Ráadásul a legjobban fizetett programozók a Java programozók. Egyrészt a Java beette magát a nagyvállalati környezetbe, számos banki és egyéb rendszer Javában van írva. Ezen kívül az Android programok millióit is Javában írták meg. Annyira nagy tömegű program van Javában írva, hogy az tuti nem fog egyik napról a másikra megváltozni. Több millió programot senki nem fog máról holnapra sem kidobni a szemétbe, sem átírni egy másik platformra. EZ TUTI. Ráadásul a nagyvállalatok ilyen szempontból nem a gyorsaságukról híresek… néha még a Java verziót sem váltják, nemhogy mindent újraírjanak egy menő új nyelvben. Szóval aki a Javát választja, annak egy meglehetősen kényelmes, meglehetősen gyors utat kell végigjárnia, míg bele nem csüccsen a jól fizető állásába.

C#: A Java után jött ki, ezért valamivel fejlettebb nyelv annál, de a Windows platformmal van legjobb barátságban. A legkönnyebb áttérés Javáról talán a C#-ra van, az alap nyelvi készletben csak néhány különbséget lehet felfedezni, annyira hasonló. A .NET-tel szokták együtt emlegetni, ami a Windows platform programozói környezete. Nem egy rossz választás.

PHP: Azok számára, akik egyszerűbb webes szoftvereket akarnak programozni, ez (és a Javascript) a jó választás. A PHP rengeteget küzd a menővé válással (objektum-orientált programozás bevezetése), és igazán nem is érzem túl sikeresnek. Könnyen tanulható, széles körben támogatott nyelv, de nagyon gyorsan lesz gátja egy weboldal fejlődésének.

Javascript: Ha valaki webes programot akar valaha írni, nem tudja kikerülni a Javascriptet, ugyanis jószerivel ez (és utódai, pl. Typescript) az, amit egy böngésző futtatni tud. Javascript és pont. A PHP-hoz hasonlóan a Javascript is küzd az objektum-orientálttá válással, tehát megalapozott programozási tudásra akarsz szert tenni, akkor nem biztos, hogy a legjobb, ha a Javascripttel kezded.

Python: sokak szerint ideális kezdő nyelv lenne a programozás megtanulásához, és szintén sokak szerint nem elég komoly nagy rendszerek írásához. Mivel nem követi a C-alapú nyelvek nyelvtanát, mi értelme lenne egy kezdő nyelvet megtanulni, utána átváltani egy komoly nyelvre? A programozási alapokat Javában is meg lehet tanulni, és akkor legalább a később használt nyelvtant (szintaxist) gyakorolja az ember.

Nem véletlenül oktatunk Javát, azt gondolom, ezzel tud a tanuló leggyorsabban legnagyobb eredményt elérni tudás és fizetés tekintetében.

Annyira jó programozó leszel, ahány nyelvet tudsz?

Sokan jönnek azzal, hogy ők megtanulják a Javát, megtanulják a C#-ot, de a C++ és a PHP is érdekli őket, aztán bárhova is veti őket a sors, megállják a helyüket.

Igen is, meg nem is.

Ha analógiát keresünk erre, akkor a sportokat és a természetes nyelveket is fel tudom hozni.

Ha egyszerre kezdesz el portugálul és olaszul tanulni, mi lesz a végén belőle? Kis valószínűséggel a két nyelv tökéletesen szétválasztott ismerete és kezelése. Nagy valószínűséggel viszont egy nagy katyvasz.

De nem csak ez a gond, hanem két nyelv megtanulására kétszerannyi idő kell (mily meglepő :-)), viszont ha azt a kétszerannyi idődet az egyik nyelvre szenteled, sokkal minőségibb szintre tudsz eljutni.

Lefordítva: vagy mindkét nyelvet megtanulod úgy, hogy egy étteremben tudsz rendelni, és külföldön útbaigazítást tudsz kérni, vagy megtanulod az egyiket úgy, hogy akár egy szépirodalmi szöveget is meg tudj érteni, vagy előadást tudj az adott nyelven tartani. Az első is lehet cél, de pénzt keresni inkább a második opcióval tudsz.

Vagy a sportok analógiája: ha triatlonista vagy (úszás-kerékpár-futás), akkor az egy-egy sportot űzőkhöz képest rosszabb kerékpáros, rosszabb futó és rosszabb úszó leszel – egyszerre mindent nem lehet.

Tehát én azt javaslom, ha esetleg sok nyelv megtanulását forgatod a fejedben: Ne tedd! Válassz ki egyet a lehetőségek közül (én a Javát ajánlom!), és kötelezd el magad mellette (legalább az első időre), aztán ha az élet úgy hozza, még mindig lehet váltani. Egy teljesen elsajátított környezet sokkal többet ér (pénzben is), mint két félig, vagy három harmadáig kontrollált terület.

És hidd el, egyetlen környezetben elmélyülni is eltart jó pár hónapig. Ha minél hamarabb állást akarsz vállalni, fókuszálj egyre!