Tanulni nehéz. Ezt senki sem tagadja. Ahogy benő az ember feje lágya rájövünk, hogy nem is olyan rossz tanulni. Lazán lehet élvezni is, főleg akkor, ha tudod alkalmazni a tanultakat. A tudás adta előny pedig örömet okoz, sikeresebbé tesz.
Tanulásnál egy dolog biztos nehezebb: alkalmazni a tanultakat. Éppen a tegnapi napon esett meg velem. Tulajdonképpen büszke vagyok arra, hogy folyamatosan képezem magam. Tanulok a PSZF-en, tudatosan keresek témákat informatikán belül, amit nem tudok, vagy nem eléggé ismerek és próbálom alkalmazni a tanultakat. Mostani mániáim egyike, hogy alaposan ismerkedek projekt menedzsment technikákkal. Sokat megismertem és jó párat ténylegesen alkalmazok is. Ám az egyik Németországból ideiglenesen Magyarországra szalajtott menedzserrel beszélgettünk. Nem volt igazán hivatalos beszélgetés inkább olyan, aki a szíván viseli a cég sorsát minden szinten. Mondjuk az az ember, akivel jó együtt dolgozni (ha menedzser lennék valószínűleg hasonló lennék és azt hiszen nem is lennék rossz – persze élő tapasztalataim hiányoznak, minél öregebb vagyok egyre inkább látom, hogy a tanulóidőt meg kell fizetni). Szóval ezen a szabad beszélgetésen olyan tippeket adott, amiket tulajdonképpen én is ismerek, de mégsem alkalmazok a saját munkám követésére, menedzselésére. Ám így, hogy a szájából hallottam szembesülnöm kellett azzal, hogy hiába tudom az eszemmel, de a nem épült be a mindennapjaimba. Ezzel kapcsolatban van egy történetem amit valamikor Reader's Digest-ben olvastam.
Van két fickó, akik már évek óta minden héten együtt járnak el teniszezni. Egyszer az egyikük nyer másszor a másik, tehát megközelítőleg egy szinten játszanak. Egyszer egyikül eldöntötte, hogy elmegy az egyik világhírű teniszbajnok óráira, hogy megtanulja a tuti technikát. Szorgosan eljár és elsajátítja a profi technikákat. Mikor visszatér már dörzsölte is a kezét, hogy na most aztán elveri a másikat. De nem jött össze. Partnere sorozatosan nyert. Végül megunta és visszatért a saját technikájához és hirtelen kiegyenlítődött a játék. Onnantól kezdve már nem is törődött a profi teniszező tanácsaival, hiszen nem váltak be. És boldogan élt, amíg meg nem halt. Pedig nem ez a tanulság. A gond az volt, hogy ugyan megtanulta a tuti tenisz-technikát, de nem várta ki a tanulóidőt, nem várta meg, amíg ösztönössé nem válnak azok a lépések és fogások, ami világszínvonalú teniszezővé emelte edzőjét. Ha kicsit türelmesebb lett volna, előbb-utóbb tartósan felülkerekedett volna teniszpartnerén.
Ugyan ez a helyzet a tervezési mintákkal, a verziókezelőkkel, a cigiről leszokással is.
Saját kicsi, nem reprezentatív mintából vett tapasztalatom, hogy ugyan sok fejlesztő tudja mi az a verziókövető rendszer, de meglepően kevesen használják és akik használják azok sem mindig teljesen tudatosan (mármint a verziókövető teljes fegyvertárát felhasználva).
Egyik nagy „mániám” a tervezési minták. Nem tucatnyi alap tervezés mintára gondolok, hanem arra több tucat „so called” Enterprise Patterns-ekre is. Szinte mindenki tudja, de legalább sejtik mik is azok, de ismerni alig néhányat ismernek. A Singleton-t szinte mindenki, hogy micsoda, hiszen az egyik legegyszerűbb. Az Observer-re és MVC-re is sokaknak felcsillan a szeme, de már gondok akadhatnak, ha lányegének leírását kérjük számon. Persze senki sem tökéletes. És és szerintem szinte mindenki újra meg újra fellapozza az alapirodalmakat, referenciákat. Ez természetes.
A fentiekből nekiláttam egy irománynak, ami egy konkrét, működő alkalmazáson keresztül leírom az alkalmazott tervezési mintákat. Tudom-e értelmesen alkalmazni a tervezési mintákról tanultakat? Majd meglátjuk. De miről is van szó?
A srácok a cégnél elkezdtek tanulni németül és velük párhuzamosan én is elkezdtem a szaknyelvi angolt nyomni. Lóri hamarosan talált egy kis progit, ami nagyon megkönnyíti a szavak memorizálását. Ez pedig a Pop-up Dictionary (http://www.popdict.com/). A gond az, hogy ez Shareware, ami ugye valami korlátozást jelent. Egyik unatkozós Walldorfi estémen rászántam pár órát és elkészítettem a saját popupdictionary programomat. Mivel én készítettem nem volt vele licenc gond. Persze primitív 2 órás gányból indult, e majd félig meddig még em tudatosult fenti célzattal tivábbfejlesztettem. Nem funkcionalitásban, hanem architektúrában.
Miért pont ezen a példán keresztül akarom bemutatni? Nézzük csak! Elegendően kicsi, hogy bárki könnyedén át tudja látni. Elegendően nagy ahhoz, hogy hasznos funkciók keresztül demonstráljak. Nem utolsó sorban pedig maga problématerület, a szükséges domain knowledge mindenkinek ismert, aki valaha tanult idegen nyelveket.
Ha komolyabban előrehaladok közzé is teszem, aztán majd jöhet kritika. De vigyázat! Én finnyás vagyok a kritikákra. Nem fogadok el bármilyenet. De erről majd máskor.