Miért nem értik meg az emberek, hogy vége az IT "aranykorának"?
Hogy bárki beléphet az IT világába megfelelő végzettség nélkül? Sokan még mindig azt hiszik, hogy van egy érettségijük, majd elvégeznek valamilyen bootcampet és akkor majd milliókat keresnek. Tényleg ennyire nehéz felfogni, hogy még az IT diplomások is szívnak? A külföldi subokon is folyamatosan jönnek az ilyen kérdések, hogy melyik bootcampel van esély, IThez nem kapcsolódó mérnöki diplomával (szóval nem villamos), gazdász diplomával van e esély. Miért nem bírják felfogni, hogy el kell menni egy egyetemet elvégezni IT szakon? Ha már váltani akarnak, legalább annyi legyen bennük, hogy elvégzik az alapképzést.
Tudom, hogy régebben ment így is. De már nem az a világ van és nem is lesz az. Szerintem a jelenlegi helyzettől jobb nem lesz. A cégeknek sem éri meg, hiszen a legtöbb egy rosszabb egyetemista szintjén nem volt összeségében. Jóval többet kellett velük bajlódni.
Nem hiába zárnak be a bootcampek sem.
A munkatársam is most tanít 1 gépészmérnököt, 2 gazdászt és egy építészt. Megkérdeztem, hogy komolyan gondolja, hogy el tudnak majd helyezkedni. Természetesen ő sem gondolta komolyan, de mivel fizetnek neki, így oktatja őket. Szóval ezek az emberek még magán órákra is hajlandóak költeni ahelyett, hogy belátnák, hogy IT diploma nélkül nem fog menni.
Ezt miért nehéz felfogni, amikor általában az ilyen kérdések alatt megmondják nekik?
10: Csak két dologra reagálnék (és igen ezt nekem egy régóta a szakmában dolgozó "mesterem" mondta):
"Jelenleg mennyivel másabb a memória cimzése mint 30 éve volt?" -> Annyiban más, hogy ma egyáltalán nem kell foglalkozni egy átlagos fejlesztőnek ezzel. Pláne nem egy WEB-es kliens-szerver alkalmazás esetén, ahol esetleg maga a klines szabványos HTML-ben készül egy kis javascripttel (és akkor nem is a legmodernebb cuccokról beszélek, hanem az úgy kb. 10 évvel ezelőtti dolgokról). Mikor kell tudni pl. egy python program esetén foglalkozni azzal, hogy hogyan történik a memória címzése? Nem is biztos, hogy azonos architektúrán fog futni (pl. asztali PC, mobil telefon vagy bármi). Nem kell ezzel ma már foglalkozni, mert ezt elintézi az oprendszer, a fejlesztő rendszer, a nyelv (fordító vagy interpreter vagy bármi), meg úgy általában minden amit használunk. Nagyon-nagyon kevés helyen van szükség arra, hogy az ember foglalkozzan azzal, hogy mi történik a memóriában. Főleg mert ma törekszik már mindenki a ténylegesen platform független megoldásokra. Amikor írod az alkalmazást nem is biztos, hogy tudod, hogy ez most PC-n fog futni vagy mobilon (ARM architektúra) és bizony egy x86 és egy ARM memória kezelése eltérő (röviden tanultuk mindkettőt de már régen elfelejtettem mert totál soha nem volt rá szükségem). Ez már nem az a korszak amit Szegeden látsz a múzeumban, ahol egy mérnöki pulton kellett binárisan bepötyögjed az indító szekvenciát egy ki tudja milyen gépen (ott van egy ilyen batár nagy régi gép, ott mesélték, hogy ez annak idején hogyan ment, és ott tényleg kellett tudni az egész címzést) de az gép már kb. 60 éves. Szóval amit írsz nem is annyira 30 inkább 60 éves (mára teljesen elavult) dolog.
"Egy bináris szám kettes komplemense mennyit módosult a 30 évvel ezelőtti értékhez képest?" -> Pont annyit amennyit fent a memória címzésnél írtam. Annyit, hogy nem kell vele foglalkozni. Nincs szükség erre egy átlag fejlesztőnek. Megkapja a programom a kész értéket egy változóban, ott van hozzá a math.library (vagy benne van magában a nyelvben) és az elintézi. Nyilván aki math.lib-et fejleszt (kb. a fejlesztők kevesebb mint egy tíz ezreléke vagy még annyi se) ő neki ez fontos tudás. De pl. Python esetén ha mindent "ráhagysz" (és az a legegyzsesrűbb ha csak nem akarsz nagyon nagyon szőrszállhasogatni) azt se tudod, hogy hány bites (meg, hogy egézs vagy lebegőpontos) a szám amire hivatkozol, és nem is kell tudjad (az esetek 99,999%-ban; a maradék 0,001%-al meg az átlag fejlesztő soha az életében nem találkozik).
Igen valóban 30 éve ezek fontosak lehettek de ma már ahogy írtam a feladatok 99,999%-ban teljesen irrelevánsak.
11, ha nem lennél ilen reménytelenül amatőr, ostoba, akkor nem írnál ilyen sok hülyeséget, sőt, az idődet sem pazarolnád arra, hogy ennyi sok hülyeséget firkálj ide.
a rendszerfejlesztők (tudod, ez egy szakirány), jó eséllyel, nem fognak pythonnal meg web-es farokságokkal foglalkozni, bármennyire is azt képzeled te a fogalmatlan fejeddel.
De alap-elvárás egy diplomással, egy szakemberrel szemben, hogy tudja, mi történik a dobozban és ehhez hozzá tartozik az is, hogy tisztában legyen azzal, mi az a lineáris címzésmód, szegmentált címzésmód, hogy egyáltalán, legalább azt tudja, a PC címszámítása hogyan is működik.
Sügérke! Javaslom, legalább oda lapozz vissza, ahhoz a frisebb thread-hez, amiben a címaritmetikát tárgyalják, nálad kompetensebb verenyzők:
https://www.gyakorikerdesek.hu/szamitastechnika__programozas..
Az is alap, hogy a programozó, ha már ez a szakmája, tudja, hogy működnek azok a cuccok, amelyeket programoznia kell, legyen bennük bármilyen szinű, szagú és formájú processzor. Ennek a tudásnak meg része a komplemens képzés, már csak azért is, mert tudod, vannak ám olyan masinák, amelyek csak összeadni képesek és a többi alapműveletet (kivonás, szorzás, osztás) is ennek a műveletnek a segítségével végzik el (bizony, ám, te kis golyhó, összeadással végzik el a kivonást is). Ehhez meg - képzeld lütyőke - tudni kell egyes, meg kettes komplemenst képezni.
Látod? A szakember legalább ennyivel több, mint pl. te, meg a te kis barátaid, akik a boldogságos, felhőtelen ön-szopatás során, szép lassan olyan távol kerülnek a valóságtól, hogy azon tényleg már csak röhögni lehet.
#10: Az egyik olyan problémára, amit nem is említettem, pont jó példa a válaszod. De majd erről lentebb.
> Mesélj nekem, életed során hány darab olyan autodidakta Túlbuzgó Alajossal találkoztál, aki séróból (fejből, tisztén a szerzett tudására alapozva) képes lenne … {és itt szóba kerül az adaptív huffman kódolástól az önkiegyensúlyozó bináris fán át egy Turing teljes programnyelvhez írt fordító}
Tizenévesen hobbiból írtam egy nem teljes értékű kottaszerkesztőt és lejátszót QBasic nyelven. De aztán kicsit elmélyedtem többek között a Pascalban, az Assemblyben, meg a C-ben. Már munkaként írtam tanulónyilvántartó programot még Delphiben. Írtunk pl. interaktív tananyaghoz szoftvert Flash, Flex, így nyilván ActionScript alapokon (hű, de nem szerettük, de akkor az volt az egyetlen reális választás). Ír(t)unk egy egyre komplexebbé váló online oktatási rendszert saját keretrendszerrel, amiben tananyagokat lehet informatikai tudás nélkül létrehozni, eladni, vásárolni, online vizsgákat, tanulmányi versenyeket lehet online lefolytatni, tanulócsoportokat menedzselni, videókonferenciákat tartani stb…
Tudod hányszor kellett mindehhez akár csak egy egyszerű Huffman-kódolást leprogramoznom? Hányszor kellett bináris fát leprogramoznom? Pláne hányszor kellett Turing-teljes programozási nyelvet megálmodnom saját fordítóval? Hányszor vettem hasznát az automata-elméletnek, gráfelméletnek? Nagyjából egyszer sem. Külön csemege és szökőévben egyszer fordul elő, hogy olyan probléma merül fel, amihez kell picit is elméletibb, matematikai természetű megközelítés.
De pl. vegyünk egy alapszintűbb dolgot. Tök jó, hogy az ember megtanult egy csomó rendezési algoritmust. Irónia nélkül mondom, tényleg tanulságok, hogy hogy lehet különböző megoldásokat megalkotni egy problémához, mik ezeknek az előnyei, hátrányai, egyáltalán mi történik tulajdonképpen egy rendezés során. De ha valaki más területen sajátította el ezt a tudást, és nem ismer 2-né több rendezési algoritmust, akkor mi van? Tényleg olyan óriási *gyakorlati* jelentősége van, ha végül ő is és én is egy adatbázis lekérdezésnél az „ORDER BY”-t, egy kódban meg végül egy sort() függvényt vagy metódust használunk, és az esetek 99,99%-ban felesleges ennél cizelláltabb megoldás?
De sokra megyek, ha valaki az általad leírtakat keni-vágja, de mivel mondjuk Laravelt nem tanulhatott, hiszen mikor diplomázott, akkor még nem létezett, és elkezd leprogramozni egy olyan funkcionalitást, amit a Laravel amúgy alapból tartalmaz, bármiféle külső package/lib nélkül. Azért mert mivel ő programozó, előbb nekiáll kódot írni, mintsem megismerné alaposabban a rendszer részleteit.
Sokra megyek vele, ha amúgy anno tanulta, hogy mi az a második normálforma, de mivel 10 éve nem nagyon foglalkozott adatbázisokkal – és mikor tanulta, akkor sem nagyon rajongott érte –, így elegendő időt kapva is egy nagyjából használhatatlan adatbázis struktúrát képes csak letenni az asztalra, de mint elszabadult hajóágyú rögtön kanyarít is hozzá egy hosszabb kódot, ami mehet is a kukába. Vagy mire megyek egy diplomással, ha ugyan fejből vágja, hogy melyik lebegőpontos adattípusnak hány bites mantisszája és karakterisztikája van, ha végül mindezt úgy figyelmen kívül hagyva, mint a pinty, a pontosságból fakadó anomáliák ismerete ellenére leír egy olyan sort, hogy:
if (float1 == float2) …
Nota bene én ha az adaptív huffman kódolással nem is, de az egyszerű Huffman-kódolással 15–16 évesen találkoztam, akkor írtam is ilyen algoritmust… Mondjuk azóta sem, de a tudás amúgy megmaradt. A bináris fákkal is előbb találkoztam, mintsem végeztem volna a – nem informatika szakos – középiskolával. A tudásnak nem csak a felsőfokú képzés az egyetlen és kizárólagos forrása. Annyi előnye persze egy egyetemnek van, hogy a tananyag igyekszik teljes képet adni, egymásra épülő, lépcsőzetesen felépülő tananyag formájában.
~ ~ ~
És akkor van itt egy magas ló nem kevés informatikusnál. Nem tudsz Turing-teljes programozási nyelvet készíteni saját fordítóval? Akkor nem csak programozó nem vagy, de ember is csak alig, legfeljebb csak egy szerencsétlen vén f…sz. Hogy hárman lefejlesztettetek egy webalkalmazást, aminek tízezrek használják elégedettséggel, és komolyabb problémák nélkül fut évek óta, pedig látják a nyomát mindenféle sikertelen hackelési kísérletnek? Ugyan már, *attól*, hogy valaki programot ír, még nem lesz valaki programozó, hiszen mit sem ért a parciális differenciálszámításhoz, amit amúgy a kritika megfogalmazója sem használt az elmúlt 10 évben.
Ha már float, akkor egy megtörtént beszélgetés volt egy diplomás informatikus – nevezzük Aladárnak – és egy másik ember között – nevezzük Bélának – aki amúgy szintén informatikusként diplomázott és már a doktoriját írta, csak erről Aladár mit sem tudott. Béla megemlítette, hogy elsőre mennyire meglepte, hogy milyen pontatlan lett a szimulációja, mert bár a single 6–7 számjegyig pontos, az adott konkrét számítások miatt ez 1%-os hibává adódott össze, ami az adott problémakörnél már meg nem engedhető pontatlanság. Erre Aladár váltig állítgatta, hogy ez hülyeség, a single 10–11 számjegyig pontos. Béla kijavította, hogy nem, csak kb. 7 értékes számjegyig. Aladár a végén úgy volt, hogy ő mégiscsak egy egyetemi diplomával rendelkező szakember, aki jó pár év óta senior pozícióban van, ő már csak mégis jobban tudja, szóval Béla ne mutogassa a Wikipédiát – első blikkre azt találta elővenni –, mert hát ő mégis csak jobban ért ehhez, mint holmi Wikipédia szerkesztők…
És ez a viszonyulás nem is olyan ritka. Egy diploma könnyen elhiteti az emberrel, hogy ő annyira nagy szakember, hogy tévedhetetlen és a tudását nem is kell igyekeznie mélyíteni, új ismeretekre szert tenni. Ragaszkodik az egyetemen megtanultakhoz akkor is, mikor az a tudás már rég elavulttá vált. (Függetlenül attól, hogy igen, amúgy a kettes komplemens, meg a Gray-kód az tényleg az ma is, ami 40 éve volt.)
Meg ha már a lebegőpontos számábrázolással példálóztam. Aladár mondjuk megtanulta az egyetemen, hogy:
single: 8 bites hatványkitevő, 23 bites mantissza, 7 számjegy pontosság
double: 11 bites hatványkitevő, 52 bites mantissza, 15 számjegy pontosság
extended: 15 bites hatványkitevő, 63 bites mantissza, 18 számjegy pontosság
…
Száraz, nem túl érdekfeszítő táblázatnak tűnik.
Béla meg 14 éves korában már a maga szórakoztatására játszott Javascript kódokkal. Annyit tudott, hogy ha beírja, hogy a=13/57, akkor a-ban ott lesz a kifejezés értéke. Hogy hogy tárolódik? Meg hol tárolódik? Lehet el sem gondolkodott rajta. De Béla mondjuk harmadszor találkozott azzal a poénnal, hogy 1/3+2/3=0.99999999, esetleg maga is belefutott egy ilyenbe, így hát utánanézett, hogy mi ez. Mivel a maga érdeklődése vezette ehhez a tudáshoz, benne nem csak a tudás lesz, hanem az ahhoz vezető út élménye, az „aha” élmény, rögtön társulva is azzal, hogy ennek milyen jelentősége van és azt hogyan érdemes figyelembe venni – mondjuk két szám összehasonlításánál – így sokkal élőbb benne ez a tudás. Aztán hogy pár év múlva szerez-e diplomát vagy sem? Ha igen, akkor sem onnan fog származni a tudása.
12 (2024.11.10 16:54)
Te elolvasod amire válaszolsz mielőtt fröcsögsz? Értelmezd már amit írtam!
Átlagos fejlesztőt írtam végig. Sőt írtam magam is, hogy aki mélyebb dolgokat fejleszt azoknak nyilván tudnia kell. De ez ma elenyésző. hány embert ismersz aki ma oprendszert fejleszt? És hányat aki pl. egy üzleti web alkalmazást? Na látod... Ennyi.
Az, hogy a Te degenerációd még ebben nőt fel, az nem jelenti azt, hogy ma erről szól az IT. Nagyon nem erről szól. Nyilván megtanultuk és ha kell elő tudom venni,de egyetlen egy esetben sem volt szükségem sem arra, hogy hogyan kezeli az x processzor a memóriát meg a kettes komplensre se volt szükségem. Egészen másról szól. Az, hogy te leragadtál az 1960-as években az téged minősít és nem engem. Kb. az a tudásod ami már akkor is kevés volt.
"PC címszámítása hogyan is működik." -> És azt egy mobil alkalmazás fejlesztőnek aki pythonban fejleszt ARM processzorra (ahol ez tök más) miért kéne tudnia?
Miért kéne tudni az úr 2024. évében a "szegmentált címzésmód"-ot, amikor az már 39 éve kiment a divatból? (Az i386 (1985) megjelenésével feleslegessé vált, csak kompatibilitási okok miatt maradt meg.) Látszik továbbra is, hogy a tudásod az 1960-as de inkább az 1950-es évek szintjén ragadt.
> a rendszerfejlesztők (tudod, ez egy szakirány), jó eséllyel, nem fognak pythonnal meg web-es farokságokkal foglalkozni
A rendszerfejlesztők egy vékony szelete az informatikának. Kétségtelenül fontos szelete, ami nélkül nem létezhetne egy csomó más, de ettől még önmagában ez egy vékony szelet.
> De alap-elvárás egy diplomással, egy szakemberrel szemben, hogy tudja, mi történik a dobozban és ehhez hozzá tartozik az is, hogy tisztában legyen azzal, mi az a lineáris címzésmód, szegmentált címzésmód
Ja, egy frontend fejlesztő számára ez aztán roppant fontos tudás. Nem ő intézi a memória címzését, látni sem látja, hogy melyik változó hol tárolódik pontosan, sőt hatással sem tud lenni rá. Mikor assemblyben programoztam, ott ez kardinális tudás volt. Meg részben C-ben is, de ott is már csak részben.
És ez így van rendjén. Azért született az Assembly, hogy egy absztrakciós réteget képezzen a opcode felett, így ne kelljen vele foglalkozni. Azért született a C, hogy egy újabb absztrakciós réteget képezzen. Azért születtek a magas szintű programozási nyelvek, hogy elfedjék az alacsonyabb szintű működést, amivel így nem igazán kell foglalkoznod, nem kell tudnod sem róla. Nyilván ehhez kell az, aki ezekhez fordítót ír, aki operációs rendszert ír, aki tényleg ért az alacsony szinthez, de ez egyre vékonyabb szelete csak az informatikában.
Meg a függvénykönyvtárakat, csomagokat is erre találtuk ki, hogy ne kelljen mindent megírni, csak használni azt, amit más megírt, amihez viszont azt kell érteni, hogy mit csinál, azt nem szükséges, hogy pontosan hogyan csinálja. Lásd ott a sort() függvény. Azt kell tudnom, hogy mit csinál, a legritkább esetben fontos, hogy hogyan csinálja.
A hatékonyság és a komlexitás is megköveteli ezt. Mégsem lehet assemblyben leprogramozni egy komplett vállalatirányítási rendszert. Aminek mondjuk csak egy apró részlete egy 100 soros SQL lekérdezés, aminek a végrehajtását egy olyan kód végzi, amit assemblyben megírva sok ezer sor lenne. Ki a fenét érdekel, hogy egy adott adatbáziskezelő hogyan parse-olja az SQL-t, hogyan állítja össze az eredményt? Nekem azt kell tudnom, hogy milyen adatokat fog visszaadni, absztrakt, magasabb szinten kell csak értenem, hogy mi történik.
Ez olyan, hogy van, aki lisztet tud őrölni. Van, aki vagy tudja, hogy hogyan készül a liszt – mondjuk olyan részletekig, hogy hogyan kell a malomkövekre barázdát vágni –, vagy nem tudja, de a lényeg, hogy tud zsemlét sütni. Van, aki vagy tud zsemlét sütni vagy nem, de tud szendvicset készíteni. Te mintha azt mondanád, hogy nem is lehet jó szendvicskészítő az, aki nem tudja, hogy hogyan kell a malomkőre barázdákat vágni, hiszen az elengedhetetlen tudás. Meg mintha azt sugallnád, hogy a szendvics készítésében a liszt megőrlése az igazi tudás, a molnár az igazi szendvicskészítő, minden más csak másodlagos fontosságú, jelentéktelen részletkérdése a dolognak. Már elnézést, de ez szakbarbár molnár szemellenzős viszonyulása a világhoz.
> nem fognak pythonnal meg web-es farokságokkal foglalkozni
Mondod ezt holmi webes farokságokban íródott oldalon. :-) Meg használod a webes farokságokban írt szolgáltatások százait, mondjuk egy GMail webes felületet, egy e-Szja bevallási felületet, egy webáruházat, egy Spotify-t, vagy esetleg éppenséggel egy Visual Studio Code-ot.
"De alap-elvárás egy diplomással, egy szakemberrel szemben, hogy tudja, mi történik a dobozban és ehhez hozzá tartozik az is, hogy tisztában legyen azzal, mi az a lineáris címzésmód, szegmentált címzésmód, hogy egyáltalán, legalább azt tudja, a PC címszámítása hogyan is működik."
És most akkor ennek fényében írd le nekem (mivel te írtad, hogy alapvető elvárás), hogy pontosan hogyan működik a malloc függvény pl. egy windowson, linuxon, z/OS-ben, androidban, iOS-ben. És mindezt még nézzük meg különböző processzorokon (pl. egy intel linux és egy ARM linux esetén, esetleg z/Linux esetén). Ha ennyire de tényleg ennyire okos vagy. Mert egy "átlag" fejlesztő előbb találkozik a malloc-kal, mint a kettes komplemenssel és a PC címszámításával (ráadásul amit már előttem is írták, 1985 óta nincs szegmentált címzés).
"És most akkor ennek fényében írd le nekem (mivel te írtad, hogy alapvető elvárás), hogy pontosan hogyan működik a malloc függvény pl. egy windowson, linuxon, z/OS-ben, androidban, iOS-ben. "
A malloc fgv. úgy működik, ahogy az opre fejlesztője megírta. De az opre fejlesztője nincs hatással arra az architektúrára, amin fejleszt. Ergó, el kell fogadnia a szegmentál cimzésmódot, ha történetesen pont az jön szembe.
A szegmentált cimzés egyébként, bizonyos területeken létező, valós, sőt, manapság is alkamazott dolog, mivel a címvonalak számát sem lehet kitolni a végtelenbe.
Átlag fejlesztő? OMG. Az milyen állatfaj?
Nincs olyan, hogy átlag fejlesztő. Már elmondtam itt egy párszor, nincs okosak és hülyék egyeteme. Mindenki egy helyre jár. Az is aki csúcsfejlesztő lesz a SpaceX-nél és az is, aki majd excel táblákat horgol napi 9 órában.
"A malloc fgv. úgy működik, ahogy az opre fejlesztője megírta." Hú van ott baj rendesen... Azaz azt akarod mondani, hogy egy fordító programot csak az operációs rendszer fejlesztője írhat meg?
Amúgy az idiótaság spirálba egyre jobban beletekerdsz:
Mi köze a címvonalak számának a szegmentált címzéshez? Ez még az általad istenített 8086/88 esetén sem volt igaz. Egyáltalán nem függ a címvonalak számától, hogy valami elb*ott idióta kitalálta a 8086 esetén a szegmentált címzést. Ezer jobb megoldás létezett már akkor is (ld. pl. a PDP11 több mint 10 évvel korábban, vagy az IBM370 virtuális gépe 1972-ben, egészen más megoldást választottak). Látszik, hogy te csak irtó nehezen fogtad fel a szegmentált címzést mert kb. minden hasonló kérdésnél erre jutsz el. Mert neked legalább egy évtized volt mire megértetted, és azt hiszed,hogy ez másnak is nehézséget okoz.
De ha ennyire értesz hozzá már rég leírhattad volna a malloc pontos működését. De csak össze vissza hadoválsz.
"nincs okosak és hülyék egyeteme."
Azért van bőven különbség mondjuk egy ELTE-IK(ahol igen erősen meg kell küzdeni a bennmaradásért és diplomáért) és egy Gábor Dénes egyetem között(Ez ugye köztudottan egy szekunder egyetem ahova legtöbben csak a könnyű diplomázás miatt iratkoznak be és nincs valami jó híre).
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!