Ebből a cikkből megtudhatod, melyek azok a hibák, amelyeket nem érdemes elkövetni kezdő programozóként. Továbbá, melyek azok a helyzetek, amelyekbe óhatatlanul is belekerülsz majd. De nyugalom, a lentebb ismertetett fázisokon mindannyian átestünk, hiszen ezek olyan egyetemes jelenségek, amleyekkel mindenki találkozik a karrierje elején. A nagy titok abban rejlik, hogy tapasztalatnak tekinted ezeket a hibákat, vagy éppen nehézségeket és tudatosítod magadban, hogy ezekre mind szükséged van ahhoz, hogy tájékozott és sikeres programozóvá válj.
Az első, és egyben legtipikusabb hiba, amit kezdőként elkövethetsz, hogy nem jól választod meg a motivációdat. Ha elkezdesz egy video tananyagot, vagy belevágsz egy programozással kapcsolatos könyv olvasásába, ne az legyen a célod, hogy minél előbb a végére érj. Ha egy teljesítendő távnak fogod fel a tanulás ezen szakaszát, akkor a végén ott állsz majd a képzeletbeli célban felületes tudással, amit szépen lassan elfelejtesz. Idővel, amikor már ezer más dolgot tanultál, érezni fogod a hiányt, hogy nem stabil a tudásod. Így az új ismeretanyagok mellett hozzáfogsz az elfelejtett tudás felelevenítéséhez, vagy újra megtanulásához. Emellett az újdonságok is érdekelnek, ami nélkül már dolgozni sem érdemes, ezért azokat is megpróbálod elsajátítani. Az eredmény az lesz, hogy egy örvénylő spirálba kerülsz, mely a tanulás és a felejtés állapota között mozog.
A felületesség okozta felejtést a legegyszerűbben úgy kerülhetted el, ha tudatosan már az első lépés megtételétől kezdve specializációs szándékaid vannak. Rengeteg terület van a programozáson belül, amelyek érdekelhetnek, és látod bennük a jövődet. Célszerű már a tanulás elején meghatározni egy utat, s ezen haladva projekt alapú tanulással hozzáfogni a munkához. Hiszen azt a programnyelvet fogod igazán megérteni, amellyel dolgozol és feladatokat oldasz meg vele. Az így elkészített projektek kiváló referenciák lesznek a portfólió oldaladon.
Fontos megértened azt is, hogy a számos buktató, amely közöted és a sikeres programozói karriered között áll többnyire mentális eredetű. Az első és egyben legnagyobb nehézség, hogy nem hiszed el magadról, hogy képes vagy elsajátítani a vágyott tudást. Sokszor csak annyin múlik a sikeres kezdés, hogy egy egészséges önbizalommal vágsz neki az első sokszor legnehezebb lépésnek. De ha bizonytalan vagy a képességeidet illetően ez a cikk a segítségedre lehet. A kezdeti lelkesedés sokáig kitarthat, ha figyelsz önmagadra és tudatosítod magadban, hogy a tanulásban lesznek nehéz időszakok.
Lehetséges, hogy elkezded az egyik ingyenes tanfolyamunkat és a hetedik vagy nyolcadik rész után azt kezded érezni, hogy ezt te sohasem fogod megtanulni. Ez az állapot pont olyan, mint amikor stratégiai játékot játszol és körbenézel a játéktéren. A saját egységeidet jól látod, de a felfedezetlen területeken nem látsz mást, mint a „fog of war”-t, a háború ködét, amelyet csak új egységekkel és felfedezéssel tárhatsz fel. Az első komoly megtorpanás a tanulásban pont ilyen, tisztában vagy a képességeiddel a már elsajátított tudásoddal és megtorpansz a háború ködét látva. Ha belegondolsz, ez mind hit kérdése, ha elhiszed magadról, hogy ez neked „kínai” és sohasem fog menni, akkor valójában úgy is lesz. Az ilyen gondolatok helyett eredményesebb arra összpontosítani, hogy meg fogod oldani ezt a helyzetet, át fogsz jutni a „fog of war”-on. Fel fogod térképezni az ismeretlen területet, hiszen ott van az ellenség bázisa, a célod.
Kezdő programozóként az egyik legjelentősebb felismerésed az a tény, hogy nem tudsz mindent megtanulni. Számos programnyelv létezik. Szinte megszámlálhatatlan szakirányra és megannyi kisebb szegmensre osztható a szakma, ezt lehetetlen mind megismerni. Ettől függetlenül egyáltalán nem probléma, ha átfogó ismeretek elsajátítására törekedsz.
Tudatos döntést követve akár generalistává is képezheted magad. Az olyan szakembert nevezzük így, aki több terület szakszerű ismeretével is rendelkezik, s az így birtokolt tudást egy adott problémakör megoldása során használja fel.
Ezzel szemben mondhatod azt is, hogy specializálódsz egy kifejezett módszer vagy rendszer ismeretére. A specialista kiválóan ismeri egy, az általa választott területet. Természetesen ehhez szükség van az alapok szilárd ismeretére is. Az, azért is előnyös, hogy specializálódj egy bizonyos terület vagy akár rendszer irányában, mert a cégek javarészt olyan szakembereket keresnek, akik egy-egy terület jó ismerői.
A generalista és specialista irány hibrid verziója a T-Shaped Profiles – T-alakú profil. E szerint a modell szerint a megszerzett tudást egy T-betű két száraként ábrázoljuk. A vízszintes részen helyezkednek el a generalista ismeretei, a függőleges vonalon pedig a specializáció. A modell szerint lehetséges az az ideális állapot, amikor a generalista és specialista irány előnyei együtt jelennek meg. Tehát lehet úgy generalistává válni, hogy közben specializálódunk egy területen. Igaz ugyan, hogy a T-alakú profil esetén a specializáció nem olyan mély, de cserébe több tudást is össze tud kötni, így több helyen is be tud ugrani az ilyen ismeretekkel rendelkező szakember.
Beszélhetünk még az integrátorokról is. Ők olyan szakemberek, akik kettő vagy három specializációval rendelkeznek, mely nem épp a legmélyebb tudásból áll, de mesteri módon tudják más területek egy-egy elemét, ismeretét felhasználni a cél elérése érdekében. Egy ilyen szakember hatékony munkamódszerrel és megfelelő mentorálással igazi kincse lehet egy cégnek. Bármelyik típusba is helyezed majd el magadat a jövőben, a kulcs minden esetben a jó együttműködés . Az együttműködés képessége legalább olyan fontos, mint az alapos és biztos tudás.
Kezdő programozóként hamar találkozni fogsz egy folyamattal, amely szinte mindenkivel, minden esetben megtörténik és többször is megismétlődik majd életed során. Ez szakmánk egyik speciális velejárója.
Tegyük fel, hogy elkészítesz egy remek webes alkalmazást, de mégsem működik tökéletesen a felhasználó oldaláról. Később észreveszed, hogy nem készítettél login oldalt, így szegény megrendelőnek esélye sincs a belépésre és a rendszerben való munkára. Vagy éppenséggel lehet, hogy létezik az említett bejelentkező felület, de a jelszó titkosítása és tárolása nem megfelelő, így az alkalmazásod biztonsági szempontból sebezhető lesz. Ezek a hibák fakadhatnak abból, hogy rossz adatszerkezetet használsz, vagy éppen nem ismered az objektum orientált programozást.
Példánk esetében fontos megérteni, hogy ezek a hibák nem hanyagságból születnek, hanem hiányból. Egyszerűen nem vagy a birtokában a megfelelő ismereteknek. De a jó hír az, hogy ezeket a hibákat a legkönnyebb kijavítani. Egyszerűen meg kell tanulni, el kell sajátítani a megfelelő ismereteket. Miután megoldod az említett nehézségeket, azon kapod magad, hogy a megszerzett új ismereteidet beépíted mindenhova, még akkor is, ha igazából nincs rá szükséged.
Önmagában ez a folyamat nem lenne baj, csakhogy ez olyan, mint amikor ágyúval lövünk a verébre. Ez az a helyzet, amikor jól jön, és szükséges is, egy tapasztalt kolléga tanácsa. Az ő tanácsa ismét leegyszerűsíti azt a projektet, amin dolgozol. Nézd meg, és fogadd el azt az irányt, amit a tapasztaltabb kollégáktól kapsz. Alkalmazd az így megszerzett tudást, és a projekted az új elemekkel ismét letisztult lesz és egyszerű.
Ha jobban megnézed ez a folyamat játszódik le nagyban is a szoftverfejlesztés világában. A dolog minden esetben egy egyszerű megoldással kezdődik, amelyet aztán a technológiai felfedezés és a fejlődés túlbonyolít, majd jön egy paradigmaváltás és az addig oly bonyolult technológia bámulatos módon leegyszerűsödik. Vedd észre, hogy ez a jelenség a technológia és a szoftverfejlesztés világában folyamatosan ismétlődik. Egy szoftver új verziója mindig magával hozza az újítások lehetőségét és ezzel nincs is semmi probléma.
Összefoglalás
Fogadd el azt az öt tanácsot, amelyek biztosan segítségedre lesznek a szoftverfejlesztővé válás útján:
- Mindig projekt alapon tanulj, de rakd le a szükséges alapokat!
- A legtöbb akadály mentális! Koncentrálj arra, hogy képes vagy elérni a célodat.
- Egyszerűen indulj el! Ne hagyd, hogy elbizonytalanítson a „fog of war”!
- Specializálódj! Kezdő programozóként hamar kiderül mi is érdekel igazán, válasz irányt és haladj aszerint.
- Tudatosítsd magadban, hogy hol tartasz projektjeid és megoldásaid kivitelezésében. Ne habozz visszatérni az egyszerűhöz, ha a megoldásod túl bonyolulttá válik.