Upload failed. Maybe wrong permissions?

User Tools

Site Tools




Ki a jó programozó?

Volt nemrég egy érdekes beszélgetésem egy olvasónkkal, ahol fölmerült a kérdés, hogy ki a jó programozó. Pillanatnyilag remek és tömör válasszal tudok szolgálni hat karakterben: „én nem”, de ebből nem lenne blogcikk, tehát lássuk.
  Azt hiszem, egy programozónak többféle készséggel kell rendelkeznie. Lássuk, mifélékkel, olyan sorrendben, ahogy az eszembe jutnak.
  Tudjon új dolgokat tanulni. Ez nyilvánvalóan nagyon fontos, a szakma iszonyú gyorsan változik.
  Tudjon hatékony kódot írni. Sokra megyünk azzal a kóddal, ami fölösleges műveletek tömegével vagy egyéb módon föl van duzzasztva és csigalassú.
  Tudjon áttekinthető kódot írni. A kódot később is meg kell érteni és tudni kell módosítani.
  Ismerje a modern technikákat. Az algoritmusok is változnak, ma villámgyors, tömör és érthető módon meg lehet oldani dolgokat, amikhez régen terjedelmes szövegre volt szükség.
  No, én ebből egyik se vagyok, vagy nem eléggé. A hatékonytalanságomra a legjobb példa a LAttilaD.org, ami minden erőfeszítésem ellenére töméntelen fölösleges műveletet végez, ha jóval kevesebbet is, mint korábban. Az áttekinthetőségről a hozzászólásoknál már beszéltünk, az én kódjaim mindennek mondhatók, csak áttekinthetőnek nem. Látom másokéit, úgyhogy tudom… A modern technikákat nem ismerem, és ennek rendszeresen hátrányát látom. Teszem azt ha egy szövegből ki kell termelni valamilyen részleteket, amik bizonyos feltételeknek megfelelnek, akkor én írok egy ciklust a szöveg végigolvasására, benne mindenféle szövegfüggvényekkel, amik erre-arra szabdalják a szöveget, és végül prezentálják az eredményt. Az up-to-date programozó ír egy, maximum két regexpet és megkapja ugyanazt!
  Ez elvezet az új technikák megtanulásához. Igen, megpróbáltam megtanulni a regexpeket és valami alapszinten értem is, de a hatékony használatukhoz komolyabban is érteni kellene, és az az istennek se megy. Egyszerűen nem értem és kész. Egészen biztos, hogy ha annyi időt és energiát fektetnék bele, amennyit nem fektetek, akkor megérteném, de hát nem teszem, és emiatt gyengébb kódokat írok. Most aforizmát fogok gyártani. Az olvasó is programozó – ha nem az, már rég ellapozta ezt a cikket –, tudja, hogy a programozó erénye a lustaság. Én kibővítem a mondást.
  A programozó erénye a lustaság, amikor a tanultakat használni kell. A programozó hátránya a lustaság, amikor tanulni kell.
  Klassz mondás, olyannyira, hogy rendelkezik a klassz mondások legfontosabb ismérvével: ha kimondtuk, akkor úgy lehet tenni, mintha ezzel megoldottuk volna a problémát.
  Az az új technika, amit most próbálok tanulni, a GODS. Garnet OS Development Suite. Egy nagy monstre rendszer, ami a világon mindent tud, egyvalami hiányzik belőle: egy programozó. Annak itt a gép előtt kellene lennie, de hát nincsen. Én ugye eleve annyit tudok a C-ről, amennyire a PHP-vel kompatibilis, és ez még a legkisebb gond. Én zavarba jövök és hosszas fejvakarászatot produkálok, amikor írok egy akkorka programot, ami tartalmaz egy include-ot és egy int maint (mert más forráskódokból kiszaszeroltam, hogy azt kell), ami tartalmaz egy függvényhívást, amihez kell az include – aztán kapok ötven hibaüzenetet olyan include-okból, amikkel én nem diskuráltam, semmi közöm hozzájuk, élhetnénk békében úgy, hogy tudomást se veszünk egymásról.
  Egy jó programozó ilyenkor vállat von, vigyorog és kijavítja, mert tudja, hova nyúljon; illetve eleve nem is kapja a hibaüzenetet, mert nem hagyja ki azt az alapvető apróságot, amit én kihagytam, és még nem tudom, hogy mi volt. Mivelhogy érti a nyelvet.
  Persze tanulni én is gyorsan tanulok, de tény, hogy nem elég gyorsan. Hamarosan már tudni fogok GODS-ul, és bizonyára nekiállok könyvet írni a Palm programozásáról. A kínai írásról is úgy kezdtem írni, hogy alig tudtam róla valamit.

»»»»»»