PHP kódminőség fenntartás
php, qa, static code checking, phpunit, phpcs, phpmd, phpstan, churn, phpdd, psalm, phplint, phan
2024-10-17
Failed: bson encoding error: BSON element key cannot contain null bytes
mongo, mongodb, bson, null, key
2024-08-24
Nem bízol a kollégáidban? Akkor valamit rosszul csinálsz!
bizalom vezetokent
2023-05-03
Dolgok, amikről a programozók azt hiszik, hogy tudják, de tévednek
programozoi-tevhitek-falsehoods
2023-04-08
A programozóktól meg kell szabadulni
chatgpt no-code low-code
2023-01-22
Miért fontosak a személyes adatok egyáltalán?
privacyaware, privacy
2023-01-07
Egy tanmese a szerény, de tehetséges informatikusról, akit én csak Gézának hívok
privacyaware, privacy
2023-01-02
Beskatulyáznád magad egy termékkel? Gondold át még egyszer!
learning, vendorlockin, risky
2022-12-11
Rekrúterekről és állásajánlatokról
bérsáv, recruiter, relevancia
2022-10-30
"A hídon akkor kell átmenni, amikor odaérünk."​ - YAGNI
yagni, pagni
2022-10-17
"A lényeg, hogy a munka készen legyen!"
agile, estimation, becsles, scrum, home office
2022-08-20
Munka vs. hivatás, a klasszikus dilemma
hr, hobbi, munka, egyensuly, hivatas
2022-07-18
Miért nem fogok nálatok technikai interjún részt venni?
technikai interju, hr, recruit, leet code, coding challenge, take home challenge
2022-07-04
"Hogyan építsek kapcsolati tőkét, ha karriert szeretnék váltani?"
linkedin, tippek, trukkok
2022-06-10
Junior/Medior/Senior, hogyan mérjük?
junior, medior, senior, hr, grade, level, experience
2022-05-09
11 tipp frontendeseknek, hogyan tegyék hatékonyabbá a munkájukat
frondend, vscode, angular
2021-10-31
Motion zoom - mozgás alapú képrekonstrukció
#52het
2021-06-01
Gesture Launcher
#52het
2021-05-31
CellEvent, első Android alkalmazásom
#52het
2021-05-19
Notebookcheck, azaz hogyan válasszuk ki a legjobb ár-érték arányú eszközt
#52het
2021-05-18
Torrent multiplexer
#52het
2021-05-17
Process watcher, logger
#52het
2021-05-05
Lazy loading material dialog content
lazy loading, angular, material, dialog
2020-12-28
Runtime configuration loading in Angular
angular, runtime, configuration, settings, environment, production
2020-03-29
How to start an Angular project?
angular
2020-03-11
Az 52 hét projekt
#52het
2020-01-01
Akkutöltöttség-jelző
#52het
2020-01-01
NetClub - Kollégiumi internetszolgáltató
#52het
2019-12-31
DeeJayy - Lost Terminal
#52het
2019-12-31
Counter Strike monitor
#52het
2019-12-31
Kollégiumi CS bajnokság 2005
#52het
2019-12-31
Mozgásérzékelős képrögzítő, Camera Capture
#52het
2019-12-30
Többszörös host pingelő
#52het
2019-12-30
Sávszélesség mérő, tesztelő
#52het
2019-12-30
Generáljunk hamis adatokat
#52het
2019-12-30
SQL lekérdezések parancssorból, odbc-vel
#52het
2019-12-30
Nonogram generátor (aka. "Fesse feketére")
#52het
2019-12-30
Egyedi chat alkalmazás, kliens és szerver
#52het
2019-12-29
FontSelector - betűtípusválasztó / font preview
#52het
2019-12-28
Saját hálózati kommunikációs segédszoftver - sox
#52het
2019-12-28
Csoportos e-mail küldő szoftver Delphiben
#52het
2019-12-28
Universal Api caller module for Angular 7-9 With NGRX state management
Ngrx, API, Effects, HttpClient
2019-07-02
A leghosszabb projekt
#52het
2019-04-19
Legelső kioszk projektem: Stari Sör Jukebox
#52het
2019-02-28
BPM számláló
#52het
2018-11-01
Assembly féléves beadandók
#52het
2018-11-01
Chatbot before it was cool
#52het
2018-10-30
StartX - Cseréljük ki a windows tálcáját és a Start menüt
#52het
2018-10-28
What? - fájltípus azonosító
#52het
2018-10-27
Transport Tycoon DirectX
#52het
2018-10-26
Diff - fájlösszehasonlító
#52het
2018-10-26
De Facto - Szoftverfelügyelet
#52het
2018-10-25
CD és DVD katalogizáló
#52het
2018-09-24
MP3 segédeszközök
#52het
2018-09-24
Keylogger - azaz billentyűleütés-figyelő és naplózó alkalmazás
#52het
2018-08-29
Az örök projekt: személyes weboldal és blog
#52het
2018-08-14
Szógyakorló nyelvtanuláshoz
#52het
2018-08-13
Warzone 2100 mentett játék szerkesztő
#52het
2018-08-13
Rejtett Windows-beállításokat konfiguráló program: TweakMaster
#52het
2018-08-13
A DrótPostaGalamb levelezőprogram adatfájljainak dekódolása
#52het
2018-08-13
Privacy jegyzet
2018-07-30
Egy éve ilyenkor
2018-07-25
The Matrix - konzol szimuláció
#52het
2018-07-13
Kakaóreceptkönyv
kakaó
2018-06-29
Crackelés!
#52het
2018-06-22
A K.I.T.T. challenge
#52het
2018-06-18
Doom 2 botokkal
#52het
2018-06-16
Römi játék Delphiben
#52het
2018-06-09
MeetsCow & DeeJayy - Intro
#52het
2018-06-09
Direct viewer - bitmap megjelenítő
#52het
2018-06-09
bazMAG
#52het
2018-06-09
Console Vision - Konzolos ablakkezelő Delphiben
#52het
2018-05-01
Quake 2 egy floppyn
#52het
2018-04-20
Játék-kitömörítők
#52het
2018-04-12
Tetszőleges program elrejtése Windows tálcáról
#52het
2018-04-05
Személyre szabás
#52het
2018-03-28
A year with Angular 5, 6 - Angular 2018
#angular5 #angular #resources #articles
2018-03-16
Az ikon evolúciója
#52het
2018-03-14
Betűtípusok
#52het
2018-03-04
Billentyűzet-gyakorló
#52het
2018-02-28
Zenél is a DeeJayy?
#52het
2018-02-22
Térképrajzoló az Ascii 3D labirintushoz
#52het
2018-02-19
Ascii 3D labyrinth
#52het
2018-02-14
52 hét - 52 projekt, avagy #eletem
#52het
2018-02-14
Dockerezzünk virtualizált környezetben!
docker, xen, ubuntu
2017-11-12
A cloud-initramfs-copymods hatásai paravirtualizált környezetben
ubuntu, xen, copymods, docker, docker-ce, docker.io
2017-11-11
Virtualizáljunk Xen 4.6-tal Ubuntu 16-on (Xenial)
ubuntu, xen, virtualizálás, hypervisor, debootstrap
2017-11-04
Álláskeresésem története
álláskeresés, it, fejvadászok, linkedin, job
2017-10-24
FAR Manager competitors
far manager, file managers
2010-01-01
Blog
blog
2001-01-02

A programozóktól meg kell szabadulni

Szoftver mindenhez kell...

... és egyre inkább. Ez nem újdonság, az ipar szereplőinek régóta világos ez a trend. Ezért vagyok például annak szószólója, hogy a gyerekeket minél fiatalabb korban ismertessük meg az informatika mélységeivel, mert aki lemarad, kimarad: aki 6 évesen kezdi, pont 6 év előnnyel indul ahhoz képest, mint aki 12 évesen (és valakinek még az is meredek, hogy 12 évesen odaengedje az utódot a géphez!). Másrészt a tehetségek még időben kiderülnek, így ha az látszik, hogy ebben lesz a jövője, behozhatatlan előnyre tehet szert. A többiek pedig egyszerűen csak képesek lesznek lépést tartani a trenddel.

Fontos mellékszál: a programozó nem szoftverfejlesztő. A programozó kódot ír, ami teljesíti azokat a kritériumokat, amiket feladatként kapott. A szoftverfejlesztő munkájának egy része a kód írása, de a szoftver több aspektusára is figyelemmel tekint: biztonság, használhatóság, teljesítmény, skálázhatóság, karbantarthatóság, és még sorolhatnám - aminek a megfelelő feltételeit beépíti a kódjába.

A programozóktól meg kell szabadulni

Amikor a COVID-19 megérkezett 2020 márciusában, elég sok paradigmaváltásnak adott lehetőséget. Ott van például a távmunka/home office intézménye, aminek a folymatát sokszorosan meglendítette, és bár csökkenni látszik, szerencsére meghatározó része lett a helyfüggetlenül végezhető munkák körében.

Egy másik ötlet is megpróbált (ismét) felülni az események hullámára, mégpedig a low-code és no-code (LC/NC) elgondolások, amik lehetővé tennék egyszerű célszoftverek létrehozását költséges szoftverfejlesztői erőforrás nélkül. A mozgalom egyébként már több, mint 40 évre tekint vissza, sok próbálkozás, megoldás, manapság is használatos LC/NC eszköz létezik, melyet néhányan úgy használunk, hogy észre sem vesszük. Az áttörés még nem látszik annyira világosan, de a lényeg a célja: vonjuk ki a programozókat a képletből.

Bele is futottam annak idején egy interjúba egy NC/LC cég képviselőjével, aki percekig fejtegette, hogy a szofveripart sokkal jobban automatizálni kell, hiszen még mindig nélkülözhetetlenek benne az emberi erőforrások és ez így nincs jól.

Lássuk, hogy mit automatizáltunk eddig, mi az, ami még mindig kevés!

A számítógépek csak gépi kódot értenek, azokkal kell őket parancsolni. A gépi kód viszont nagyon nyers, nehéz ilyesmit közvetlenül létrehozni, ennek könnyítésére találták ki például az assembly programnyelvet. Minden gépi kódnak van egy megfelelő, ember által is olvasható változata, amiket egymás után írva egy fordítóprogram olyan parancsokká alakít, amit már a hardver is fel tud dolgozni. Tehát automatizáltuk a szöveges programok gépi kóddá való fordítását.

Ha valaki ismeri az assemblyt, tudja, hogy túl gyorsan abban nem lehet komplex szoftvereket létrehozni: a parancssorok gyakran ismétlődnek, sok hozzáadott gondolkodásra van szükség, hogy abból jó szoftver szülessen. Erre találták ki a magasabb szintű nyelveket, mint pl. a C, C++, Rust, stb. Ezekben sokkal egyszerűbben lehet a kódot szervezni, sok hibától megvédenek a beépített nyelvi eszközök. Egy Rust fordítóprogram rengeteg segítséget ad például ahhpz, hogy a lehető legkevesebb hibát kövessük el programozás közben. Automatizáltuk a hibadetektálást és a kódoptimalizálást.

Ha arról beszélünk, hogy világszinten használt alkalmazásokat kell üzemeltetni és fejleszteni, akkor nem gondolkodhatunk kisebben, mint világszintű felhő-szolgáltatókban. Igen, ennek a bekezdésnek is az lesz a vége, hogy automatizáltuk, hiszen nem ül egy operátor minden egyes gépigény feladásának végén, hogy beállítsa és elindítsa, amikor szükség van rá.

Az automatizálás az informatikában nemcsak példa nélküli, de olyan mértékű, hogy ha felraknánk egy grafikonra, akkor minden más terület legfeljebb kerekítési hibának látszana.

Komplex problémákhoz komplex gondolkodás kell

Ha a gépi kódot és az NC/LC eszközöket feltesszük egy számegyenesre aszerint, hogy mennyit kell programozni hozzá, akkor a két végén foglalnának helyet. Természetesen van a kettő között egy szép skála és bevallom, lelki szemeim előtt egy haranggörbét látok kirajzolódni a használati gyakoriság alapján. Fontos viszont, hogy ez csak két dimenziója a szoftverek létrehozásának. Az üzleti folyamatok bonyolultságának leképzése egy harmadik dimenzió, ahol pedig fordított az eloszlás: minél kevesebbet lehet programozni egy adott eszközzel, annál kevesebb egyedi üzleti igényt lehet lefedni vele.

Csavarhatjuk ameddig akarjuk, de a végén az fog kiesni az egyenletből, hogy ha a követelmények bonyolultak, akkor kell valaki, aki ezt a bonyolultságot képes átültetni akár egy LC/NC eszközbe, ehhez pedig pontosan olyan komplex és fejlett gondolkodás szükséges, mint a szoftverfejlesztéshez.

Informatikushiány van

Ez a kijelentés önmagában hazugság, illetve nagyon igényli a pontosítást: olcsó, tapasztalt, bármire képes informatikusokból van hiány. Ezt figyeltem meg akkor is, amikor évekkel ezelőtt állást kerestem (15 interjún voltam egy hónap alatt és háromszor ennyire pályáztam) és azóta sem változott a benyomásom a piacról.

Ami ebből nagyon fontos: tapasztalt. A jelenlegi junior IT-seket nem irigylem, nagyon nehéz dolguk van: nem igazán keresik őket, mert a beléjük fektetett munka és pénz nem biztos, hogy megtérül. Ezt a kockázatot igyekeznek minimalizálni a munkaadók és ezért csak a több év tapasztalattal rendelkezőket keresik. Azt hagyják elegánsan figyelmen kívül - a rövidtávú célokat előtérbe helyezve -, hogy a karrierútban nincsenek rövidítések, mindenki juniorként kezdi, a senioroknak valakikből lenniük kell. Ha lehetőséget sem kapnak, akkor elég durván nehezített pályán kell felküzdeniük magukat, ahol a küzdelem gyakran az elhivatottság rovására mehet, sokan elhagyják a pályát már az elején vagy kiégnek nagyon korán.

És mindenki programozóként kezdi, akiből megfelelő körülmények és motiváció hatására szoftverfejlesztő válhat.

Most pedig jön az AI

Az elmúlt hetekben a ChatGPT elég komolyan a hírfolyamomba került. Kritikusan állok a jelenséghez, mert nagyon távolról ugyan, de látni vélem a témában rejlő mélységet, aminek maximum a felszínét kapargatjuk éppen. Ennek ellenére lényegében minden második poszt arról szól, hogy végre sikerülhet automatizálni a szoftverfejlesztést!

Nem kell többé programozó, meg lehet tőlük szabadulni, eljő a kánaán.

Az ignorancia kimondottan dühítő ezekben a trendekben: ha nem kell programozó, akikből végül nem lesz szoftverfejlesztő, még inkább látszani fog a hiány, mert nem többen, hanem kevesebben lesznek a tapasztalt szakemberek. A másik, ami megintcsak a szőnyeg alá kerül: az AI-val szoftvert készíttetni pontosan olyan gondolkodásra van szükség, mint egy szoftverfejlesztőnek van. A döntéshozók nemcsak lábonlövik magukat, de egyszerre mindkét lábon.

Mivel szoftverfejlesztő vagyok, arra sarkallnak ezek a felütések, hogy elgondolkodjak az okokon. Miért akar a társadalom minden áron megszabadulni tőlünk?