Az előző blogbejegyzésemben az informatika világát egy folyóhoz hasonlítottam, mely részben gyorsan, részben viszont állati lassan változik.

Adódhat a kérdés, hogy mégis hogyan viszonyuljunk ehhez az egész informatikához, ami – ahogy a csapból is folyik – “rohamtempóban változik”.

Ahogy az előző írásomban is említettem, a rohamtempó olyan rohamos, hogy 40 éve találták ki azt az elvet, amit ma a programozásban használunk, és a mai számítógépek elveit 70 éve írták le.

Változások az ember élete alatt

Tovább

“Végülis milyen programozási környezetet tanuljak, ha biztosra akarok menni?”

Az informatika világát egy folyónak tudnám leírni: vannak olyan ismeretek benne, amik nagyon gyorsan változnak (a víz felszíne, ahogy hullámzik), azaz pl. a Windows 8.1 és 10 között is számos beállítás másképp néz ki, pedig csak néhány év telt el a kettő között. Aztán ahogy haladunk egyre mélyebbre és mélyebbre, egyre stabilabb, állandóbb dolgokhoz jutunk: Bár a Windows 10 és 8.1 között számos beállítás máshova került, de mondjuk ugyanúgy monitoron nézzük a képet és billentyűzeten és egérrel visszük be, amit akarunk.

A programozásnak is megvannak a maga állandóságai:

  • A ma széles körben használt programozási módszertan, az objektumorientált programozás a ’70-es évekből származik, azaz közel 40 éves!
  • A számítógépnek, amit ma használunk, a működési elvét még Neumann János dolgozta ki, 1945-ben, azaz több, mint 70 évvel ezelőtt!

Mi az, ami nélkül nehezen lehet boldogulni ma a szoftverfejlesztés világában?

  • programozás, objektumorientált paradigmával (a Java ilyen, az egyik legjobban, legtisztábban valósítja meg ezt az elvet)
  • verziókezelés: a programkódunkat el kell tudni tárolni valahogy (git, SVN)
  • adatbáziskezelés: az SQL szinte kikerülhetetlen, de a NoSQL is egyre népszerűbb
  • valamilyen választott környezetünkhöz illeszkedő build tool (Java esetén Maven vagy Gradle)
  • HTML, CSS viszonylag közismert mostanában minden területen
  • Javán belül célszerű a Hibernate és a Spring megismerése, nagyon elterjedt a használatuk (ezek amolyan “kiegészítő” eszközök, mint egy autóban a légkondi. A legtöbb autóban van, nélküle is lehet utazni, de nagyon leizzad az ember, míg odaér. Szóval jobb, ha használjuk).
  • Ha webprogramozás felé megyünk, akkor nem tudjuk a Javascriptet és annak valamilyen keretrendszerét (pl. Angular) megkerülni

Az, hogy milyen programnyelven kezdünk el programozni, számít is, meg nem is.
A programozási képességeinket meg tudjuk szerezni bármely programozási nyelven, bár célszerűen objektumorientált nyelvet jó választani.
Ezeken belül vannak olyanok, amelyek nehezebbek (C++), mások könnyebbek (Java, C#, Python).
Vannak, amelyek tisztábban követik az elveket (Java, C#), így jobban bevésődik a használatukkal, vannak, amelyek nagyobb szabadságot engednek (C++, Python).
Vannak modernek, amiket még kevesen használnak (és ki tudja, mekkora lesz a jövőben a népszerűségük), vannak aktuálisan sokak által használtak (pl. Java, C#, PHP, Javascript), és van, amiknek már leáldozott a csillagjuk (pl. Pascal vagy Fortran).

A Java sok szempontból észszerű választás:

  • sokan használják, sok a betöltetlen állás
  • sok területen használható (Android, web, desktop, nagyvállalati rendszerek)
  • tisztán követi a programozási elveket
  • viszonylag egyszerű megtanulni
  • készségesen a programozó keze alá dolgozik, így nem a technikai részletekre, hanem a feladatok megoldására kell koncentrálnunk. (Azaz autós példával élve: van üzemanyagszintjelző, nem kell állandóan kiszámolnunk a sebesség és megtett út függvényében, hogy van-e még elég benzin a következő benzinkútig).
  • a Java programozók jól fizetettek

Felmerülhet a kérdés, hogy mi az a rengeteg betűszó az álláshirdetésekben, és mit kell tudni, és mit nem ahhoz, hogy el tudj helyezkedni?

Vegyünk egy analógiát, egy iskolát, és a benne dolgozó tanárokat. Aligha akad olyan, aki nem látott még iskolát, úgyhogy remélem ülni fog az analógia.

Vannak olyan dolgok, amiket minden tanárnak, bármilyen szakos is legyen, tudnia kell, különben nem nagyon tud tanítani: beszélni valamilyen nyelven (magyar, angol, német, francia…), írni-olvasni is tudni kell, az e-naplót tudnia kell kezelni, és értenie kell a pedagógiához.

Az ezeknek megfelelő tudások egy programozó életében: az alapvető informatikai ismeretek, pl. az operációs rendszeré (tud beszélni), kell értenie a verziókezeléshez (git, SVN) (írni-olvasni kell tudni), az adatbáziskezeléshez (SQL esetleg NoSQL) (e-napló használata) és kell tudnia programozni (pedagógia). Ezen belül a pedagógiának vannak különböző ágai, ahogy a programozásnak is, bár ma viszonylag egységes az, amit tudni kell, van egy uralkodó irányzat (objektum-orientált programozás vs. frontális, non-kooperatív oktatás).
Ami még programozásban alaptudásnak számít, az pl. a HTML, CSS, esetleg XML tudása.

Ezen kívül kell tudnia valamilyen tárgyat tanítani. Vannak egy-, két-, ritkábban háromszakos tanárok, bizonyos irányok közelebb állnak egymáshoz (matek-fizika), mások messzebb (magyar-matek). Ennek megfelelően a programozók legtöbbje jól ért egy, két vagy három programozási nyelvhez és környezethez.
Az egyes tárgyakon belül vannak specializációk, és itt talán a tesitanárok a legszemléletesebb példa: a legtöbb testneveléstanár valamilyen sportág művelője, oktatója egyben. Vannak általános, minden tesitanár által ismert elvek, mint edzéstan, fejlődéstan, meg egyebek, ezt a kézilabdás tanár és a focis tanár is tudja. Mindketten testnevelést oktatnak, de ha nagyon belemegyünk, egész mást tudnak nagyon jól. Persze ha kézilabdaedző valaki, elboldogul egy csapat focistával egy bizonyos szintig, de tuti, hogy ha eredményt akar elérni, rá kell tanulnia.

Ehhez hasonlít a programozási környezetek világa is: ha Javát kezdesz el tanulni (tesitanár vagy), akkor azon belül specializálódhatsz az Androidra (kézilabda), Java EE-re (kajak-kenu), Springes webfejlesztésre (evezés), stb. Van egy közös alap a többi Javással, de valójában más irányba mentél el. A Springes webfejlesztés nem áll távol a Java EE-től (ahogy az evezés sem a kajak-kenutól: víz-víz, evező-evező), de mégis más a kettő. Minél jobban belemész, annál inkább.

Tesitanárként egy földrajzórán helyettesítőként mondjuk eléggé meg vagy lőve, hiszen a konkrétumokban kevés ismereted van, de értesz a pedagógiához, láttál már gyereket közelről, úgyhogy azt csípőből el tudod érni, hogy ne szedjék szét a tantermet. A jó földrajzórához viszont meg kell tanulni az adott anyagot neked is… Leadni viszont le fogod tudni, mert a pedagógiához viszont értesz.

Ami még ide kapcsolódik: programozás keretén belül a build tool-ok (Javában a Maven, Gradle): ezeket behelyettesíthetjük az információforrással – ha kémiatanárként tovább akarod képezni magad, akkor más lapokat, internetes oldalakat olvasol, mint földrajztanárként, de van, ami ebben közös: olvasol, fejlődsz és hogy minden szaknak megvannak a saját forrásai hozzá. Így a build tool-ok is fontosak, tudni kell róluk, elveik sokszor azonosak, de mégis mindig az adott nyelvhez kapcsolódóak.

És még egy szempont. Ha valahol 5-6-féle programozási nyelv (környezet) (pl. Java, C#, C, C++, Javascript…) ismeretét várják el tőled, akkor érdemes utána menni, hogy miért van ez. Ez olyan, mint ha egy iskola hatszakos tanárt keresne felvételre.

Ha érdekel a programozás, szeretnéd is megtanulni, de nem vagy benne biztos, hogy a számítógéped alkalmas-e rá, vagy épp számítógépvásárlás előtt állsz, de nem akarod, hogy rosszat válassz, akkor nézd meg ezt: Bosszankodásmentes számítógépválasztó.

Jogosan merül fel a kérdés, hogy mi kell a programozóként való elhelyezkedéshez.

Kell-e diploma?

A leghatározottabban állíthatom, hogy nem, legalábbis a programozókat felvevő cégek 95%-ánál.
Persze örülnének neki, ha találnának olyan embert, akinek van, mert az azt jelenti – ha mást nem is -, hogy valahogy végigvergődött egy 3 vagy 5 éves képzésen. Ha oda is tette magát, és nem csak puskázott vagy végig szerencséje volt, azt jelenti, hogy számtalan követelménynek meg tudott felelni, néha képes volt éjt nappallá téve egy bizonyos dologra koncentrálni, azt végigcsinálni, van elég tanulási kapacitása arra, hogy bizonyos témaköröket elsajátítson.
Így tizenegynéhány év távlatából az egyetemről azt gondolom, hogy valójában egymással többé-kevésbé összefüggő tudományterületeket és szakmákat oktat, de a graduális képzés egyikbe sem megy bele olyan szinten, hogy azonnal használható tudással rendelkezzen a tanuló. Ahhoz, hogy ez megvalósuljon, saját kezébe kell vennie a karrierjének az alakítását, és már egyetem közben szimpatikus területen munkát kell vállalnia, akár gyakornokként.

Egy tanulói kérdés

Mennyiben van hátrányban az, aki tanfolyamot végzett, olyannal szemben, aki egyetemre járt? Értem ezalatt egyrészt azt, hogy anyagilag mekkora a különbség, másrészt hogy ki mennyire látja át összefüggéseiben a programkódot?
Egy egyetemet végzett diáknak szélesebb a látóköre, de valószínűleg a specifikus Java-tudása összemérhető azzal, amit mi tudunk nyújtani, sőt, azt gondolom, hogy a legjobb egyetemisták Java-tudásával is felvesszük a versenyt.
A programkód átlátásának képessége meg a rutintól és az intelligenciától függ, amihez az egyetemnek semmi köze nincs. Jó nevű egyetemre jártam, de sosem volt olyan gyakorlat vagy labor, ahol nagy programkódot kellett átlátni, legalábbis nem olyat, amit más írt.
A fizetés azt gondolom kicsit múlik csak a diploma létén vagy hiányán, inkább a tárgyalási képességeken és a cég igényeinek és a munkavállaló képességeinek egymáshoz való illeszkedésén múlik. UPDATE: Az imént jött szembe egy cikk: https://prog.hu/hirek/4823/hivatalos-nem-eri-meg-diplomat-szerezniuk-a-programozoknak

Mit szeretnének a cégek?

Amit a cégek leginkább szeretnének, az az, hogy a munkavállaló azonnal bevethető lenne, azaz megérkezik a céghez, leül a gépéhez, és elkezdi “termelni” a programsorokat. Akármilyen szépen is hangzik ez az elméletben, a valóságban sosincs így, még akkor sem, ha tapasztalt embert vesznek fel a vállalathoz. Meg kell tanulnia a céget, a viszonyokat, folyamatokat, a terméket, amit fejlesztenek (máskülönben honnan tudná, mások mit írtak le az elmúlt két évben?). De ez általában be is van kalkulálva, megvannak a megfelelő céges folyamatok rá.
Mivel ez nem is lehet meg, már annak is örülnének, ha minden hard skill, azaz technikai tudás a rendelkezésére állna az új munkavállalónak, minden olyan területen, amin a cég tevékenykedik. Ráadásul úgy, hogy nem kell tovább tanítani, hanem azonnal tud dolgozni. Az ilyen ember – ha találnak is – nagyon drága. Magas a bére, és általában fejvadász kell a pozíció betöltéséhez, ami szintén nem olcsó.
Szóval ez sem mindig van meg. Akkor legalább az legyen meg, hogy önállóan képes legyen a tudást megszerezni, és lehetőleg minél kevesebbet terhelje a már ott dolgozó tapasztalt kollégákat (hiszen általában azért vesznek fel új embert, mert már nincs elegendő kapacitás elvégezni a feladatokat). Pénzügyileg még mindig jó, ha néhány hónapot tanulásra fordít az új (junior) kolléga, és aztán teljes gőzzel tud dolgozni, és ott marad 2-3 évet a cégnél.

Összefoglalva: az kell a cégnek, hogy azt tudd, amikkel ők foglalkoznak, lehetőleg azonnal bevethető módon. Ha nem tudod, akkor meg tudd megtanulni nagyon gyorsan, nagyon önállóan.

Ezért törekszünk arra, hogy a tanulóinkba beleneveljük az önállóságot. Ezért nincs az, hogy bármikor elérsz egy oktatót, aki válaszol a kérdéseidre. Nem lennél jó munkaerő, ha állandóan a tapasztalt kolléga sarkában loholnál, és nem tudna tőled haladni a saját dolgával, mivel mindig veled foglalkozik. Nagy tragédia és elakadás esetén jó, ha kérdezel, ezt szimuláljuk a rendszeres, havi 8 konzultációs alkalommal. A kérdéseidben légy összeszedett, tudd, mit akarsz megtudni, lényegre törően kommunikálj, azaz légy jó munkaerő.
Amit még ehhez kapsz tőlünk, az a “kilométer”, a programírási rutin: ha csak a Java modult is végigcsinálod, 100-nál is több apróbb-nagyobb programot fogsz elkészíteni, lényegében egyedül, tehát lesz valamekkora rutinod már programok írásában. (Egyik jó nevű egyetem Java-félévében kb. 50-et írsz meg, ha minden kiadott feladatot megcsinálsz).
Hol kimondva, hol kimondatlanul, arra törekszünk, hogy megtanítsuk a programozói gondolkodást, és azokat az elveket, amelyektől jó programozó leszel (pl. Clean Code).
Mindezt azért, hogy amikor odakerülsz, hogy lehetőséget kapsz egy cégtől arra, hogy bizonyíts (=felvettek), akkor a lehető leggyorsabban meg tudd tanulni mindazt, amivel addig nem találkoztál még.

Ez így most lehet, hogy véresen komolyan hangzik. A cél az, hogy mikor végzel nálunk, akkor a hasonló helyzetű emberek között kiemelkedő légy. Az utat viszont igyekszünk minél könnyebbé és élvezetesebbé tenni: Ezért vannak a lényeget szemléletesen bemutató oktatási anyagaink, benne számtalan analógiával; ezért vannak jó fej és segítőkész tanáraink, akik minden felmerülő kérdésedre válaszolnak és támogatnak a haladásban; ezért van azonnali visszajelzést adó feladatkiértékelő rendszerünk, hogy a kihívást jutalom kövesse, és hogy a sikerélmény tovább hajtson az úton.

Ha nem tetted, próbáld ki még ma! Az első lépés a tesztünk kitöltése. A többit pedig emailben.

UPDATE:
“Hogy érjem el, hogy ha beadom valahova a CV-met, ne dobják a kukába, amikor meglátják, hogy nincs egyetemi végzettségem?”
A sarkított válasz az, hogy: Úgy, hogy beadod a céghez a pályázatodat. 🙂
Kicsit hosszabban: persze nem hallottam még olyan cégről, amely megengedheti, hogy olyasvalakit alkalmazzon, akit neki kell kitanítania a nulláról, ezért érdemes – diploma helyett – valamilyen hobbiprojektet csinálni (egyébként a Java modulunk végén van is ilyen feladat), aztán azt esetleg átültetni más nyelvekre, környezetekre, demonstrálandó, hogy mit tudsz. Ezt már be lehet tenni a CV-be. De amúgy ma nem a cégeknek áll a zászló az IT munkaerőpiacon, szóval bár szeretnének válogatni, de nincs igazán kiből.

Az elmúlt hetekben belecsöppentem egy programozáshoz köthető Facebook-csoport életébe. Sajnos azt tapasztaltam, hogy az új tagok először írnak, utána olvasnak: felteszik a kérdéseiket, és nem olvasnak vissza még egy napot sem a csoport történelmében, hogy megtalálják a választ. Így gyakorlatilag naponta jelentek meg ugyanazok a kérdések. Összegyűjtöttem a válaszaimat a rendszeresen felmerült kérdésekre, azaz készítettem egy GYIK-ot, ennek rövidített, magyar változatát olvashatjátok most.

0. Miért is GYIK?
A GYIK a GYakran Ismételt Kérdések rövidítése, angolul FAQ, azaz Frequently Asked Questions (ha meg kiejted az angol rövidítést, akkor rájöhetsz, hogy az IT szakemberek mennyire szeretnek egyesével válaszolni az ismétlődő kérdésekre. :-))

1. Mi a programozás?
Kevésszer találkoztam életemben olyannal, hogy valaki ne tudta volna, mi az a programozás, és mit oktat a programozásoktató, de előfordult. Szóval a programozás a programok készítését és nem a használatát jelenti.

2. Melyik a legjobb programozási nyelv? Melyik a jobb, x vagy y?
Nem létezik “legjobb” programozási nyelv. A programozási nyelvek valamilyen cél elérése érdekében jöttek létre. Anélkül, hogy tudnánk, mire szeretnéd használni, erre a kérdésre nem lehetséges válaszolni.

3. Mi a legjobb programozási nyelv egy kezdőnek?
A csoportban valószínűleg C és C++ fanok gyűltek össze nagy számban, ezért sokszor javasolták, mint kezdő nyelvet. Ezzel én nem értek egyet. (Mindenkinek megvan a maga véleménye és azt tolja… :-))
Az analógia nem 100%-os, de jobb nem jutott eszembe: Ha C-vel kezded a programozást, az kicsit olyan, mintha autóvezetés tanulása előtt megtanulnád, hogy kell autót szerelni. Kétségtelen, hogy jobban megérted az autó működését, és izgalmas dolgokat tanulhatsz, de – főleg, mivel a nyugati világban gyakorlatilag kézzel nem szervizelhetők az autók – nem sokat érsz vele, nem visz sokkal közelebb az autóvezetéshez. A C programozási nyelv használatához sok olyan részlettel tisztában kell lenni, ami nem szükséges a feladat megoldásához (és sok nyelvben nincs is rá szükség), de itt szükséges, hogy helyes programot tudj írni.
Ha C++-szal kezdesz, az olyan, mint ha az autóvezetés tanulását egy Forma-1-es sportkocsival kezdenéd. Szupergyors, szuperjó, de ha nem értesz hozzá, két másodperc alatt felcsavarodsz a fára, és ahhoz, hogy kihozd belőle a lehetőségeket, nagyon kell érteni hozzá. És ahhoz, hogy elég jól érts hozzá kb. 2-3-szorannyi tanulási idő kell, mint pl. a Javához. (Az “elég jó” alatt nem azt értem, hogy ki tudod íratni, hogy mennyi 2+2 eredménye, hanem ha érted a többszörös öröklést, a virtuális metódus táblákat, a template-eket, az operátorfelüldefiniálás mindkét módját, a memóriakezelést (pointerek, destruktorok…) – bármit is jelentsenek ezek. :-))
Helyette amit javasolni tudok: Java, C# vagy Python.
Innentől még inkább személyes vélemény következik: Én a Javat szeretem legjobban. Több, mint 10 éve ismerem, és nagyon jónak tartom abból a szempontból, hogy a fontos koncepciókat nagyon tisztán tálalja. (Ha analógiát szeretnék keresni rá, olyan, mint ha egy beszélt nyelvben nem lennének kivételek). És a TIOBE Index szerint pillanatnyilag (2017. október) Java területen van a legtöbb képzett mérnök, kurzus és ezzel foglalkozó cég (vendor) – kb. háromszorannyi, mint a másik kettő esetében. Megtanulod, és egy háromszorakkora közösség része lehetsz, mint a C# vagy Python megtanulásával.

4. Mennyi ideig tart megtanulni programozni?
Mennyi ideig tart megtanulni gitározni? Mennyi ideig tart megtanulni egy idegen nyelvet? – ahogy az előbbi kérdéseknél is, a programozásnál is az a kérdés, hogy milyen szintre akarsz eljutni? Világhírű gitárművész lennél? – Egy élet is kevés. Tábortűz mellett el akarsz játszani egy-két számot? – Néhány hónap biztosan elég.
A programozás esetében az első néhány óra után már érdekes programokat tudsz majd összerakni, aztán ahogy haladsz előre, úgy tanulsz egyre izgalmasabb és izgalmasabb eszközöket. Egy idő után eljön az a pont, hogy egy cégnél hasznos munkát tudsz végezni. A fejlődés – jó esetben – itt nem áll le, egyre jobb és jobb leszel benne.

5. Tanuljak-e több programozási nyelvet egyszerre?
Elkezdenéd-e egyszerre tanulni a spanyolt és a portugált? (ha egyikhez sem értesz).
Én egyet választanék.

6. Milyen készségek hasznosak a programozás megtanulásához?

  • olvasni kell tudni (előbb-utóbb angolul is)
  • némi logika
  • kitartás: a problémák megoldásához és a jobb programozóvá váláshoz.
  • türelem, hogy megtaláld a problémák megoldását
  • analitikus képességek: válaszolni arra, hogy “mi az igazi probléma?”
  • internetes információforrások megfelelő használata (Google, Stackoverflow)
  • analógiák megtalálása: ahogy Mark Twain mondta: “A történelem nem ismétli magát, de rímel.” – ez a programozásra is igaz: segít, ha két eltérő helyzet közt meglátod a hasonlóságokat.

Az első kettőt méri a programozási képességfelmérő tesztünk.
A harmadik és negyedik hozzáállás, tehát te döntöd el, hogy milyen vagy benne.
A negyediktől a végéig pedig programozástanulás közben is fejlődő tulajdonságokról van szó.

Persze mindezekben sokat segít, ha olyan tanfolyamot választasz, amiben élvezetes haladni. Ajánlom magunkat. Miért is tanulnál programozást vérrel-verejtékkel, ha élvezetesen is lehet?

7. A HTML miért nem programozási nyelv?
A programozási nyelvek egy csomó utasítást tartalmaznak, amelyek “csinálnak valamit”. A HTML adatok szerkezetét írja le, nem végez matematikai számításokat, nincs benne elágazás, feltétel, ciklus, változó, függvény… Ha nem tudod, mik ezek, nem gond. Ha elkezdesz programozni tanulni, gyorsan megvilágosodik.

Sztereotípia 4.
A programozók ápolatlan külsejű, zseniális, fiatal férfiak.
Kezdjük visszafelé: nem, nem csak fiatal férfiak – ha beírod a google-be hogy ‘computer programmers’ elég sok hölgy képe fog megjelenni, pl. Ada Lovelace, Grace Hopper, Jean Bartik, Betty Holberton, stb.
Ha nem is zsenialitás, de gondolkodás kell hozzá. Az alapvető logikai készségek sokkal több emberben ott vannak, mint gondolnánk. Érdemes kipróbálni!
Az ápolatlan viszont csak annyira törvényszerű, mint például a közgazdászoknál, azaz egyáltalán nem.
Sara Haider, a Google-nél dolgozott sokáig, részt vett a Vine app fejlesztésében, ma a Twitternél dolgozik.
Sara Haider, a Google-nél dolgozott sokáig, részt vett a Vine app fejlesztésében, ma a Twitternél dolgozik.

További példák:
http://clickmesoft.blogspot.hu/2015/02/10-most-good-looking-and-famous.html
https://www.thecrazyprogrammer.com/2014/02/the-top-5-sexiest-female-programmers-in-the-world.html
http://www.businessinsider.com/top-15-sexiest-programmers-2012-2012-5?op=1/#w-check-out-last-years-sexpots-16

Sztereotípia 5.
Csak akkor kell programozni tudni, ha programozó akarsz lenni.
A 21. században alapvető készséggé vált a számítógép-használat, a gyerekek már digitális bennszülöttek, akik tablettel a kezükben nőnek fel. Ömlik az információ és a digitális tartalom, ami mögé – természetes kíváncsiságtól vezérelve – egyre többen szeretnének belesni. A programozás a konkrét használhatóságán túl egy olyan gondolkodásmódot ad, ami segít navigálni a világban. Svédország, Nagy-Britannia, Finnország már általános iskolában oktat programozást, nem véletlenül.
(A programozás számos olyan agyi területet is fejleszt és aktívan tart, ami akár az Alzheimer vagy a demencia megelőzésében is segíthet.)

Kicsit konkrétabban nézve a dolgokat, nagyon nagy szükség van olyan emberekre, akik például az ügyfelekkel tartják a kapcsolatot és tolmácsolják azt a fejlesztők felé, vagy épp fordítva. Egy ilyen egyeztetés borzalmasan nyakatekert tud lenni, ha az, aki az ügyféllel tárgyal nem ért a programozáshoz, és olyan dolgokat vállal el, amit (adott keretek között) nem lehet kivitelezni. Ez olyan, mintha a felszolgáló nem tudná, hogy mi van étlapon és osztriga rendelést adna a konyhára egy magyaros étteremben…

Digitális bevándorlókról bővebben: https://www.marcprensky.com/writing/Prensky%20-%20Digital%20Natives,%20Digital%20Immigrants%20-%20Part1.pdf

Gyerekek és a programozás, bővebben:
https://www.ted.com/talks/thomas_suarez_a_12_year_old_app_developer
https://www.ted.com/talks/mitch_resnick_let_s_teach_kids_to_code
https://www.ted.com/talks/linda_liukas_a_delightful_way_to_teach_kids_about_computers
https://www.youtube.com/watch?v=FpMNs7H24X0

Sztereotípia 6.
Nagyon sok matek kell.
A programozás nem matematika. Az tény, hogy itt is számok vannak, (meg betűk is – mégsem irodalom) és, hogy szükséges a logikus gondolkodás ahhoz, hogy valaki jó programozó lehessen, de nem magas szintű matematikáról beszélünk, inkább csak alapokról, mint pl. a számrendszerek vagy egyszerű algebra.
A már korábban is említett kutatás alapján a programnyelvek ismerete sokkal inkább hasonlít arra, mint amikor egy idegen nyelvet beszél az ember. Ugyanolyan mesterséges nyelv, mint az eszperantó, csak épp gépekkel lehet vele kommunikálni.

Ha még nem töltötted ki az Alkalmas vagy-e programozónak? tesztünket, tedd meg most!

Programozók. A szó hallatán a legtöbben egy szemüveges, szakállas pasira gondolnak, aki kockás ingben ül a gép előtt egész nap és éjjel, és kávét vedel. Nem lenne igazságos azt mondani, hogy nincs ennek némi alapja, de ettől azért jóval árnyaltabb a kép.
A sztereotípiák nagyon be tudják szűkíteni az ember látásmódját, így jobb egy kicsit mögéjük nézni, ítélkezés nélkül.

(Szendrei Veronika és Pasztuhov Dániel, a StudiCore Kft. tulajdonosainak tollából).

Sztereotípia 1.
A programozók egész nap a gép előtt ülnek.
Nos ezt nem tagadjuk. Mivel a munkavégzés alapvető eszköze a számítógép, így nagyrészt a gép előtt ülve telik az idő. De gondoljunk csak bele, hogy például egy újságíró, építész vagy pénzügyi szakember mit is csinál. A gép előtt ül. Vagy meetingen ül. Ez nincs másképp a programozóknál sem, szóval a fenti állítás a 21. század nagyon sok szakmájára igaz lehet. (SzV)

Sztereotípia 2.
A programozók megjavítják a Windowst, ha elromlik.
Az egyik szarkasztikus, programozói fórumokban, csoportokban időről időre megjelenő vicc témája ez. Nos, ahogyan az építész sem feltétlenül ért a fűtésszereléshez, a genetikus sem végez agyműtétet, és a cukrász sem feltétlenül szakács, úgy a programozó sem (feltétlenül) tudja, mi a baja a Windowsodnak (pláne, ha a hibát úgy írja le valaki, hogy “valamit kiír”… mintha az orvosnak azt mondaná, hogy “Doktor úr! Valami fáj.”)
A Windows-javítás egy másik szakma.
Valójában egész szakmacsoport foglalkozik azzal, hogy az informatikai rendszerek üzemeljenek: van, aki a hálózatokkal foglalkozik, van, aki a szervereket tartja karban, van, aki az asztali számítógépeket és laptopokat, van, aki az adatbázisok megfelelő működéséért felelős. Egy emberen belül persze keveredhet több szakma tudása, de ritka az, hogy ő egyben szoftverfejlesztő/programozó is.
A szoftvermérnök/szoftverfejlesztő/programozó az az ember, ami munkájának gyümölcseként elkészül az új vagy továbbfejlesztett program. Vannak, akik megkülönböztetik az egyes kifejezéseket, de ennyire belemenni semmiképpen nem kell nekünk.
Ha már itt tartunk: ami a szoftverfejlesztés kapcsán elhatárolódik az előbbi fogalmaktól, az a tesztelő, aki ellenőrzi a programokat, hibákat keres benne. A trend az, hogy a program használatával való (manuális) tesztelés egyre ritkább, és az olyan programok fejlesztése, ami teszteli a készülőt, viszont egyre gyakoribb, szóval a tesztelő lassan-lassan besorolható lesz a fejlesztői szakmák alá. Szóval manapság a tesztelő is jó, ha megtanul rendesen programozni. (PD)

Sztereotípia 3.
A programozók antiszociálisak, sosem beszélnek emberekkel.
Ha megfordítjuk a dolgok, akkor az is lehet, hogy olyan emberek mennek programozónak, akiknek nem túl nagy a szociális igényük. Programozók is dolgoznak csapatban, kell kommunikálniuk ügyfelekkel, egymással, és nem árt, ha ezt a megfelelő módon teszik. Mindezek mellett azonban vitathatatlan, hogy a programozóknak például sajátos a humoruk, amit nem mindenki ért némi háttértudás nélkül.
A 127.0.0.1 annak a gépnek a (virtuális) IP-címe, aminél az ember ül
De a fentiek nem jelentik feltétlenül azt, hogy antiszociálisak lennének, mint ahogyan pl. a könyvelők sem csak cingár, szemüveges 50-es nők lehetnek…
https://www.youtube.com/watch?v=q-7l8cnpI4k (SzV)

Folytatjuk…

Ha szeretnéd tudni, hogy jó-e a számítógéped programozástanuláshoz, vagy szeretnél pont most gépet venni, nézd meg ezt az ebookot: Bosszankodásmentes számítógépválasztó!