Állítólag sok programozó van itthon, de kevés a jó programozó. Mitől lesz valaki jó programozó? Pontosabban mitől lesz valaki jó, kezdő, junior programozó, akit szívesen felvesz egy cég?
Ez egy analógia volt, te sötét ember.
Az informatikában ugyanez a helyzet.
A RAM az ma is RAM, a cimzésmódja 40 éve ugyanaz. A CPU ugyanazt teszi mint 40 évvel ezelőtt, stb.
Hogy te nem vagy képes ennek felfogásához, az meg fájjon neked.
7: végtelenül ostoba és szűklátókörű a válaszod. Egyszerűen nem tudom, hogy te melyik bolygón élsz. Vagy van egy tippem, te vagy az a "programozó" aki már a bölcsödében megírta a Windows 45678++^2 változatot cask még nem ért fel az emberiség a zseniéjéhez. És az egyetemről az első félévben kibukott, mert az összes tanár "irigy volt arra, hogy sokkal többet tudok programozásból, mint ők együttvéve". "És nem kell egyetem, mert ott csak bullshitet meg elavult dolgokat tanulnak. De én a világ legjobb programozó zsenije mindent (is) tudok".
Pontosan ez a mentalitás veszi el 1./ rengeteg ember kedvét attól, hogy programozó legyen; 2./ egyre nehezebb lesz a tényleg tehetséges kezdőknek boldogulni. Szintén tipikus, hogy bármilyen erről szóló vitában (de még állásinterjún is) elővesznek jól hangzó HBR-eket (értsd hárombetűsrövidítés aminek nagyjából az értelmét sem tudják), meg jól hangzó fogalmakat amiknek totálisan nincs relevanciájuk a kérdést kört illetően. Pár hete kaptunk egy önéletrajzot (valami hozzád hasonlótól, egyetemi végzettség nincs, egy darab érettségit tudott felmutatni "barátunk"): "Otthonosan mozgok az 4NF, 5NF, AD, AES, AJAX, APC, ASP, APS, DBMS, IPC, ICP, IPL, IAAS, IDS, IPS, NAS, NAT, PAAS, PCI, SAAS, SQL /és még kb. 5 sorban folytatva a HBR-ek felsorolását, azokat nem másolom most ki egytől egyig/ rendszerek világában."
Ezek mind mind bullshitek.
Mi a kérdés a kérdés az, hogy "Mitől lesz valaki jó programozó?" És ehhez marhára nem az kell amit írtál, hogy " Tudod mi a "elosztott tranzakció"? Vagy "asszinkron kommunikáció"? Netán mit jelent (angolul) a "service mesh" kifejezés? Hogyan építenél fel egy cloud alapú alkalmazást egy Kubernetes környezetben?" Ezek konkrét "divat" irányzatok. Legalább annyira "fontosak" egy átlag programozó számára, mint az, hogy egy átlagos kőműves ismerje azt, hogy hogyan kell fából vaskarikát készíteni.
Majd 2-3 év múlva kukázzuk a cloud computingot meg a kubernetes környezetet és akkor mire mész ezzel?
Először is van egy alap hozzá állás ami szükséges. Egy jó programozó első sorban ismeri a saját korlátait. Tudja, hogy mit tud és mit nem leprogramozni. Tudja azt mondani, hogy "ezt én nem tudom megcsinálni, keress mást" (persze ehhez olyan környezet is kell aki ezt elfogadja).
Ismernie kell az alapokat. Az megint irtó nehéz, hogy mik az alapok. Nagy valószínűség szerint a legfontosabb adattípusok, elemi adatszerkezetek, programozási tételek, megoldások úgy látszanak, hogy egyenlőre nem változnak és fontosak. Pl. érti, hogy mi a különbség egy egész, egy előjeles egész, lebegőpontos szám között. Ismeri a lista, láncolt lista, gráf, tömb (stb.) fogalmakat. Legalább 1 hatékony rendezést ismer, min-max kiválasztás, bináris keresés. Ezek nagyjából alapnak tekinthetőek. És ezek mennek stabilan.
Utána már nagyon terület függő, mert egészen más kell valakinek aki beágyazott rendszereket programoz és időkritikus alkalmazásokat fejleszt föld buta processzorra (élete végéig nem fog kubernetes környezettel találkozni), más az aki pl. egy játékprogram 3D renderelő moduljait készíti, más aki web apikat fejleszt és sorolhatnám napestig. Ez már terület specifikus, ezt a megfelelő alapok birtokában hamar meg lehet tanulni. Meg azokat a speciális tudásokat amelyek ehhez kellenek. Az egyiknek fontosak lesznek a vektor algerbra szabályai is, a másiknak nem. Sőt még az is igaz lesz, hogy ami az egyik területen "ilyet véletlenül sem írunk mert olvashatatlanná teszi a kódot" a másik helyen "ilyet kell írni, mert nincs más".
Legalább az elemi algebrai összefüggéseket ismeri (ide értve a Boole algebrát is, De-Morgannal együtt /ezt szeretik nem ismerni és jönnek az ide-oda invertálások, és agyon bonyolított feltételes szerkezetek mert olyan formában van az adat eleve).
És alázat a kollégákkal szemben. Elismerni, hogy ő is volt kezdő. Nem lenézni a másikat mert valamit nem tud (talán ez az egyik legfontosabb egy jó programozó esetén).
Szerintem az tudja, hogy mitől lesz jó programozó egy ember, aki tudja, hogy mitől lesz valaki híres.
Ez pedig 3 dolog, amit én se tudok. :)
@9 "Ezeket a "technológiákat" amúgy is el lehet sajátitani néhány nap alatt."
Akkor hogy lehet, hogy te évek alatt se tudtál megtanulni semmit? Mutass valamit, amit te csináltál. Nincs semmi, csak bő nyállal fröcsögsz úgy, hogy halvány fingod sincs a szoftverfejlesztésről.
Nem csak jól megcsinálj a feladatát, de vannak konstruktív kritikái és ötletei az üzleti logika és megvalósítás terén is és ezeket megfelelően tudja tálalni.
Hiszen az is rossz ha valaki "minden lében kanál" és mindenki körülötte legszivesebben megfolytaná, amikor megszólal és az sem jó ha valaki csak 1-1 kollégájának motyogja el random ebéd közben az egyébként jó ötleteit.
Ezen felül megbízhatónak és motiváltnak kell lenned.
Ha nem is annyira jók a képességeid, csak átlagos, de közeben folyamatosan bele rakod a plusz energiát (itt nem ledolgozott órákról beszélek) és olyan dolgokban is bele mert nyúlni, ami neked nem kötelező meg persze közben szakmailag is fejlődsz, akkor nagyon hamar előre tudsz lépni.
Hiába vagy jó szakember, ha árad belőled a negativitás, utálod amit csinálsz és semmihez sem fogsz hozzá vagy gondolkozol el, amin számodra nem kötelező.
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!