Kiből lehet jó programozó?

2015-07-07

Eddig a programozó – szoftverfejlesztő szakmát kifejezetten férfiasnak, a programozókat pedig kockáknak képzeltük el. Saját tanfolyami tapasztalataink is azt mutatják, hogy a férfiak meglehetősen felülreprezentáltak, legyen szó akár ...

Eddig a programozó – szoftverfejlesztő szakmát kifejezetten férfiasnak, a programozókat pedig kockáknak képzeltük el. Saját tanfolyami tapasztalataink is azt mutatják, hogy a férfiak meglehetősen felülreprezentáltak, legyen szó akár valamelyik programnyelvről, akár adatbázis-kezelésről, biztonságos üzemeltetésről, vagy webfejlesztésről.

Problemamegoldas

 

Az egyetlen kivételt talán a szoftvertesztelés jelenti, ahol bár nincsenek túlsúlyban, mégis magasabb a nők aránya, mint egyéb képzéseinken. Most azonban találtunk egy cikket, melynek szerzője Czapári Dórit faggatja arról, hogyan is lett szabad bölcsészből Python programozó.

A cikk alapján megpróbáltuk pontokba szedni, hogy mit gondolnak az emberek milyen egy programozó, illetve valójában mi szükséges ahhoz, hogy valakiből (nemétől függetlenül) jó programozó válhasson.


 

Rájöttünk, hogy némely sztereotípia igen egyszerúen megdönthető:

  1. Az emberek abból az eleve téves feltételezésből indulnak ki, hogy a programozás nehéz, és mint ilyen, csak kevesek privilégiuma lehet. Ezzel szemben a helyzet az, hogy a programozás érdekes, tele kihívásokkal, és akinek ez tetszik, az imádni fog programozni. Ha pedig szeretjük, amit csinálunk, akkor sokkal nagyobb eséllyel leszünk sikeresek a szakmánkban.
     
  2. Egy másik gyakori tévhit az, hogy egy programozónak feltétlenül jó matekosnak kell lennie. A programozáshoz, az algoritmus kidolgozásához adott probléma megoldására, kell ugyan egyfajta kritikai gondolkodásmód és logika, de ehhez nem szükséges matekzseninek lenni.
     
  3. Nem árt, ha az, aki programozással szeretné megkeresni a kenyerét, fejlett problémamegoldó képességgel rendelkezik. A programozás 100 %-ban problémamegoldás, ugyanis mindig egy adott problémával kezdődik. A fennálló probléma nélkül nem lenne szükség szoftverre sem. A programozó feladata, hogy meghatározza és megértse a problémát, majd hatékony megoldást dolgozzon ki. Nem számít, milyen programozási nyelvet vagy technológiát használ, ha a programozó nem tudja megoldani a problémákat, akkor nem lesz belőle jó szoftverfejlesztő.
     
  4. Mivel kevés gyorsabban változó terület van, mint a szoftverfejlesztés, ezért nagyon fontos, hogy aki programozónak áll, képes legyen az önképzésre, a folyamatos tanulásra. Nem lehet mindig mindenről mindent tudni! De rendelkezni kell azzal a képességgel, hogy a tudást a lehető leggyorsabban szerezhessük meg, amikor szükség van rá!
     
  5. Szintén elterjedt sztereotípia, hogy minden programozó befelé forduló, magának való ember. Nos, biztos igaz ez egyesekre, de aki igazán jó programozó szeretne lenni, annak muszáj tudnia bánni az emberekkel. Hiszen bárhová megyünk is, mindenhol emberek vannak, a munkahelyünkön is. Ezért hacsak nem egyedül dolgozunk, más emberek is befolyásolják munkánkat. Szoftverfejlesztőként hatékonyan kell tudni kezelni más fejlesztők, menedzserek, tesztelők, sőt még az ügyfelek igényeit is.
  6. A programozásban leginkább a részletek számítanak, ezért fontos programozói tulajdonság a  részletekre való odafigyelés képessége. A számítógép ugyanis meglehetősen "ostoba". A legapróbb részletekig pontosan „el kell magyarázni” neki mindent, nem bízhatunk abban, hogy néhány információból majd kikövetkezteti a többit. Ha a programnyelv azt írja elő, hogy változókat kell használni itt, kapcsos zárójelet ott, akkor ezt kell tennünk, és pont. Ha nem követjük az adott nyelv szabályait pontosan, és nem adunk a gépnek pontos, egyértelmú utasításokat, nem fog múködni a megírt kód.

  7. Fontos, hogy a szoftverfejlesztő jó memóriával is rendelkezzen, hiszen rengeteg dolog van, amire emlékeznie kell. Ilyen többek között az adott nyelv szintaxisa; változók és függvények, amelyeket előzőleg meghatározott a programban; az alkalmazott technikák;  múltbeli tapasztalatok. Minél  több ilyen részletet tud a szoftverfejlesztő  a fejében  tartani, annál hatékonyabban ír programot.

  8. A számítógépek meglehetősen összetett rendszerek, és a komplex rendszerek kezelésének leghatékonyabb kezelési módja, ha kis részekre osztjuk fel a rendszer folyamatait. Ezek elrejtik az adott feladat elvégzéséhez szükségtelen részleteket, így könnyebben koncentrálhatunk arra, ami fontos. Azonban ahhoz, hogy meghatározzuk a részfolyamatokat, a fontos és kevésbé fontos részleteket, szükség van arra, hogy egyszerre több szinten és elvont módon tudjunk gondolkodni.

  9. A szoftverfejlesztőnek a programelemek jó elnevezésének képességét is birtokolnia kell: beszédes, egyértelmú, formai konvenciókat betartó változó, osztály, eljárás, függvény, modul, tábla stb. elnevezéseket kell tudnia alkalmazni ahhoz, hogy hatékony, jól múködő programot alkothasson.

     

Jogosan merül fel ezek után a kérdés, hogy mi a helyzet a gyakorlati tudással?

Természetesen fontos, hogy egy szoftverfejlesztő szilárd alapokkal rendelkezzen egy-két technológiai területen. Sőt annál értékesebb programozó, minél speciálisabb technológiákban jártas. Fontos, hogy a programozó alaposan ismerje a programozási nyelve(ke)t, de jelentősen megkönnyíti a dolgát, ha rendelkezik a fent említett képességekkel is.

Ajánlott tanfolyamaink azok számára, akik szeretnék kipróbálni, vajon jó programozó válna-e belőlük: