Motiváció (hiánya)

Rengeteg szabadidőm van, ezért még tavaly úgy döntöttem, hogy elkezdem megismerni a C++-t, és készítek egy játékot. Maga a játék egy shoot'em up lenne, hasonló, mint a Raptor (ms-dos), vagy a Bubble Tanks (flash játék) néhány rpg-elemmel megszórva, és egy klisékkel teli sztorival ( :) )
Valamennyire kapisgálom már a C++-t, és a 2D API-t (sfml), az elgondolásaimat is nagy vonalakban meg tudom valósítani. A gond nem is ezzel van. Hanem a motiváció teljes hiányával.

Az elmúlt egy-két hétben, miután megnyitom a kedvenc szerkesztőmet, hogy "na akkor fejlesszünk", szinte azonnal zárom is be. De sokszor el sem jutok idáig, eltelik az idő netezéssel, fórumok olvasgatásával, vagy valami teljesen más felesleges dologgal.
Mit tudok ez ellen tenni ? Másképp: ki hogyan küzdi ezt le ?

Hozzászólások

Checklist.

Összeírom, milyen nagyobb célok vannak (Nagyobb csoportokba szedem), hogy aztán kis részeket megvalósítsak (akár egy ticket tracben - lehet bug, vagy új fícsör).

A kis feladatokat papíron felsorolva (soronként egy db.) egy négyzettel jelölöm. Amint kész a feladat, a négyzet pipálva. Ezt csinálják a jegykezelő/hibanyilvántartó rendszerek is, de hidd el, sokkal jobb több hónap múltán kis rongyos papírlapok gazdája lenni :)

Hogy miért jó? Felsorolod, mit akarsz csinálni, tehát strukturáltan előtted van. Ezen felül, ha tiszták a (saját magaddal szembeni) elvárások, akkor könnyebben átlátod a feladat bonyolultságát, és 1) vagy egyszerű, úgyhogy lekódolod/megoldod 2) vagy bonyolult, és felbontod mégkisebb részekre.

Ha látom magam előtt, milyen részcélok vannak és ahhoz mennyi checkboxot kell kipipálnom, tudok időt tervezni, és rájövök, hogy egy-egy részük hamar készen lesz -> motivált leszek abban, hogy csináljam.

Ha valami olyasmit kellene csinálni, amihez kevésbé van kedved, de ráér, egyből elkezdesz ilyesmivel foglalkozni. :)

--
Don't be an Ubuntard!

"eltelik az idő netezéssel, fórumok olvasgatásával"

Hálókábel kihúz / wifi letilt. Nekem bevált.

Valamint pluszegy a checklistre és a zenére :)

ez azt jelenti, hogy nem neked valo a programozas. sorry, de ha keptelen vagy magadtol, rengeteg szabadido mellett uj dolgokat tanulni, ugy, hogy mondjuk 20 alatt vagy leulni es csak azert kodolni, mert nagyon jol erzed magad tole, akkor felejtos a dolog hosszabbtavon.

Nem feltétlen jelenti ezt. Nekem határidős melóknál is van ilyen. Egyszerűen besokall az ember, s nem megy. Nekem mondjuk erre megoldás az, hogy megerőltetem magam, s leülök kódolni. Kb. a tizedik sor után már megint megjön a kedvem. Egyszerűen csak elkezdeni nehéz. Aztán van időszak, mikor annyira termelékeny vagyok, hogy elfogy a kötelező feladat, s keresek valami abszolút hülyeséget, aminek maximum én örülök, meg az asszony, hogy csendben vagyok :D

+1. ha nyomas miatt kell csinalni, az teljesen mas. de ha belulrol nem jon a kesztetes, hogy "hu de kiraly ez, csinaljunk valamit", akkor az emberbol nem lesz szuper programozo. atlagos, kozepes lehet ettol fuggetlenul.

a masik lehetoseg, hogy csak idonkent van ilyen, ilyen velem is elofordul, hogy hetekig nincs kedvem mondjuk nekiallni tanulni egy uj nyelvet/eszkozkonyvtarat/akarmit, aztan meg belevetem magam. de ha konstans nincs belso kesztetes, akkor...

"de ha belulrol nem jon a kesztetes, hogy "hu de kiraly ez, csinaljunk valamit", akkor az emberbol nem lesz szuper programozo. atlagos, kozepes lehet ettol fuggetlenul."

Nalam ez megvan, a problema csupan az, hogy mig meg nem valositom azt, amit neheznek/uttoronek/komplex-nek kialtottam ki, addig megallas nelkul csinalom, utana meg mar nem visz ra a lelek hogy befejezzem, mert tudom, hogy mukodik;)
az evek alatt durvan 300 giganyi szemetet gyartottam olyan projectekbol, amik nem lettek befejezve, de mindben van valami olyan, ami az akkori szintemnek durva volt;)

ne gondolj nagy cuccokra minden esetben. Vannak 5 perces scriptek, amik pl.: rekurzivan stringet keres, vagy ide, a hupra, jónéhány fórum topicba írtamn már példát, amit előtte gondosan teszteltem. Ezek mind mind külön projectek:)
Vagy hogy máshonnan is megközelítsem a dolgot: utoljára directx és opengl hook-al szenvedtem. Mindegyikre van 3-4-5 fajta megoldás, az mind mind külön project megint és 3-4 óra alatt pörgettem ki. Befejezetlen dolgokról beszéltem, ebből indult a szál is:)

általában valami célspecifikus dologhoz kell.
Pl.: utolsó magánjellegü projectem egy DIY multitouch screen-hez gyártott képfeldolgozó volt. Megírtam, összetákoltam, örültem, de a fixen beégetett dolgok (#define;)) nem teszik lehetővé az egyszerű használatát. Gyorsan kellett, magamnak, a lényegi rész megvan, a többi nem érdekelt:)

Egyszer egy komplett portált megírtam, mert foglalkoztatott egy probléma megoldása. No az a portál azóta is csak fekszik az achive mappában, élesítve soha nem lett, viszont azóta a kérdéses kódrészletet 100x felhasználtam. S képes voltam egy modul miatt megírni egy komplett portált... Eh, mire képes az ember, ha fiatal.

Ha jól értem, egy olyan játékot próbálnál írni, amiből nem lenne hasznod, és valószínűleg te magad se játszanál vele, ha elkészülne. Hogy ez nem motivál, az inkább normálisnak számít, mint lustaságnak.

A lustaság egyébként remek motiváció is lehet, csak úgy kell megválasztani a célpontot, hogy egyszerűbbé és kényelmesebbé tegye az életedet:) Én pl kde-hez írtam rendszermonitort, ami pont úgy működik, ahogy szeretném, aztán TV-néző/felvevő frontendet mplayer-hez. Kis dolgok, de minden nap használom őket. Aztán belelkesülve a munkámat egyszerűsítő dolgokkal kezdtem foglalkozni.

Hogy a teljesen öncélú programozás örömet okozzon, ahhoz tényleg kell egyfajta, az átlagostól elütő agyberendezés, és véleményem szerint az életben sok olyan dolog van, ami nagyobb élmény, mint a billentyűzet előtt ücsörögni. Javaslatom, hogy emeld fel a segged a gép elől, és keress valami hobbit magadnak.

"munkámat egyszerűsítő dolgokkal kezdtem foglalkozni"
Na ez itt is megvan :)
Van egy töketlen weblap, amire kéthetente fel kell tenni azonos helyre egy új képet, de nincs hozzá admin, tehát mehet az ember a forrásba (nem én írtam, csak örököltem). Metódus:
megkapom pdf-ben a kreatívot, kell belőle 200px jpg, feltölteni ftp-re, php-be behákolni.
Írtam rá egy szépséges bash scriptet, azóta csak annyi a dolgom, hogy pdf lement egy mappába, script ikonja megnyom, kiválaszt menüből, hogy melyik kreatív (kétfélét szoktak küldeni), s már megy is. Az addig 10 perces hákolásokat 2mp alatt megcsinálom, s ha kell, asszonypajti is megoldja.

"munkámat egyszerűsítő dolgokkal kezdtem foglalkozni"

Azt hiszem ez az egyik legjobb kihívás: mert tudod, hogy hasznos és hogy magadnak teszel jót hosszú távon. Engem ez inspirál a legjobban.

A topik nyitónak: kicsi célok megvalósítását tenném a helyedben, melyek sikerélményt hoznak rövid távon. Úgyis csak ez a célunk végső soron szerintem; szellemileg kielégülni :) Erre nekem iszonyat jó volt felfedezni a shell-t, imádtam újként megismerni.

Igen, a motorikus dolgokat szeretem automatizálni, mert nem veszi el feleslegesen az időt mástól. A bash nálam úgy jött, hogy mostani munkahelyemen lettem igazán rákényszerítve, hogy csináljam is. Addig nem nagyon érdekelt, pedig százszor egyszerűbb, mint egy komplett project c++-ban. Most meg lépten-nyomon bash-ben írom meg azt, amire felesleges nagyobb kódot faragni.

Ismeros a helyzet, en is keptelen vagyok barmit just for fun megtanulni, kell egy problema amihez meg kell tanulni valamit ugy annal elvezetesebb.

Ha valami nem erdekel, nem is fog, akarmennyit izzadsz. Nezz mas utan.

Nekem ez neha furcsan mukodik. Pl. a hosszan elnyulo projekteket - barmily izgalmas meg kihivasos - nem szeretem, egyszeruen nem megy. Amikor mar masodik honapja acsolom, na az nem jo. Olyankor nagyon nehezen ulok le es csinalom, de mondjuk ha mar benne vagyok, akkor megy meg minden, csak leulni nehez.

A masik amit nem szeretek, az a kotelezo, hataridos programozas. En magamnak, meg masnak magamtol nagyon szivesen programozok, de amikor kiadjak, hogy ezt meg ezt kell csinalni ekkorra, az... kicsit mindig olyan fura erzes, nem kenyszer, csak... valahogy kenyelmetlen. Mondjuk ha eleg nagy a szabadsag benne, akkor jobb.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

+1

Első teljes mértékben igaz. Főleg a reszelgetés, meg a simítgatás nem motivál. Ha már működik - ahogy fentebb is említették, már tudom hogy kéne működnie és megy is - onnantól kezdve nem igazán vonz. Főleg, amikor bele kéne reszelni valami újat és írhatom át a kód 80%-át.

Második eset is illik rám, bár én szeretem a határidőseket, de olyan szempontból, hogy akkor van mihez igazodni. Inkább a stresszt nem bírom, amikor még úgy vagyok vele, hogy oké, hogy 1 hét múlva kész kéne lenni, de még a problémát se értem. Mondjuk a kötetlenebb munka is nagyon jó tud lenni, de olyankor az ember hajlamos tologatni a munkát.

Fel is akartam már írni valahova jól látható helyre magamnak, hogy "Amit ma megtehetsz, ne halaszd holnapra".

Nekem nem csak a reszelgetes, hanem egyaltalan. Ha egy projekt nagyon hosszan elnyulik, es folyamatosan acsolni kene, egy ido utan mar megunom.

Mondjuk, nekem ilyen szempontbol pechem van, mert sose kapok ugy projektet, hogy azon dolgozni is tudjak, hanem minden mas egyeb feladatom is van mellette. Pl. a mostani webapp fejlesztes se ugy megy, hogy akkor reggel leulok, fejlesztek, este felallok, elmegyek, hanem kozben meg kismillio egyebbel is foglalkoznom kell - egyszerre. Talan ez is kozrejatszhat a demotivalodasban.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Nálam kávé és ritmusos trance kell. Nem azért iszom a kv-t hogy fenn tartson, hanem mert finom. :)

Próbáld meg eltervezni, hogy mit akarsz és ragaszkodj hozzá, minél jobban. Nálam úgymond probléma, hogy ha nincs roadmap a saját projectjeimnél, akkor hajlamos vagyok elkalandozni a kódban, mert eszembe jut valami, ami jó meg minden, csak előfordul hogy utána pár 1000 sornyi kódot refaktorizálni kell, mert borult ez meg az. Nincs demotiválóbb annál, amikor egy meglévő kódot kell apróságok miatt átírni itt - ott, pl. mert függvényneve helyett függvényNeve-t használsz vagy egy osztályt ketté kellett szedni az újításod miatt...

Érdekes amit mondasz, mert nálam is az elkalandozás jellemző (jellemzően a hobbi kódoknál, nem a kötelezpőknél). Elkezdek faragni egy gui-t, s ahelyett, hogy összalapátolnám rendesen, rögtön egy adott gomb funkcióját kezdem el írni, majd eszembe jut közben, hogy kell neki egy kiegészítő opció, no akkor odavarrok hozzá egy checkboxot (holott nem is volt ilyen az eredeti terven). No ekkor szokott eszembe jutni, hogy adott feldolgozást milyen jól meg lehetne oldani egy külön binárissal, mert akkor arra rá tudnék építeni valami mást. Ekkor kiszedem a kódot, megírom külön, compile, s már máris a másik projectben landolok, mert ugye milyen jól rá lehet építeni... Ekkor szokott káosz keletkezni. :D

Próbálok minden nap ugyanakkor kelni, így általában sokkal frissebb vagyok és jobb a hangulatom. Ez nem mindig van így, de törekszem arra, hogy mindig kialudjam magam, máshogy nem éri meg élni.

Két legtutibb tipp számomra az volt, hogy
a.) előre összeírom, hogy mit akarok ma csinálni (lehetőleg előző nap este)
b.) nap végén egy txt-be írok egy összefoglalót arról, hogy mi hasznosat csináltam ma. "kötelező" meg bullshit dolgokat nem írok bele.

Az ad igazán lendületet a napomnak ha a legdurvább taskkal kezdek el foglalkozni, minél korábban. Csak hát ehhez össze kell szednem magam, ehhez még hozzá kell szoknom, de ha rendszeresen figyelek erre, egyre könnyebb. :)