Tiz jel, hogy nem lesz belőled sikeres programozó

Tíz jel, hogy soha nem lesz belőled sikeres programozó

Megjegyzés: A Tíz jel, hogy nem lesz belőled sikeres programozó című cikk a Jonathan Bluks-tól a 10  Signs You Will Suck at Programming Medium blogbejegyzés fordítása a szerző engedélyével. Az eredeti változatot itt olvashatod. Azért választottuk Jonathan cikkét, hogy lásd, amit a Programozás Karrier oldalon képviselünk, talán csak Magyarországon egyedi. Jonathan véleménye nagyon hasonló Róbert és Zsolt megközelítéséhez, mert hisszük, az üzleti érdekből való túlzott szűrés nem a tanulók érdeke.

Bevezetés: hogyan lehet belőlem sikeres programozó?

„Hogyan lehet belőlem sikeres programozó?” – Gyakran látok Reddit- és Quora-kérdéseket ebben a témában. Ez a cikk is egy ilyen kérdésre adott válaszom kibővített változata. Amikor valaki karrierváltáson töri a fejét és felkelti az érdeklődését a szoftverfejlesztés, elkerülhetetlen, hogy megkérdőjelezze, hogy sikeres programozó válhat-e belőle.

Kezdeti akadályként merül fel sokak számára a formális számítástechnikai tréning teljes hiánya. Hiszen aki nem jó programozásban, az nehezen veszi rá magát a kezdeti lépésekre anélkül, hogy tudná, hogy sikeres programozó lesz-e. A leendő színészeknek is elkerülhetetlenül felmerül a kérdés, hogy vajon jó színészek lesznek-e.

Full Stack webfejlesztést oktatok, így sok kezdő programozót tanítottam. A jó hírem az, hogy nagyon kevés tanulóval találkoztam, akinek meghaladta a képességeit a programozás elsajátítása. A programozás alapvető képesség, pont mint az olvasás, írás, és az aritmetikai számítások. Bárki lehet sikeres programozó emberfeletti képességek nélkül. Tanulás viszont mindenképp szükséges hozzá.

Mint oktató, az utóbbi két évben láttam, ahogy különböző tanulók nehézségeken mentek át. Ezeknek a nehézségeknek az okait csoportosítottam. Most végigmegyünk ezeken a nehézségeken. Ha ezeket felfedezed magadban, akkor garantálom, hogy szívni fogsz a programozással, és jobban jársz, ha az idődet másba fekteted. Ha viszont elköteleződsz a programozás megtanulása iránt, akkor könnyedén megbírkózhatsz ezekkel a kihívásokkal.

A programozás pont olyan alapvető emberi képesség, mint az olvasás vagy az alapvető matematikai műveletek. Bárki megtanulhat programozni, csak idő és erőfeszítés kell hozzá.

A következő listából kiderül, hogy sokat fogsz-e szívni a programozás tanulásával. Emellett tanácsokat kapsz arra, hogy mit tehetsz, ha változtatni szeretnél a helyzeten.

1. Érdeklődés hiánya

Ha nem érdekel a programozás, nem lesz belőled sikeres programozó.

Ha nem érdekelnek a számítógépek és a működésük, akkor nem lesz belőled sikeres programozó.

A tanulás alapvető feltétele, hogy aktívan érdekeljen a téma. Ha nem érdeklődsz a technológia iránt, akkor nem lesz energiád arra, hogy sikeres programozó váljon belőled: túl sokmindent kell megtanulnod és túlzottan elmélyült tudásra van szükséged hozzá.

A technológia világa olyan, mint egy hatalmas óceán különböző tématerületekkel. Ezeket a területeket ötletekkel és lehetőségekkel köthetjük össze. Ezek a kötődések a képzelőerőnket ingerlik. Belső motivációra van szükségünk ahhoz, hogy fejest ugorjunk ebbe az óceánba és felfedezzük amit csak tudunk.

Találd meg, hogy mi érdekel téged: kérdezd meg magadtól, hogy tényleg érdekel-e a programozás. Ha őszintén azt válaszolod, hogy nem, keress valami mást. Valamit, ami valóban érdekel. Spórold meg magadnak az időt és energiát. Ha viszont a válaszod igen, akkor keress valamit, amit korábban nem vettél még észre. Az óceán nagyon mély, merészkedj egy kicsit mélyebbre.

2. Önállóság és leleményesség hiánya

Ha nem tudsz önállóan programozási problémákat megoldani, nem leszel sikeres programozó.

Ha nem fejleszted a problémamegoldó képességed, soha nem lesz belőled sikeres programozó.

Kétség sem fér hozzá, hogy egy sikeres programozó magabiztos és bízik a saját tanulási képességében. Ez a képesség az életedet általánosan is jobbá teszi, hiszen 18 év felett senki sem köteles neked tanítani semmit. Ez a valóság. Rajtad múlik, hogy megtalálod-e az információt és találsz-e segítséget ahhoz, hogy boldogulj az életedben.

Az önfejlesztésben van egy mágikus hely, ahol minden információt megtalálhatsz. Ez az információs szupersztráda, amelynek egyetlen hatalmas kapuja van: a Google. Az első leküzdendő akadály, hogy megtanuld használni a Google-t: ha információra van szükséged, csak be kell írnod a Google keresőbe.

Amellett, hogy tudsz keresni a Google-ben, érdemes megemlíteni, hogy minden programozási nyelvnek van dokumentációja és specifikációja. Ezek a leírások pontosan leírják, hogy hogyan működik a nyelv. A dokumentáció olyan, mint egy szótár. Ha valamit nem értesz, megnézed. A leggyorsabb és legmegbízhatóbb mód a programozói képességed fejlesztésére, hogy rendszeresen olvasod a dokumentációt. Minden tudás előtted van.

Használd az erőforrásaidat. Ismerd fel, hogy a válaszok rendelkezésedre állnak. Ha kérdésed van, vedd rá magad, hogy megkeresd a választ a Google-ben mielőtt valaki mást megkérdezel. Nézd meg a dokumentációt is. Spórolj mások idejével, miközben próbálkozol. Csak akkor kérdezz, ha minden más lehetőséget kimerítettél.

3. Állóképesség hiánya a problémamegoldásban

Az állóképesség hiánya a sikeres programozóvá válásban gátol, mert rendszeresen programozói feladatokat kell megoldanod.

Ha könnyen feladod egy probléma megoldását, nem lesz belőled sikeres programozó.

A programozás a problémamegoldáson alapul. Ezért is találták fel a számítógépeket! Ha elkezdesz egy programon dolgozni, rengeteg problémával fogsz találkozni! Amint megoldasz egy problémát, szinte mindig találkozol egy újabb problémával. Bár haladsz a célod felé, mindig egy újabb probléma irányába mész.

Amikor sok problémát látsz magad előtt, elbátortalanodhatsz. Ha úgy érzed, hogy a dolgoknak csak úgy „csak úgy működniük” kell, akkor el fog fogyni az energiád. A folytatáshoz kitartás kell. Csak így tudsz érzelmi hátszelet teremteni a haladáshoz. A te feladatod, hogy megértsd, miért nem működnek a dolgok úgy, ahogy kellene működniük.

Tapasztalatom szerint a csoportomban egy-két tanuló rendszeresen több problémába ütközik, mint mások. Gyakran ezek a problémák véletlenszerűen jönnek és eredetük homályos. Ilyenkor emlékeztetem a tanulót, hogy minél több problémát oldanak meg előre, annál mélyebb és alaposabb ismeretre tesznek szert. Ezáltal gyorsan növelik a magabiztosságukat is, mert sokkal több problémát oldanak meg, mint egy átlagos tanuló.

Türelemre mindenképp szükséged lesz

Türelemre mindenképp szükséged lesz. Hogy ezt elfogadd, fel kell ismerned, hogy a problémák valójában nem is problémák, hanem kihívások. Minden leküzdött kihívás mélyebb megértést ad. Ezáltal növeled az esélyeidet, hogy újabb kihívásokkal bírkózz meg, és a régi kihívásaidat is gyorsabban küzdöd le.

4. A sikerélmény hiánya egy probléma leküzdése után

A sikerélmény fontos része a programozóvá válásnak.

Ha nem tölt el elégedettséggel egy probléma megoldása, nem lesz belőled sikeres programozó.

Az előző pontban a kitartás hiányának veszélyére hívtuk fel a figyelmet. Itt arról van szó, hogy sikeresen leküzdesz egy akadályt, de a „jó érzések” hiánya miatt feladod. Miközben hibákat keresel a programodban, előbb-utóbb azt érzed, hogy egy mókuskereket hajtasz. Nem látod az erőfeszítéseid értelmét, így nem is fog érdekelni, hogy problémákat oldasz meg és haladsz.

Amikor leküzdesz egy kihívást, a szervezetedben dopamin szabadul fel. Ez hasonló érzés, mint amikor egy számítógépes játékban teljesítesz egy pályát, vagy amikor egy keresztrejtvényt vagy sudoku feladványt oldasz meg. Mindannyian tudjuk, hogy egy kihívás leküzdése jó érzéssel tölt el. Sokan erre győzelemként tekintenek. Ha elveszted ezt a képességed és nem érzed a győzelem ízét, vagy egyáltalán nem érdekelt az egész, akkor a programozás nem fog jó érzésekkel eltölteni téged. Ha a programozásra taposómalomként tekintesz, ahol az eredményt a lehető leggyorsabban meg akarod szerezni, akkor soha nem lesz belőled sikeres programozó.

Ünnepeld meg a sikereidet. Bármikor egy nehéz problémát oldasz meg, akármilyen kicsi akadályról is van szó, legyél büszke arra, hogy leküzdötted. Tarts szünetet, majd gratulálj magadnak a jól végzett munkához. Éld át a siker érzését és töltődj fel energiával ahhoz, hogy a következő kihívást meg tudd oldani.

5. Türelmetlenség a tanulásban és megértésben

Ha tanulás közben türelmetlen vagy és mindennek azonnal, erőfeszítés nélkül szeretnél a mesterévé válni, akkor nem lesz belőled sikeres programozó.

A képességeink korlátosak. Bár a világ többek között a számítástechnikának köszönhetően folyamatosan gyorsul, csak a képességeinknek megfelelő sebességgel tudunk haladni. Az agyunk egy adott sebességgel tud dolgozni, és az előéletünk, hiedelmeink, egészségünk és érzelmi állapotunk befolyásolja, hogy milyen sebességgel tudunk információt feldolgozni.

A technológia világa olyan, mint egy óceán. Soha nem fogod elérni azt a pontot, amikor már mindennek a mestere vagy és semmit sem kell tanulnod. Ha túlterheled magad, nyomást fogsz magadon érezni, hogy ledolgozd a hátrányodat. Mindig azt fogod érezni, hogy nem tudsz eleget. Ha nem tudod elfogadni, hogy a tudásod korlátos, és nem tudsz hozzá még egy kicsit tanulni, nem fogod érezni a haladást. Haladás hiányában pedig feladod.

Ehelyett élvezd az utat, amelyet tanulás közben bejársz. Társíts jó érzéseket minden megszerzett képességhez és tudáshoz, legyenek azok akármilyen kicsik. Pont mint a problémamegoldásnál, itt is szükséges, hogy büszkeséggel töltsön el a haladás. Vedd észre, hogy lépéseket teszel meg, akkor is, ha ezek a lépések aprónak tűnnek.

Értékeld, hogy haladsz. Sok tanulnivalód van, hiszen a programozóvá válás útját soha nem fogod befejezni. Az út során a tudásod halmozódik, így töltsön el büszkeséggel, hogy újabbnál újabb képességeket sajátítasz el. Bízz az erőfeszítéseidben, amelyek biztos alapokra helyezik a tudásodat, akármilyen karrierpályát választasz.

6. Fáraszt és untat a gondolkodás

Ha a fókuszált munkára robotolásként tekintesz és a gondolkodás helyett a lustaságot választod, soha nem lesz belőled igazán sikeres programozó.

A programozás gondolkodással jár. Az emberi agy nem túl jó a gondolkodásban. Hiába gondolkodunk majdnem egész nap, a gondolkodásunkat alapvetően a lustaság vezérli. Egy problémára irányuló fókuszált erőfeszítés nehéz, főleg ha nem vagy hozzászokva, hogy huzamosabb ideig egy feladatra koncentrálj.

Ennek a lustaságnak több tünete van: üres tekintettel bámulni a képernyőre, homályosan gondolkodni, halogatni a problémák megoldását, a böngésződ fülei között váltogatni, és elkeseredetten keresgélni a StackOverflow tudásbázisában. Ezek a jelek mutatják, hogy egy mentális korlátba ütköztél. A korlátokat pedig le kell küzdeni.

Programozás közben elfáradsz a gondolkodásban. A gondolkodás energiát fogyaszt pont úgy, mint a testedzés. Amikor nem vagy hozzászokva a szükséges mentális energia felhasználásához, nehéz lesz fókuszáltnak maradni. Szerencsére a mentális energia pont olyan mint a testedzés: minél többet mész edzőterembe, annál erősebbé válsz.

Az elméd olyan, mint egy izom. Bízz benne! Ahogy használod, egyre hatékonyabbá válik a gondolkodásban. Ahogy megfejtesz egy feladványt és új mentális modelleket fejlesztesz ki, egyre könnyebb lesz megoldásokat felfedezned.

7. Nincs saját gondolatmeneted

Ha papagájként utánzod mások gondolatmenetét, nem lesz belőled sikeres programozó.

Ha elvárod másoktól, hogy helyetted gondolkozzanak, és nem vagy hajlandó a saját helyzetedre vonatkoztatni az információkat, soha nem lesz belőled igazán sikeres programozó.

Amikor új dolgokat tanulsz, könnyű úgy érezni, hogy nincs meg a tudásod és tapasztalatod ahhoz, hogy saját véleményed lehet. Ezáltal nem fogsz kezdeményezni, hiszen hibás dolgokat mondani kockázatos. A hibázáshoz mindannyiunkban félelem társul. Ha a hibázás félelme akadályozza a kiváncsiságod és ezáltal nehezebben fedezel fel új dolgokat, a tudásod lassabban fog fejlődni. A valódi tudás ugyanis tapasztalat útján áll össze, ehhez pedig hibákat kell elkövetned. Ha egy guru, népszerű blogger, vagy egy népszerű programozási könyv véleményét kell ész nélkül követned, akkor hiányzik belőled a működőképes, integrált programozási tudás.

Saját véleményt kell kialakítanod arról, hogy mi működik és mi nem. Meg kell értened, hogy miért működnek a megoldásaid. Meg kell értened, hogy a különböző megoldásoknak milyen előnyei vannak. Az nem egyértelmű összefüggéseket is meg kell látnod a megfelelő perspektívából. Alá kell tudnod támasztani a nézőpontodat, és ha a véleményed megváltozik, korábban nem látható összefüggéseket fogsz felfedezni.

Az önálló gondolatok fontossága: tapasztalat és kritikus gondolkodás segítségével fejleszd ki a saját nézőpontodat. Időnként találgass, támaszd alá a pozíciódat, és változtasd meg a véleményed amint új információt szerzel.

8. Merev gondolkodás, szűk látókör, szétszórtság

Ha merev a gondolkodásod és nehézséged okoz a programkódod rendezettségére felügyelned, beleértve a programkód írásához szükséges gondolataidat is, akkor soha nem lesz belőled igazán sikeres programozó.

Két ellentétes gondolkodásmódot figyelek meg több tanulómnál. Az első a merev, szűk látókörü gondolkodás. Ez a hozzáállás visszautasítja a segítséget, és a visszajelzés ellenére sem változtat. A szűk látókörü gondolkodásmód csak egy perspektívából lát dolgokat.

A második extrém gondolkodásmódot a rendszerezetlenség jellemzi. A szétszórt tanulók jellemzően túlbonyolítják a dolgokat, a programkódjuk rendezetlen és nehezen követhető. Sokszor száz sorban írják le azt, amihez tíz sor is elég lenne. 

Amikor ez a két tulajdonság egy személyben találkozik, egy merev hozzáállás jön létre. Ez a hozzáállás erőből (angolul: brute force) igyekszik megoldani a problémákat. Következménye az egymásra rétegződött fixek és a hackelés. Valójában csak arra lenne szükség, hogy átnézzük a megoldást, újraértékeljük azt, adjuk fel az eredeti módszerünket, és rendezzük át a megoldást. 

Amikor nem látjuk meg a lehetőségeket, vagy nem fogadjuk meg a másoktol érkezett tanácsokat, valójában a saját fejlődésünket akadályozzuk. A rendezetlenség lassít és vakká is tesz: nehezebben veszed észre a valójában egyértelmű mintákat. Ezáltal a munkád minősége is jelentősen csökken.

Önvizsgálat: lépj vissza egyet és vizsgáld meg a nagy képet. Milyen a hozzáállásod? Meg tudod valahogy könnyíteni az életedet? Milyen segítség hiányzik neked? 

9. Az „igaz” válasz kutatása a „jó” és „rossz” közötti spektrum felismerése helyett

A programozásban legtöbbször a legjobb válasz az attól függ.

Ha úgy gondolod, hogy a programozás az egyetlen helyes megoldás megtalálásáról szól a különböző lehetséges megoldások összehasonlítása helyett, akkor soha nem lesz belőled igazán sikeres programozó.

Amikor elkezdesz programozást tanulni, a tanulóid gyakran szeretnék tudni, hogy helyes úton járnak-e. A válasz szinte mindig „attól függ”. 

A számítástechnika a kompromisszumok kiértékelésének tudománya. Különböző feltételek mellett ki kell választanod a helyesebb utat. Minden a körülményeken és a célokon múlik. Amikor a programozást egy tesztként éled meg, amelynek eredménye egy helyes vagy hibás válasz, akkor a látóköröd beszűkül, és feladod a kreativitásod. Bármilyen válasz lehet „helyes”, ha meg tudod indokolni a körülményeket. 

A valóságban a programozás hasonlít a versek és rövid történetek írásához. Amikor hosszú programot írsz, akkor a novellaírást is használhatod. Amikor szépérzékkel tekintesz a kódra, ezt sokszor csak kevés programozó veszi észre. A megoldásod választásának okai fontosabbak, mint a „helyes” vagy „hibás” út kiválasztása. A művészi hozzáállás lehetőségeket ad számodra ahelyett, hogy az egyetlen helyes megoldást kutatnád. Ez a szép a programozásban: bár sokféleképp lehet feladatokat megoldani, a különböző megoldások összehasonlítása megadja, hogy az adott helyzetben melyik megoldás tűnik helyesnek.

Legyél kreatív: vedd észre, amikor egy problémát sokféleképp meg lehet oldani. Ahogy tapasztalatot szerzel, idővel ki fogsz fejleszteni egy érzéket, amely irányítja a választásaidat. Amikor az összképet nézed és különböző lehetőségeket vizsgálsz, a kifejlesztett programozói érzékedben bízva jobb megoldásokat tudsz készíteni.

10. A részletek figyelmen kívül hagyása

A sikeres programozók észreveszik a részleteket.

Ha átsiklasz apróságnak tűnő fontos részletek felett, soha nem lesz belőled sikeres programozó.

A számítógépek precíz szerkezetek. Programozás közben neked is precíznek kell lenned és az utasításaidat a számítógép elvárásainak megfelelően kell leírnod. Ha ezt nem teszed meg, semmi sem fog működni. A köztes út nem járható. A dolgok nem működhetnek csak úgy nagyjából. A programkódod vagy működik, vagy nem.

Programozás közben fontos, hogy észrevedd a részleteket. Minden szóköz, zárójel, pontosvessző számít. Amikor rossz helyre teszed őket, a kódod nem fog működni. Miután a számítógép visszaköp egy hibaüzenetet, meg kell tudnod állapítani abból az üzenetből, hogy pontosan mit is mond. Ha ezeket a részleteket nem veszed észre, egy egyszerű elgépelési hiba megkeresése is órákat vehet igénybe.

Ahogy a mondás tartja, az ördög a részletekben bújik meg. A programozásra ez a mondás egyértelműen igaz. 

Figyelj a részletekre: a részletek fontosak, ezt el kell fogadnod. Ha elfogadod, szokássá válik, hogy a programkódban oda nem illő részleteket fogsz keresni. Könnyebben tudod rendezni a kódodat, és olyan eszközöket tudsz majd használni, amelyek segítenek gyorsan feltárni a problémákat.

Bónusz: a sikeres programozó üzleti érzéke

Egy mellékes észrevételt tettem, amikor üzleti érzékkel megáldott tanulókat figyeltem. A jó üzleti érzékkel megáldott tanulók gyakran az eredményre koncentráltak a folyamat helyett. Egy „működőképes alkalmazást” akarnak létrehozni, amely előremozdítja az üzleti ötletüket. Elsőnek akarnak piacra lépni, és a tanulási folyamatra úgy tekintenek, mint egy leküzdendő akadályra, amely szükséges az üzletük beindításához.

Több tanulónak nagyon nehéz volt segítenem, hogy jó programozóvá váljanak. Amikor elgondolkodtam, hogy ez miért történik, a programozóvá válás folyamatával szemben tanúsított türelmetlenségük tűnt fel nekem, mint egyes számú akadály. A türelmetlenség akadályozza a tanulást, és ezáltal a tanuló nem érti a technológiát. A technológia számukra csak egy eszköz, és nem egy élvezettel feltárható tudományág. 

Az üzleti érzékkel még magasabb szinten megáldott tanulóknál előfordult, hogy miközben nehézséget okozott nekik a tanulás, gyakran szabadúszóként ügyfeleket szereztek maguknak. Mindezt anélkül, hogy rendelkeznének a probléma megoldásához szükséges alapvető képességekkel. Kapkodva keresgélnek sablonokat és más használható erőforrásokat, hogy egy működőképes projektet adjanak az ügyfelüknek. Az is előfordult, hogy mással csináltatták meg a munkát. Programozóként nagyon rossz teljesítményt nyújtottak, de kiváló érzékkel rendelkeztek, hogy fizető ügyfeleket találjanak maguknak. 

Akik üzletet szeretnének építeni és kiváló értékesítők, kapcsolatépítők, vagy üzletépítők, gyakran többet szenvednek a programozás tanulásával, mint mások. A velük született vágy, hogy üzleti lehetőségeket teremtsenek maguknak, és megoldják az ügyfeleik problémáit, gyakran türelmetlenné teszi őket a programozással kapcsolatos részletek megismerésében.

Te is lehetsz sikeres programozó

Noha a programozást nehéz lehet megtanulni, a legtöbben mégis képesek erre. A fenti lista az utadban álló hozzáállásokat veszi sorra, amelyek leküzdhetők, amint a programozásban jártasságot szerzel. A jártasságot pedig akár mesteri szintre is fejlesztheted. 

Ha érdekel téged a programozás, csak bíztatni tudlak, hogy kezdd el. Ne feledd a fenti listát, és minél több anyagot tanulmányozz online, amelyek segítségével felgyorsíthatod a haladásod. Nem fogod megbánni!

Jogi nyilatkozat: A fenti írás kizárólag a szerző szakmai véleményét tükrözi mint oktató és webfejlesztő. 

Programozás Karrier nyilatkozat: Sok egyezés van a szerző véleménye és az általunk képviselt irány között. Ezért ezt a véleményt a fordítás adta korlátozott művészi szabadság keretei között a tőlünk telhető legnagyobb hitelesség mellett adtuk át. A vélemény eredeti változatát itt olvashatod.

Scroll to Top