Változatok
Érdekes emberrel találkoztam a minap. Panaszkodott, hogy mire megtanulja kezelni a programját amellyel naponta kell dolgoznia, már megjelenik egy új változat, frissítenek rajta, vagy (általa még fel nem fedezett) hibákat javítanak ki. Miközben hallgattam, valahogy rádöbbentem, hogy mi programozók is ilyen módon állunk a dolgokhoz. Egyesek ráállnak bizonyos programozási nyelvekre és csak azt tanulják. Vannak hatalmas tapasztalattal rendelkező C++ programozók, akik egy négysoros Pascal programban elvesznek. Mások a Javara esküdtek fel és tűzön vízen át a Java zászlaját viszik.
Különálló kategória a „mindenevő” programozók csoportja, akik sokféle
nyelvvel foglalkoznak, viszont egy területen sem sikerült mélyreható
ismereteket szerezniük, ezért olyan minden lében kanál szerepet játszanak.
Nem a mi szerepünk eldönteni, kinek milyen „modell” felel meg, tekintsük
viszont a következőket: Egy kis cégnél, ahol kevés az alkalmazott, nincs
lehetőség arra, hogy mindenkinek meglegyen a szakterülete, ezért a mindenes
szerep jobban beválik. Egy embernek kell értenie az adatbázis kezeléshez, de
jó, ha tud egy kevés web dizájnt is, hogy a szükséges módosításokat gyorsan meg
tudják oldani, és a C++ programozó beszél Delphi-ül is, hogy gyorsan tudjon
váltani, ha így hozza a szükség.
A nagy cégeknél megint más a helyzet. A szakosodás elkerülhetetlen, mert a
cégnél minden munkakörre van ember, a C++ programozó tényleg C++ nyelven
programoz, és a web dizájner feladata csak és kizárólag a web dizájn.
És hogy programozónak melyik jó? Programozója válogatja. Egyesek szeretnek
mindennel foglalkozni és el akarják kerülni a beskatulyázást, mások a
szakosodást választják, és „tökélyre” fejlesztik tudásukat valamely területen.
Itt merülnek fel olyan kérdések, amelyekből a cikk végül is kiindult:
napjainkba hihetetlen sebességgel fejlődnek nem csak a számítástechnikai cikkek,
hanem maguk a programozási nyelvek is. Felmerül a kérdés tehát - amelyre
magunknak kell a választ megtalálni - érdemesebb-e elhagyni a megszokott,
stabil programozási nyelvünket, amellyel csodákat tudunk művelni, valami újért,
amely számunkra teljesen ismeretlen, de mégis keresett szaktudás. Itt csak egy
tanácsot tudunk adni, egy híres történelmi személyiség szavait ismételve:
tanulni, tanulni, tanulni. Tanuljuk meg a másodikat is, ahelyett, hogy
elhagynánk az elsőt. Majd utána döntsünk.
Szerkesztői kiegészítés Deák Ferenc írásához:
Oktatási és fejlesztési tapasztalatokkal a hátam mögött én még egy tanácsot
tartok fontosnak: tulajdonképpen mindegy, hogy milyen programnyelvet
választunk, mert az elsődleges úgyis a tervezés. Nem igazán lehet jó programokat
írni előzetes tervezés nélkül - persze most nem néhány száz soros
programocskákra gondolok. Ha pedig a tervezés a lényeg, akkor majdnem mindegy,
hogy mi lesz a kiválasztott nyelv, illetve azt már másodlagos szempontok, a
felhasználói terület fogja meghatározni és nem utolsó sorban a rendelkezésre
álló fejlesztőkörnyezet adja. Persze nyilvánvaló, hogy rendszerközeli programot
nem PHP-ban vagy VB-ben írunk, hanem erre a célra a C-t, vagy a C++-t
választjuk és az is egyértelmű, hogy a kód újrafelhasználáshoz
objektumorientált vagy legalábbis objektum alapú nyelvet illik választani.
Igazán abból válik jó programtervező, aki képes a nyelveken felüli
gondolkodásra. Itt válik el egymástól a két fő terület, a programozó és a
programtervező feladatköre - persze egy kisebb cégnél ez a két tevékenység
várhatóan összemosódik, egy és ugyanaz a személy végzi a tervezést és a
kódolást. Elsősorban azt kell mindenkinek eldöntenie, hogy mi érdekli jobban:
komoly nagy programok megtervezése, amit majd szakértő, nyelvspecifikus
gyakorlattal rendelkező programozók lekódolnak, vagy maga a kódolás, az egyes
modulok, osztályok kódjának az elkészítése. Mindkettőnek megvan a maga
szépsége, persze nem tilos a területek átjárása sem - tervezés közben én is
sokszor nekiülök egy-egy rövidebb kód elkészítésének, és mindig örülök, ha
sikerül új, nyelvspecifikus megoldásokat találni.
Egyébként nem olyan vészes több nyelv megtanulása sem. A C-nyelvek
csoportjában (például C, C++, Visual C++, Java, PHP) sok az átfedés és aki ért
a Pascalhoz az a Delphibe természetesen nem fog belebukni. A több nyelv tudása
pedig az átfogó tervezési ismereteket erősíti.