Címke: szoftevrfejlesztés

Hogyan legyél programozó?

Kell hozzá egyetem? Kell hozzá matek?

Napjainkban, a technológia fejlődésével, a piaci verseny folyamatos növekedésével egyre nagyobb kereslet mutatkozik a programozók, szoftverfejlesztők, vagy az IT valamely területén jártas szakemberekre. Ezt meglovagolva az újságok, híroldalak is ontják magukból a hangzatosnál hangzatosabb címekkel ellátott cikkeket, miszerint a szoftverfejlesztés korunk egyik “sztárszakmája”, nagy hiány van a munkaerőpiacon és gyorsan, könnyen el tudnak helyezkedni, akik otthon vannak az iparágban. Szándékosan fogalmazok így, hiszen különböző programozók különböző utat járnak be tudásuk megszerzéséhez, bővítéséhez és mint oly sok esetben, itt sem lehet egyértelműen elkülöníteni jó, illetve rossz választást. Inkább mérlegelni lehet a különböző irányok előnyeit és árnyoldalait.

Kérdés, hogy kezdőként mégis hogyan lehet elindulni ezen az úton, hiszen a szakmabeli ismerősök híreszteléseinek és a médiának köszönhetően egyre többen szeretnének az alapoktól belevágni, vagy éppen karriert váltani.
Legtöbbször az alábbi 2 kérdés szokott felmerülni azokban, akik épp el szeretnék kezdeni a tanulást.

  • Ha én is programozó szeretnék lenni, kell lennie egyetemi végzettségemnek?
  • Ha én is programozó szeretnék lenni, mennyire kell értenem a matekhoz?

Természetesen más szempontok alapján is lehetne vizsgálni az elindulás kérdését, de a cikk további részében ennek a 2 kérdésnek az elemzésével szeretnék átadni egy képet.

Szükséges-e a diploma?

Ez a kérdés sokszor azok között is vitát szokott szülni, akik már jó ideje a szakmában mozognak. Már csak az ember ösztönös viselkedéséből adódóan is hajlamosabb kizárólag azt az irányvonalat képviselni, amilyen cipőben saját maga is jár, még ha titkon el is fogadja, hogy vitapartnerének is lehetnek helyes gondolatai. Én nem vagyok híve az efféle szélsőséges gondolkodásmódnak. Megint csak ismételni tudom magam: több szempontból kell megvizsgálni a kérdést és a végén nem lesz egy globálisan elfogadott jó válasz, hanem mindkét helyzetben lesznek pozitív, illetve negatív tényezők. Ennek a cikknek az írásakor egyetemi hallgató vagyok, mégsem fogom azt állítani, hogy ez az egyetlen út.

Természetesen ezt, hogy vannak előnyök és hátrányok, szinte bármiről el lehet mondani, ebből valójában nem tudunk meg sokat. Ennek a feloldása az, hogy nem globálisan, hanem konkrét emberre vonatkoztatva már ki lehet jelenteni, hogy ezeket a pozitív és negatív elemeket mérlegelve egy A ember személyiségéhez, tanulási módjához jobban passzol a teljes önfejlesztés, még egy B személy jobban preferálja az egyetemi képzést. Persze, ezt mindenkinek magának kell eldöntenie. Az alábbi táblázatban összeszedtem a két út előnyeit, illetve hátrányait.

Teljes önfejlesztésEgyetemi képzés
Előny– Sok ingyenes anyag rendelkezésre áll, bármikor elérhető.
– Akkor foglalkozhatsz vele, mikor kedved van.
– Gyorsan szerezhetsz gyakorlati tudást, amivel már el tudsz helyezkedni.
– Mély ismereteket szerezhetsz a programozás hátteréről.
– Ad egy absztrakt gondolkodásmódot, egy
rendszert, melyben később könnyen el tudsz helyezni egy újonnan megtanulandó anyagot.
– Az álláskeresésnél előnyt jelenthet, ha van felsőfokú végzettséged.
Hátrány– A teljesítési kényszer hiánya akár azt is okozhatja, hogy elhanyagolod a tanulást.
– Nehezebb feldolgozni egy mélyebb alapokra épülő anyagot egyedül.
– Könnyebb otthagyni a felmerülő problémákat, amiket fontos lenne megoldani.
– Sok olyan tantárgyat kell teljesíteni, aminek akkor még nem látszik a közvetlen haszna.
– Kevésbé ad gyakorlati tudást, ha az egyetemet választod, ugyanúgy kell önmagad is fejleszteni mellette.
– Nehezebben tudod beosztani az idődet, akkor is foglalkozni kell vele, mikor nincs kedved.

Ez csak néhány, a lehetséges tényezők közül. Sokszor ebben a kérdésben azt a mögöttes tartalmat érzem, hogy meg lehet-e úszni az egyetemet. Szerintem ez rossz megközelítés. Ez nem a megúszásról szól, hiszen a másik úton is legalább annyi energiát kell belefektetni a fejlődésbe. Tehát nem így működik, hogy: “Ez az, kevesebbet kell tennem és ugyanoda jutok”. Önmagában az egyik oldal sem kevesebb vagy több: egy egyetemi diplomától önmagában még senki nem lesz jó programozó, illetve másfelől önfejlesztéssel is eljuthat oda az ember, hogy elismert lesz a szakmában és jól megél.

Ennél a pontnál ugyanakkor felmerül egy fontos tényező. Hangsúlyozom, hogy a megélhetés ugyan fontos dolog, de önmagában nem ad elegendő motivációt. Ha valaki azért szeretne programozó lenni, mert azt mondták neki, hogy abból jól meg tud élni, akkor hamar szenvedéssé válhat. Az élet más területeire is igaz, hogy a legnagyobb motiváció a lelkesedés. Aki tud lelkesedni egy téma iránt, az megállíthatatlan lesz az előrehaladásban. Szeretni fogja amit csinál és csak mellékesen örül neki, hogy abból akár még meg is tud élni. Rossz megközelítés, hogy amég nem érünk el egy kitűzött célt, büntetjük magunkat, hogy “jajj, de rossz, hogy nem tartok ott”. Akkor tudod, hogy jó úton jársz, ha van egy kitűzött célod és annak örülsz, ahogy kis lépésekben közelítesz felé.

Tehát, visszakanyarodva az eredeti témára: az egyetemre se úgy gondoljunk, amit végig kell szenvedni, hogy a végén kapjunk diplomát. Annak érdemes belevágni aki tud örülni a részsikereknek, annak, hogy folyamatosan újat tanul és közeledik a cél felé.

Hogyan derül ki akkor, hogy megvan-e a kellő lelkesedés?

A programozás esetében azt nagyon könnyű eldönteni, hogy valakiben benne van-e a szükséges motiváció. El kell kezdeni próbálgatni a legegyszerűbb programokkal és megvizsgálni, hogy milyen gondolatokat ébreszt. Sokan azért nem mernek belevágni, mert félnek a téma bonyolultságától, nem tudják hogy induljanak el. Tény és való, hogy a teljes iparág nagyon szerteágazó, de ahhoz, hogy valaki megírja az első egyszerű programját, kb. negyed óra tanulásra van szükség és egyetlen programfordítót kell letölteni hozzá. Erről az elindulásról készítettem egy videót, melyet számos folytatás követ.

Szóval, ha valakinek az az érzése az első pár program megírása után, hogy nem igazán tetszik neki, de csinálja, mert ebből lehet jól megélni, annak nem érdemes folytatnia, mert el fog bonyolódni annyira, hogy ha nem tetszik maga a téma, akkor kín lesz foglalkozni vele.
Ugyanakkor, akiben olyan érzés ébred, hogy szeretne is kattintani a következő videóra, mert kíváncsi, milyen programokat lehet még írni, az mindenképpen jó jel.

A legrosszabb amit látni szoktam, hogy bizonyos fórumokon kezdők mondanak valami nagyon komplex szoftvert, hogy ők ahhoz hasonlót szeretnének írni és valaki mondja meg nekik, hogy induljanak el. Az igazság az, hogy az elején nem ilyennel kell indulni. Ebből lesz az, hogy akkor el se kezdi a programozást, mert hát amit akar, annak tényleg szinte lehetetlen nekiállni kezdőként és értelmetlen is, mert rengeteg alapismeret hiányzik még. Bizony-bizony onnan érdemes indulni, hogy egy olyan programot készítünk, ami egy megadott szöveget kiír a képernyőre és akkor tudod, hogy neked való a programozás, ha utána a következő anyag megtanulása után tudsz érte lelkesedni, hogy már több sorba tördelve is ki tudod íratni és izgat, hogy mi jöhet még.

Persze ahhoz, hogy ezt elérjük még nem kell matematika, de utána mi a helyzet?

Mennyire kell jónak lenni matekból?

Elég sok ember teszi fel ezt a kérdést, vagy jegyzi meg aggódva, hogy nem megy neki a matek, így szerinte a programozás sem menne. Valójában nem kell ettől aggódni, a helyzet nem olyan súlyos, hogy minden programozónak tisztában kell lennie a felsőbb matematikai fogalmakkal. Ugyanakkor nem lehet kijelenteni, hogy semmilyen formában nincs szükség a matematikára. A programozáshoz szükséges egyik legfontosabb képesség a logikus gondolkodás. A logika is a matematika egy részterületét képezi és nem árt tisztában lenni pl. a logikai állításokat összekötő műveletek működésével, amiket egyébként a köznyelvben is használunk: nem, és, vagy.
Szintén jó ha ismerjük legalább a számok közötti alapműveleteket, relációkat, műveleti sorrendeket.

Persze ezek nem bonyolult dolgok és jó hír, hogy viszonylag alacsony matematikai ismeretekkel lehet találni olyan részterületet, ahol el lehet helyezkedni.

Ugyanakkor szeretném kiemelni, hogy még ha sokszor bonyolultnak is tűnik a matematika, valójában pont annak a segítségével alkothatunk egy egységes modellt, ami segítheti a megértést és látszólag különböző problémákban észrevegyük, hogy azonos matematikai modell építhető rá. Vannak persze olyan területei is a szoftverfejlesztésnek, ahol kemény matematikára van szükség. Fontos, hogy arra se úgy gondoljunk, hogy az ott dolgozók direkt nehezítik az életüket, hanem pont, hogy könnyítik, hogy egy mindannyiuk által ismert “nyelven” tudjanak beszélni a problémáról, és abban dolgozzák ki a megoldásokat.

Persze a felsőbb matematikai ismeretek megértéséhez már kell egy olyan beállítottság is. Akiknél ez megvan, nem tartják riasztónak, ha matematikát kell használni és megint csak oda jutunk, hogy nem kínszenvedéssel kell tanulni, hanem lehet élvezni az utat, ahogy egyre jobban el lehet helyezni egy rendszerben az ismereteket, vagy ötletet meríteni belőle, ha meg kell oldani egy problémát.

És itt jön be újra képbe az egyetem kérdése. Említettem, hogy az egyetem kevésbé fókuszál a gyakorlati dolgokra. Talán meglepő, de nem arról szól, hogy folyamatosan programozni tanít és egyre összetettebb szoftvereket kell írni a félévek előrehaladtával, vagy sokféle ipari technológiát megtanít. Az egyetem pont abban erős inkább, hogy ezt a matematikai, programozáselméleti absztrakt hátteret megadja, hogy utána kényelmesen mozoghassunk benne. Velem is volt már hasonló eset, hogy meg akartam oldani egy problémát, amikor beugrott, hogy ez hasonlít arra, amin az egyetemen is szó volt. Persze a feladat maga más volt, de ugyanaz a matematikai modell működött rá.

Röviden tehát: nem kell elriadni a programozástól erős matematikai ismeretek hiányában, de aki nem zárkózik el tőle, annak megvannak a lehetőségei, hogy olyan területtel foglalkozzon, ahol kellhet. Nekik szerintem az egyetem is tetszene.

Zárszó

A programozás tanulásának lehetősége tehát mindenki előtt nyitva áll. Függetlenül attól, hogy önmagát szeretné elsősorban fejleszteni, vagy egyetemre járna. Nem kell megijedni attól sem, ha nem megy a matek. Mint említettem a kezdéshez, az első program megírásához csak negyed órára van szükség, utána egyből kiderül, hogy tetszik-e. Kezdd el még ma a tanulást!