
Kép a film «Harry Potter és az azkabani fogoly»-ból
A világ problémája az, hogy a nevelt emberek tele vannak kétségekkel, míg az idióták tele vannak magabiztossággal
Charles Bukowski
Nemrégiben tartottam egy újabb egyéni programozási órát. A szokásos óráktól eltérően ezúttal nem a nyelv szerkezete vagy a feladatmegoldás problémája volt a téma. A diák megosztotta velem az aggodalmát a jövőbeli munkavállalásával kapcsolatban. Ő maga elég okos volt. Azok közé tartozik, akik a tanfolyamokra jönnek, gyorsabban teljesítik a programot, és eredeti megoldásokat találnek, de mindig őszintén alábecsülik magukat. Véleményem szerint az ilyen kétségek csak az információhiányból fakadnak. Ezt a hiányosságot próbáltam pótolni az óra során.
A kérdések nagyjából a következők voltak:
- Minden évben sok hallgató végez az egyetemeken, és mindannyian munkát keresnek. Ez rengeteg ember. Biztosan a legjobbakat választják, és nekem nem jut hely.
- Mi van, ha elrontok valamit, és rögtön kirúgnak?
- Mi van, ha a munka során rájönnek, hogy ostoba vagyok, és kirúgnak?
Ez a diák nem volt az első, akinek hasonló kérdéseire válaszoltam. Ezek sokakkal felmerülnek, és általában felkészülés nélkül kell mesélnem róluk. Ezúttal úgy döntöttem, hogy leírom a monológomat a noteszomba. Azt hittem, hogy egy pár bekezdés elég lesz, de végül egy egész cikkre írtam.
A cikk az én nézőpontomból és tapasztalataimból íródott. Azonban világunk nagyon változatos, és meglepő dolgok történnek. Ha valamivel nem értesz egyet, vagy a te tapasztalatod valahogy eltér, kérlek, írj megjegyzést.
A cikket fejlesztőknek írtam fejlesztők számára. Azonban ha teszteléssel, rendszergazdálkodással vagy bármilyen más IT tevékenységgel foglalkozol, néhány tanács neked is hasznos lehet.
Egyáltalán nem fognak felvenni
Amikor arra gondolsz, hogy évente számos egyetem több száz hallgatót bocsát ki, akkor kényelmetlenül érzed magad. Hogyan konkurálj egy ilyen hatalmas tömeggel?
Sajnos, korántsem minden végzős rendelkezik a szükséges technikai felkészültséggel. Próbáljon meg megkérdezni egy ismerős egyetemistát: hogyan jutnak el az ő csoportjában a diákok a vizsgákra az olyan tantárgyakból, mint az „adatbázisok” vagy az „algoritmusok és programozás alapjai”? Egy 30 fős csoportban legjobb esetben is csak 3-5 „haladó” hallgató van, akik mindent tényleg maguk csináltak. A többiek egyszerűen lemásolják tőlük, bemagolják a válaszokat, és leteszik a vizsgát.
Ilyen volt, amikor én is tanultam. Azonban a tapasztalatom nem biztos, hogy reprezentatív volt. Ezért ezt a kérdést több különböző diáknak is feltettem. A válasz nagyjából hasonló volt. A válaszadók különböző egyetemekről és főiskolákról származtak. Az okokról készült érvelést ezúttal meghagyom ennek a cikknek a határain kívül. Egy teljes körű kutatásra nem lenne elég az időm, ezért az összegyűjtött tények alapján vonok le következtetéseket.
Százak közül csak néhány tucat válik érdekessé a munkaadók számára.
Csak kevesebb végzős tud valódi versenyt támasztani egy tehetséges, jól felkészült diákkal szemben. Még akkor is, ha szorgalmasan tanultál, az első interjú után valószínűleg nem fognak felvenni. A második után is valószínűleg nem. Minden jól alakulhat, azonban jobb, ha nem ostromra, hanem ostromvédésre készülsz. A sikertelen próbálkozás csak arra ad okot, hogy hibákat elemezz és újra próbálkozz. Az interjúkra való felkészülésről nem fogok beszélni. Az interneten már sokat írtak erről. Annyit csak mondok, hogy az interjún való részvételnek vannak árnyalatok, amelyek magyarázatához valószínűleg nem szántak időt az oktatási programodban. Keresgélj ezt az információt saját magad, ez csökkentheti a próbálkozások számát.
Az őrület a pontos ismétlése ugyanannak az akciónak. Ismét és ismét, a változás reményében.
Albert Einstein
Annak érdekében, hogy az interjúk ne váljanak őrületté, minden új próbálkozás után jobbá kell válnod. Jegyezd meg vagy írd le az interjú során feltett kérdéseket. Hazatérve nézd át ezt a listát, és ellenőrizd magadat az internet segítségével. Így meg fogod érteni, hol tévedtél, és hol volt a hiba az interjúztató részéről. Ilyen is előfordul. Ismételd át vagy tanulmányozd a rosszul megválaszolt témákat, és próbálkozz újra.
Ezen kívül a munkaerőpiacra markáns szezonális jellemzők is vonatkoznak. A felkészült cégek figyelembe veszik az iskolákból való kikerülés időpontjait a toborzás tervezésekor. Tavasszal több álláslehetőség van a pályakezdők számára, mint más időszakokban. Azonban ilyenkor a verseny is nagyobb.
Blokkolt - elbocsátanak
Amikor tapasztalat nélküli embert alkalmaznak, konkrét elvárások merülnek fel vele szemben.
A munkáltatók elvárják a pályakezdőtől:
- Általános technikai ismereteket
- A cég szakterületének sajátosságainak elsajátítását
- A használt eszközök és gyakorlatok megértését
Néhány szervezet a pályakezdők számára képzési kurzusokat szervez a használt technológiákról, eszközökről és helyi eljárásokról. Például a vállalati e-mail használatának illemszabályai, a dokumentumok módosításának rendje a wikin, helyi sajátosságok a VCS és hibakövető használatában.
Vannak technikai bevezető kurzusok is, de hasznosságuk kérdéses. Ha eljutott a foglalkoztatásig, az munkáltatók megbizonyosodtak arról, hogy van valamilyen megfelelő szintű tudása. A legjobban úgy érdemes ezeket a kurzusokat végigcsinálni, mint egy kicsi formalitást. Lehet, hogy tényleg lesz bennük valami hasznos.
Amikor elkezdi a munkát, ne feledje, hogy a pályakezdőnek biztosan nem lesz olyan sürgős, bonyolult és egyszerre fontos feladata. Valószínűleg csak az egyik tulajdonság fog érvényesülni. Vagy egyszerű, de sürgős: a dizájn javítása, egy fájl továbbítása valakinek, a hiba reprodukálása. Vagy bonyolult, de semmilyen reménnyel a befejezésre - azért, hogy a pályakezdő minél több tapasztalatot szerezzen. Vagy fontos, de kísérleti. Például egy projekt, amit mindenki régóta szeretne, de nincs ideje megvalósítani.
A munkaeszközök elsajátítására vonatkozó feladatok "bonyolultak" és mesterségesek lesznek. Valószínűleg egy egyszerűsített változatát fogják a fő rendszernek elkészíteni. Ilyen feladatoknál ugyanazt a technológiát és a szakterületről származó kifejezéseket használják, mint az egész projektben. Ugyanakkor a végső felhasználónak nem fogják átadni az elvégzett munkát. Ez demotiváló lehet, de ezt az érzést érdemes leküzdeni. A mesterséges feladatot úgy kell elvégezni, mintha a projekt sorsa múlna rajta.
Az első feladatod megoldásának eredménye olyan első benyomást fog kelteni rólad a kollégákban, akik nem voltak ott az interjún.
Egy másik feladat a szerszámok elsajátításához a »projekt indítása helyi gépen/tesztkörnyezetben«. Néha ezt a folyamatot leírják az utasításokban. De ezek általában régi és részben elavultak. Valódi hasznot hozhat a projekthez, ha írsz egy új utasítást a felmerült problémák tisztázásával kapcsolatban. Biztosan találkoztál már a főiskolán azzal, hogy írtál egy laboratóriumi dolgozatot valamilyen tantárgyhoz. Itt szinte ugyanez a helyzet. A dokumentumban tükrözni kell a végrehajtandó lépéseket a projekt indításához.
A termék indítására a tesztkörnyezetben általában a következő lépések vonatkoznak:
- a repository klónozása, váltás egy ágra vagy címkére
- valamilyen konfigurációs fájl elkészítése
- az adatbázis struktúrájának előkészítése
- tesztadatokkal való feltöltése
- a projekt buildelése vagy fordítása,
- konszolskriptek futtatása meghatározott sorrendben
A helyi rendszer indítása során elkerülhetetlenül előfordulnak váratlan problémák.
A talált problémák megoldásait hozzá kell írni a telepítési útmutatóhoz. Így legközelebb, amikor követed az útmutatót, ezek a problémák már nem fognak felmerülni. A konfigurációs fájlok kitöltésekor és a skriptek hívásakor figyelni kell arra, hogy milyen értékek hol használatosak, és azok mivel kell, hogy egybeessenek. Például ha a projekt CI rendszerrel készült, majd skripttel van indítva, fontos megérteni, hogy hova kell írni az ágat vagy a commit azonosítóját. Előfordulhat, hogy a skriptek megkövetelik a IP address vagy a DNS névét az adatbázis, a bejelentkezési név és a jelszó esetében. Ilyen esetben tudnod kell, hogy pontosan melyik címet használhatod a tesztkörnyezethez, milyen bejelentkezések vannak ott, és milyen jelszavakat kell megadni hozzájuk.
Egyes feladatok könnyűnek tűnhetnek a tapasztalt fejlesztők számára, és nehézségek elé állíthatják a gyakornokokat. Ez normális jelenség.
A fejlesztőknek naponta technikai problémákat kell megoldaniuk. A tapasztalt kollégák sok problémát már korábban megoldottak, míg az újoncoknak még csak most kell szembenézniük ezekkel. A legjobb taktika az összes felmerült hiba feljegyzése a "problémamegoldás ${feladat neve}" dokumentumba. Minden probléma esetén meg kell fogalmazni a hiba okára vonatkozó hipotézist, keresni az interneten a megoldási lehetőségeket, és ezeket sorban kipróbálni. Minden kísérlet eredményét is rögzíteni kell.
A kutatásaik dokumentummá alakítása lehetővé teszi:
- a fejben lévő apró részletek kiürítését. Például a konfigurációs paraméterek, DNS/IP címek, konzol parancsok és SQL lekérdezések.
- emlékezni, hogy "mit is csináltam tegnap" amikor a feladat több napra elnyúlik
- nem keringenek körbe-körbe. Mindig elolvashatják, hogy mit csináltak korábban, és megérthetik, hogy visszatértek az eredeti problémához
- érthetően válaszolni a kérdésre: "mit csináltál ma?" még akkor is, ha azonnali megoldás még nincs.
Azt kell tudnod, hogy a feladataid állapotát hogyan tedd világossá a kollégáidnak.
Időről időre a kollégák érdeklődni fognak a sikereidről és megosztják a sajátjaikat. Erre minden nap vagy hetente szánj egy kis időt.
Ha nem követeled a felmerült és megoldott problémákat, akkor a sikereid leírása így fog kinézni: "Megpróbáltam megcsinálni a feladatot, de nem sikerült. Jelenleg keresem a megoldást." Ebből a beszámolóból nem derül ki, hogy a gyakornok csinált-e valamit, vagy csak ült és olvasott a híroldalon. Szüksége van segítségre? Megváltozott-e a helyzet tegnap óta?
Ha dokumentálod a megoldáskeresést, akkor elmondhatod: "próbálom megcsinálni ezt a feladatot. Ilyen hibáim voltak. Ezeket így oldottam meg. Ezzel még nem boldogultam. Itt vannak ilyen hipotézisek és megoldások. Jelenleg ezeket ellenőrzöm."
Ha a feladat valamennyire mérhető, akkor az állapotban számadatoknak kell szerepelniük. Például a "egység tesztek írása a modulhoz" feladat esetén elmondhatod: "tervezem, hogy 20 tesztet csinálok, jelenleg 10-et írtam."
Minél részletesebb információt adsz, annál jobban megértik a kollégáid, hogy mit csináltál. Ez pozitív véleményt formál róluk, és lehetővé teszi számukra, hogy megértsék, szükséged van-e segítségre vagy sem.
Ne félj segítséget kérni.
Korábban írtam, hogy ha probléma merül fel, formuláznod kell a hiba okaira vonatkozó hipotézist és a megoldási lehetőségeket. Azonban előfordulhat, hogy a hipotézisek nem bizonyulnak helyesnek, és az önállóan talált megoldások sem működnek. Ilyen esetben érdemes segítséget kérni. Hogy elkerüld a kollégák figyelmének túlzott igénybevételét, érdemes először egyedül foglalkozni a problémával. Ha pár órán belül nem találod meg a megoldást, ideje tapasztaltabb kollégák tanácsát kérni.
A legjobban úgy érdemes kezdeni, hogy megkérdezed: „Valaki már találkozott ezzel a problémával korábban?”, egy rövid probléma leírással. Jó, ha mellékeled a hibaüzenet egy részletét vagy egy képernyőképet. Ezt az üzenetet érdemes először egy közös munkahelyi beszélgetőcsoportnak elküldeni. Így nem vonod el a figyelmet azoktól, akik tényleg elfoglaltak. A szabad kollégák ezen a módon meglátják az üzenetedet, és tudnak segíteni.
Ha a közös csoportban senki sem segített, próbálj meg elkapni egy tapasztalt kollégát a szünetben: ebédnél, a tea/kávé beszerzésekor, egy tenisz játszmánál vagy egy cigarettás szünetben. Ha ilyen nem sikerül, jelezd a nehézségeidet a hétindítón vagy a napi értekezleten.
Ismert problémák megoldásakor ennél többre nem is szükséges. Ha azonban a probléma új, akkor nyomozás következik, ahol a körülményeknek megfelelően kell cselekedni.
A kezdőkhöz tartozó "fontos" feladatok, amelyek a végfelhasználónak szükségesek, unalmasak és kicsik lesznek. Például „hozzáadni egy új oszlopot a jelentéshez” vagy „kijavítani egy gépelési hibát a nyomtatott formán” vagy „megvalósítani a modell módszert az ügyfél attribútumainak betöltéséhez az adatbázisból”. Az ilyen feladatok célja, hogy a kezdő megismerkedjen a szakterülettel és beilleszkedjen a napi munkába.
Fontos nemcsak technikailag megoldani a feladatot, hanem bővíteni a szakterületi tudást is.
A feladatleírásban, csevegésekben és beszélgetésekben előfordulhatnak kifejezések. Ezek régóta ismert főneveknek tűnhetnek. Azonban az információs rendszer keretein belül különleges, pontosabb jelentéssel bírnak. A felfedezett kifejezések jelentését a legjobban egy speciális dokumentumban — szótárban — érdemes rögzíteni. A szótárba való bekerüléskor elegendő a kifejezés megértését leírni, míg a pontos magyarázat érdekében érdemes az elemzőhez fordulni. Ha ő nem áll rendelkezésre, akkor a projekt régi tagjaitól érdemes informálódni. A szótár vezetése az egyik legegyszerűbb módja annak, hogy a projekt szakterületéhez közelebb kerüljünk.
Amint megtalálja a közös nyelvet a kollégákkal, ők már nem kezdő gyakornokként, hanem egyenrangú szakemberként tekintenek Önre.
Vannak különleges feladatok, például "egységtesztek írása egy modulra". Ezt nem könnyű sokáig halogatni a megoldások keresésével. Ez viszont egy komoly feladat, amely nemcsak a gyakornok tanulmányait szolgálja. Az elkészített tesztek növelik a projekt stabilitását az alkalmazás hibáinak csökkentésével és a kézi tesztelés időtartamának csökkentésével. Az ideális világban az egységteszteket azonnal a fejlesztés során írják, de a valóság mindig más. Előfordulhat, hogy a modul fejlesztője teljes mértékben fejében tartja azt, és nem látja szükségét a tesztelésnek. "Minden nyilvánvaló, hogy itt mit kell tesztelni?" Néha a modulokat sűrített munkatempóban írják, és nem marad idő az egységtesztekre. Tehát a valóságban nem biztos, hogy vannak egységtesztek. Ezért a gyakornokra bízzák az egységtesztek írását. Így a gyakornok gyorsabban megismerkedhet a projekttel, a projekt pedig időt takaríthat meg a magasabb díjazású szakemberek számára.
Előfordul, hogy a gyakornokokat és új munkatársakat teljes értékű tesztelők szerepével bízzák meg. Általában előbb ki kell terjeszteni a terméket helyben, és el kell olvasni a követelményeket. Az új munkavállalótól a következőket várják:
- kérdéseket, például: „ha így csinálom, akkor úgy lesz. A követelményekben ez nincs benne. Hogyan kellene lennie?”
- feladatokat a hiba-nyilvántartóban: „a követelmények szerint így van írva, a valóságban pedig ez más.”
A tesztelés túl széles terület ezen írás szempontjából. Ha ilyen feladatot adtak, keressen az interneten, hogyan lehet a legjobban elvégezni.
Ha hibázik — elbocsátják
Egy normális szervezetben, ha hirtelen előfordul, hogy egy tapasztalatlan munkatárs hozzáférést kap valami kritikushoz, és valamit elront, akkor az lesz a felelős, aki ezt lehetővé tette. Mert az újonc alapértelmezés szerint nem kap hozzáférést a kritikus infrastruktúrához. Megfelelő irányítással nem a tapasztalatlan gyakornokon fogják letölteni a dühöt.
Ha véletlenül történik valami, akkor nem fognak kirúgni egyetlen incidens miatt. Az emberek a hibákból tanulnak. A hibázó gyakornok értékes leckét kapott, és ezzel jelentősen különbözik a többi gyakornoktól. Ha kirúgják a hibázót, akkor a helyére jön egy másik, és ugyanolyan hibákat fog elkövetni.
A legfontosabb, hogy tanuljunk a hibákból, és ne ismételjük meg őket.
Ha pedig az illető nem von le következtetéseket a hibáiból, akkor próbálnak meg elköszönni tőle. Azonban a világ sokszínű. Egy bűnszervezetben az első hiba után rögtön az ablakon kidobhatnak. De jobb, ha elkerüljük az ilyen cégeket, ezért előzetesen érdemes utánajárni, vagy többet megtudni a munkinterjún.
Az incidenseket jobb elkerülni.
Még ha téged személyesen nem is rúgnak ki a hibád miatt, egy ilyen esemény kellemetlen problémákat okozhat a csapatodnak és a projektnek összességében. Ezért légy különösen óvatos az adatok törlése vagy táblák létrehozása során az adatbázisban, állományokkal, szolgáltatások példányaival és projekt tudásbázis dokumentumaival. Ha új csatlakozási címmel találkozol, legalább két különböző embertől kérdezd meg, hogy ott mit lehet csinálni. Ellenőrizd a jogaidat a környezetekben nem próbálgatással, hanem megfelelő parancsokkal. Például a fájlok törlésére vonatkozó jogosultságok a `ls` parancs segítségével, a mysql táblákkal való munkához a `SHOW GRANTS FOR ‘user’@’host’;` parancs használatával és hasonlók. Gyakorlatilag bármelyik eszközben lesz hasonló lehetőséged.
Fájlok szerkesztésekor, minden esetre, tarts meg egy másolatot az eredetiről.
A gyakornok és a végső fogyasztó között több akadályt állítanak fel.
Ha azonnal át tudnád adni a termékedet a fogyasztónak, nem kellene munkát keresned, hanem „szabadon evezhetnél”. De míg erre nincs lehetőséged (és ezzel együtt felelősséged sem), több ellenőrzési szakaszon kell áthaladnod a projekten.
Az első lépés a mentor általi ellenőrzés. Ő értékeli a kezdő technikai megoldását. Ha nincs kijelölt mentor, akkor meg kell találni egyet. Ehhez ki kell választani valakit a projekt régi tagjai közül, és a szünetben megkérni, hogy nézze meg a megoldást: helyesen lett-e megoldva a feladat? Ha elkezd nézni és válaszolni, akkor megtaláltuk a mentort. Ha figyelmen kívül hagy, akkor érdemes mást is megkérdezni.
A következő szakasz a Quality Assurance. Magyarul: tesztelők. Szovjetül: normakontroll és OTK. Biztosítaniuk kell, hogy a gyakornok munkájának eredménye megfelel az elvárt feladatnak. Ritkán néznek bele a kódba. Legtöbbször a tesztelők a verziókezelő rendszerben tárolt elkészült projektet ellenőrzik.
A harmadik szakasz a kiadási menedzser. Lehet, hogy erre a feladatra nincs külön személy, de valaki mégis betölti ezt a szerepet. Ellenőrzi, hogy a tesztelők megerősítették, hogy a projekt kiadható. Ezt követően elvégzi a termék végfelhasználókhoz való eljuttatásához szükséges lépéseket.
Kis szervezetekben ezek a korlátok különböző okok miatt hiányozhatnak. Azonban nem fognak a kezdőknek olyan feladatokat adni, amelyek valami fontosat érintenek. Mert ez a kockázat senkinek sem szükséges.
Először be kell ugrani a harcba, aztán majd meglátjuk.
Napóleon Bonaparte
Remélem, hogy a cikk segít legyőzni a bizonytalanságodat és elküldeni az első önéletrajzodat. Természetesen először fel kell készülnöd. De nem szabad túlzásba vinni. Valószínűleg már több éve tanulsz az egyetemen vagy főiskolán. Hova tovább? Végül is, jobb egyszer hallani egy "nem"-et egy szakembertől, és javítani a hibákat, mint minden nap magadnak mondani "nem"-et, és megállni a szakmai fejlődésben.
Munkába állás után a figyelmedet arra kell összpontosítanod, hogy a gyakornokból teljes értékű csapattaggá válj. Az ilyen növekedés általában a bérödön növekedésével jár.
Türelmet és kitartást kívánok.
Csak a regisztrált felhasználók vehetnek részt a szavazáson. , kérem.
Milyenek voltak az első feladataid az első IT munkahelyeden?
Bonyolultak
Fontosak
Sürgősek
Egyik sem a fentiek közül
75 felhasználó szavazott. 20 felhasználó tartózkodott.
Körülbelül mit kellett csinálni az elején az első munkahelyeden?
Terméket helyben telepíteni
A meglévő terméket tesztelni
Fiktív, tanulmányi feladatot végrehajtani
Kísérleti, valódi projektet végezni ügyfél számára
63 felhasználó szavazott. 25 felhasználó tartózkodott.
Hány hallgató tudott önállóan megoldani a műszaki tantárgyak feladatait a csoportjában?
1 a 10-ből
1 az 5-ből
Minden második
Mindenki, kivételes esetektől eltekintve
70 felhasználó szavazott. 19 felhasználó tartózkodott.
Forrás: habr.com
