Itt most arra a szituációra gondolok, hogy elkezdtél tanulni egy programozási nyelvet, környezetet, és valamit nem sikerül megoldani: a te logikád szerint helyes, de a gép mégsem azt csinálja, amit szeretnél tőle. Vagy kiír valami hibaüzenetet, amit esetleg nem is értesz.

Jobb esetben megkérdezed a mentorodat, de mentor sem mindig áll rendelkezésre (a való életben sem), szóval nem árt, ha van valami a tarsolyodban önállóan megoldandó helyzetekre is.

  1. Google. Írd be a keresőbe, hogy éppen mit szeretnél megtenni vagy mi a hibaüzenet, felsorolva a környezeteket is, pl. “java array arrayindexoutofboundsexception” vagy “reactjs touch drag and drop” esetleg “spring data jpa dao” vagy ilyesmi. Saját tapasztalat, hogy mostanában 2-3 szó is elmegy a környezet megadására, viszont fontos, hiszen nélküle esetleg egy másik környezet megoldását találod meg.
    (Ide tartozik, hogy ha egyszerű kérdést teszel fel, akkor LMGTFY választ kapsz, ami a “Let me Google that for you” rövidítése. Van rá weboldal is: LMGTFY.

  2. Ha már működik a program, és a hiba forrásának helyét keresed:

    1. Tesztkiírásokat tenni a programba, amikor kiírsz valamilyen információt a programról (pl. egy változó értékét) a konzolra (képernyő vagy böngésző console-ja). Az előnye, hogy minden környezetben használható, és gyorsan előállnak az információk, viszont azok köre szűkebb.
    2. Lépésenkénti futtatás. A legtöbb programozási környezet támogatja azt, hogy a programodat lépésről lépésre, soronként hajtsd végre, és minden sor után megállj, megnézni a változók, kifejezések értékét. Az információk köre széles, de a lépésenkénti haladás miatt nem túl gyors.
    3. Oszd meg és uralkodj!. Ez már egy haladó technika, a mérnöki problémamegoldás (egyik) kvintesszenciája. A lényegét hadd mutassam be mondjuk egy házimozi-rendszeren: Tegyük fel, hogy van egy lejátszónk, erősítőnk, hangfalunk, valamint kábelek a lejátszó és erősítő, illetve az erősítő és a hangfal között, és azt tapasztaljuk, hogy bár kép van, hang nincs. Hol lehet a hiba? Valójában bárhol: lehet, hogy a film, amit lejátszanánk, nem tartalmaz hangsávot, a kábelek valamelyike megsérült, az erősítőben romlott el valami, esetleg a hangfal ment tönkre… vagy valamelyik eszköz nincs bekapcsolva.

      Elsőként nézzük meg, hogy az erősítőnél (vagy inkább az erősítő előtti kábel végénél) van-e hang, ami kb. a rendszer felénél van. Ha van hang, akkor tudjuk, hogy a vizsgált pontig minden rendben, a hiba utána, azaz az erősítő, erősítő utáni kábel vagy a hangszóróban keresendő. Ha nincs hang ott sem, akkor az első felében valami gond biztos van (ezzel nem zártuk ki, hogy az erősítő utáni részben gond van-e).
      Menjünk tovább azzal az esettel, hogy az erősítőnél nincs hang. A következő lépés, hogy ezt a részt is megfelezzük: nézzük meg, hogy a lejátszó ad-e ki hangot (mondjuk egy fejhallgatóval). Ha itt sincs, akkor tovább kell haladni visszafelé, ha van, akkor a lejátszó utáni kábelben (vagy az erősítőben – attól függ, hol néztük) keresendő a gond.
      A kérdéses komponenseket mindig megpróbáljuk elfelezni és megnézni, hogy középen mi a helyzet.
  3. Ha nem működik a program, nem tudod összerakni, mi a helyzet:

    1. Elmész tusolni, alszol rá egyet. Ilyenkor a tudatos elme kikapcsol, és hagyja, hogy a tudatalatti elme megoldja a dolgokat. Ilyenkor jönnek álmunkban a felismerések (Friedrich August Kekulé is így járt a benzol molekula szerkezete kapcsán) vagy esetlen fürdés közben tör ránk a felismerés (az Arkhimédésznek tulajdonított – ám vélhetően hamis – sztori szerint a fürdőben jött rá, hogy II. Hierón által rendelt koszorúban hogy lehet megmérni az arany mennyiségét). Egyszóval kapcsoljunk ki!
    2. Rubber duck debugging.

      Fogj egy gumikacsát. Tedd fel a gépedre, és mintha élő ember lenne, mondd el neki a problémádat. Mire végzel, lehet, hogy megvan a megoldás is. Hogy miért? Az ember hajlamos ugyanazokat a gondolati köröket befutni újra és újra. Ha viszont valaki másnak kell elmondani, akkor az elejéről kezdjük és lépésről lépésre építjük fel, ami közben a gondolkodásunk is új utakra téved. Működik házastárssal, baráttal is!

Tanulj nálunk Java programozást!
Ha nem tudsz még programozni…
Ha tudsz programozni, de más nyelven…
Ha elavult már a tudásod…
akkor nézd meg gyors és rugalmas módszerünket: StudiCore Online Java.

Ha most kezdesz programozást tanulni, akkor nagy fejtörést okozhat az a kérdés, hogy melyik programozási nyelvet is válaszd a tanuláshoz. Van ugyanis sokféle: Java, C++, Python, Javascript, C#, PHP – hogy csak néhányat említsek a rendelkezésre 100-nál is több nyelvből. Ha már tanulsz valamit, akkor olyat szeretnél tanulni, ami megéri.
Előfordulhat, hogy igyekszel egy programozótól segítséget kérni, és válaszol is, legjobb tudása szerint, amiből lehet, hogy csak annyit értesz, hogy melyik nyelvet ajánlja, de azt, hogy miért, az nem biztos, hogy 100%-ig átjön.
Mondok egy analógiát, ami elég jól hasonlít ehhez a helyzethez:
Tovább

A kedvenc viszontkérdésem erre az, hogy “Meg lehet-e tanulni könyvből karatézni?” vagy “Hány könyvet kell elolvasnod ahhoz, hogy fekete öves karate mester legyél?”

Hadd fejtsem ki egy kicsit jobban.

Az elméletet el lehet olvasni.
Tovább

A minap egyik ismerősömmel beszélgettünk, főként a vállalkozás volt a téma, és – mivel mi ezzel foglalkozunk – szóba került a programozás is. Az eszmecsere egy pontján az a megállapítás hagyta el a száját, hogy a programozás számára mindig is egy “száraz” téma volt, semmi érdekeset nem lát benne, ő biztos nem tudná jól csinálni, “hülye lenne hozzá”.

A reakcióiból ítélve valószínűleg nagyon bután nézhettem rá.

Az egyik az, hogy szerintem egy értelmes ember meg tud tanulni programozni (ezért is állítottunk össze egy olyan tesztet, amiben erről meg lehet bizonyosodni), de erről már többször írtam.

A másik pedig,
Tovább

Többször feltették már nekem a kérdést, hogy ezzel a tanfolyammal mit lehet elérni?
Mire leszel képes?

Talán az lesz a legjobb, ha megmutatom.
Ezt a programot a StudiCore Online Java tanfolyam anyagával hozta létre Lesznyák Mátyás.
Ez azt jelenti, hogy ha velünk tartasz, és végighaladsz a tanfolyamon, te is képes leszel ilyen és ehhez hasonló programok írására.

Neked milyen ötleted lenne, amit szívesen leprogramoznál?
Nem lenne csodálatos, ha olyan programot használhatsz, amit tökéletesen a saját szád íze szerint tudnál megírni?
És ha változtatni akarsz rajta, bármikor nyugodtan megteheted?

Ha még nem hallottál róla, az előfizetéssel nem rendelkezők számára a Basic csomag ára december 1-től megemelkedik.
Ha még előtte szeretnél csatlakozni, most lehetőséged van annyi hónapnyi Basic előfizetést vásárolni, amennyit szeretnél:

Megrendelő űrlap

Mi a különség a csomagjaink között?

Akár választottál már programozási nyelvet magadnak, akár nem, biztosan felmerült a kérdés benned, hogy milyen módokon lehet a programozást megtanulni.

Összegyűjtöttem neked a lehetséges módokat. Ha analógiát szeretnék keresni rá, tegyük fel, elhatározod, hogy le akarsz fogyni és ezért sportolni kezdesz. Mindkét esetben milyen lehetőségeid vannak?
Tovább

Ha még nem értesz a programozáshoz, felmerülhet benned a kérdés, hogy ahhoz, hogy valamit tudj programozni, melyik nyelvet tanuld meg.

Összeállítottam egy grafikont, ami megmutatja, hogy az egyes lehetőségekhez melyek azok a népszerű* nyelvek, amelyeket azon a területen ajánlott tanulni. (* – TIOBE Index 2017. október első 7 nyelv, kivéve az iOS, mert ott egyik nyelv sincs a TIOBE TOP 7-ben)

Melyik programozási nyelv (Java, C++, Javascript, Python, PHP, C#, C) mire való - ábra

Továbbra is hangsúlyozom, nem ajánlom, hogy párhuzamosan kezdj el több nyelvet is. Válassz egyet, ismerkedj meg vele, ásd bele magad egy kicsit jobban. Utána még mindig válthatsz és/vagy tanulhatsz újat. Könnyű beleesni abba a hibába, hogy már 10-féle nyelven tudod kiszámítani a 2+2-t, de igazán egyik nyelvvel sem tudsz még semmi említésre méltót leprogramozni, viszont már egy éve foglalkozol a programozással. Ahhoz, hogy megismerd egy nyelv erősségeit, gyengeségeit, sajátosságait.

Gondolj úgy a nyelvválasztási kérdésre, mint egy párkapcsolatra.
Tovább

Ha kívülállóként közelítünk a programozás világához, akkor felmerülhet bennünk a kérdés: “Végülis mit csinál egy programozó egész nap? Szeretném-e én ezt csinálni?”

A kérdés tök jogos, főleg, hogy az IT szakemberek között százával terjednek az ehhez hasonló összeállítások:

Ezek persze a humor kategóriájába tartoznak, de azt jól jelzik, hogy megérteni kívülállóként, hogy mit csinál egy programozó, nem könnyű.
Tovább