2016. március 28., hétfő
Az ismeretlen PHP web programozó visszaemlékezései Gombok, monitorok Tűnődések, karriertanácsok
"Már rég nem leszek, mikor még kódjaim futnak valahol."
Előszó
Halványodnak az emlékek, de ha valami régi dolog eszembe jut, később már a hozzá kapcsolódó részekre is kezdek emlékezni.
Az írás közben egyszer eljutok oda, hogy most miért használok szívesen Zend Framework 2-t vagy Symfony 2-t a PHP kódjaimhoz, de barátként tekintek minden más webes dologra. pl: ThreeJs, stb. Miért jó programozni.
A kezdetek
A programozással 1986-ban a BME -n gépészmérnök hallgatóként kezdtem ismerkedni.
Stencil nyomdagépen készült, írógép betűkkel szedett jegyzetünk volt. BASIC nyelven pötyögtük be programjainkat a HT számítógépbe.
Fél méterről néztünk egy normál televíziót. Az volt a monitor.
Talán még abban az évben a szüleimtől az egy öcsémmel együtt kaptunk karácsonyra egy Commodere 64 számítógépet.
Sokat játszottam rajta, de már írtam hosszabb makaróni programokat BASIC-ban.
A fenti képen floppy lemezes tároló van. De nekünk olyan gépünk volt, amin a programokat kazettás magnó szalagra lehetett tárolni.
A TV-ben voltak számítástechnikai műsorok, aminek a végén BASIC programokat sugároztak, osztottak meg. Ekkor visító hang hallatszott a TV-ből, amit kazettás magnóval is lehetett felvenni. Majd a gépbe betöltve megjelent a program.
Az újságokban is közöltek BASIC programokat.
Emlékszem egy véletlenszám generáláson alapuló játékprogramra.
Nagy nehezen begépeltem. Futáskor kiderült, hogy tele van szintaktikai, szerkezeti hibával.
Talán ezek voltak az első nagyobb debugolások.
A BASIC valamelyik fejlettebb változatában készítettem egy 3D szimulációs programot.
Az XYZ tengely (0,0,0) pontjában áll egy ház (drótváz). Kocka az épület a tető egy háromszög alapú hasáb.
A kamera nézetet joystick segítségével lehetett irányítani. X távolságra a háznak különböző nézete volt látható.
A ház kamera felé eső vetületét 3D koordináta geometriával számoltam ki.
Azt hiszem, ez volt az a projekt eddigi pályafutásom során, amikor valami komolyabb matematikai ismereteket kellett alkalmaznom.
Később tanultam Dbase-t XT-n. Talán még Clipper-be is belekezdtem.
Nyomdamérnökként végeztem, diploma után a Glóbus Nyomdába kerültem.
Itt találkoztam egy saját fejlesztésű c-64 basic programmal, ami termelés irányítást hivatott gyorsítani.
1992 körül különösebben nem vonzott a programozás. Nem volt még internet. Monokróm monitor előtt ülve több ezer sor kezelésének, faragásának látszott.
Talán ez a filmrészlet mutatja az akkori állapotot:
https://www.youtube.com/watch?v=fpuijKR-054
A számítógépes kiadványszerkesztés, grafika érdekelt inkább. Ventura kiadványszerkesztő programot ismertem meg először, ami PC-n futott. Voltak jobb programok, de azok csak Macintosh gépen voltak elérhetők, de azokon hosszú évtizedes nyomdai előkészítő tapasztalat után (analóg retusőr, reprodukciós fényképész) csak a legjobbak közül kiválasztottak dolgozhattak.
Abban az időben még nagyon megbecsült szakma volt a szkenneres, a scanner gépen dolgozó nyomdász.
Monitor egyéb kalibraló eszköz nélkül, a képen adott szín foltokat kiválasztva, egy színkeverő pulton állította be a szín komponenseket, kontrasztot.
A beszkennelt gép azonnal filmre lett "világítva". Számítógépre nem lehetett csatlakoztatni. Kézi montírozással, fóliára celluxszal ragasztgatva került a kiszedett szövegek közé. A szövegeket egy oszlopban kiszedték, majd ollóval vagdosták meg.
Én ebben az időben (~1994) egy hatalmas Klimsch reprodukciós kameránál dolgoztam, de probáltam a Macintosh géphez is odafurakodni, mikor nem dolgoztak rajta.
Macintosh-on Photoshop 2.5 programot használtam először. A korábbi verziónál még nem volt layer kezelés, itt jelent meg először. Imádtam a szűrőket, filtereket.
Szeretek rajzolni, így amikor lehetett a gépen "lógtam".
Közben megtanultam a Freehand (Illustrator -hoz hasonló), QuarkXPress használatát.
Egyszer egy ismerősöm szólt, hogy keresnek egy kiadványszerkesztő stúdióba nyomdamérnököt.
Felvettek, 1996 decemberében. Itt találkoztam egy Scitex mosógép méretű síkágyas szekennerrel.
A szokásos kiadványszerkesztés, grafika, levilágítás, szkenner munkáim voltak.
A főnököm mondta, hogy jó lenne, ha internet oldalakat is tudnék készíteni.
Mivel mérnöknek tanultam, így ez nekem menni fog.
"Segítségül" kaptam egy Silicon Graphic Indigo gépet.
Floppy bemenete nem volt.
Egy UNIX verziójú operációs rendszer futott rajta.
Kínlódtam a Macintosh gépen készült fájlok konverziójával. Ami Mac-on jó volt, az az Indigon-n nem jelent meg. Külön FTP-vel kellett felmásolni a képeket.
Kértem, a főnöktől egy PC-t.Azt hiszem Windows 3.1 volt, de Windows NT lett rajta később.
Pár hónappal később elvitték az Indigo-t, mert csak kipróbálásra volt ott.
Sajnáltam, volt a Silicon Graphic-nak egy nagyon jó VRML 3D model szerkesztő programja, ami a böngészőben megjelent (1996-ban).
Cosmo World volt a program neve.
Pl. egy kockára renderelhettél képet videót. Belinkelhettél másik 3D VRML oldalt vagy HTML oldalt. Igaz, csak az én gépemen futott jól. Egy normál PC-n lassan vánszorgott az animáció. :)
Érdekes volt a VRML tanulmány, de rájöttem, hogy olyan weboldalt kell készíteni, amit nem csak én tudok megnézni.
Elmélyedtem a HTML szerkesztési ismeretekben. Ekkor még nem volt CSS.
Javascriptet az Internet Explorer 3 (? ) még nem támogatta.
Netscape Navigátort töltött le minden net szörfös.
1998 körül már voltak webszerveren futó programjaim Perl-ben. Perl-t saját gépen is használtam, amikor Word HTML oldalakat kellett tömegesen tisztítani. Azt hiszem, ekkor kerültem újra barátságba programozással. Rengeteg időt takarított meg a kézi munka kiváltása. A webszerveren futó programjaim TXT " adatbázisból " vették az infót.
Köszönetet kell mondanom a Freeblog vállalkozásnak. Úgy tudom, ők engedték először szerveroldali program futását. Kezdetben csak Perl-volt.
Később PHP 3 futott. PHP verziók
Ingyen MySQL adatbázisra még várni kellett.
Volt egy nagyszerű PHP CMS TXT adatbázissal. Úgy tudom, Textportálnak hívták.
2000 körül divat volt a Macromedia Flash 2 ?( Adobe megvette) programokkal Full Flash oldal gyártás. - A kereső meg találja meg, ha tudja.
Actionscript, animáció, háttérzene dögivel.
SEO még nem nagyon volt. Névjegykártyán ott volt a webcím, oszt pötyögd be a gépeden. Örülj, ha megjelenik. Ha nem, akkor tölsd le a Másik böngészőt és/vagy plugint.
Ennek a szakmai dagonyának az Első Magyarországi PHP Konferencia vetett véget 2003-ban.
Az elsőre még nem tudtam elmenni. Egy kollégám számolt be róla lelkesen.
Meghallgattam a hangfelvételt, illetve megnéztem a prezentációs anyagokat.
A PHP Smarty template rendszer tetszett leginkább. Pár héttel később egy projektemben már elkezdtem használni.
Előkészületben:
Múló évek - képzés a Gábor Dénes főiskolán
Szakmérnöki képzésen vetten részt itt. Sokan kritizálták/kritizálják, de nekem összességében hasznos volt.
Abban részt vettem egy érdekes fejlesztésben. A céges webszerveren csak Perl volt, adatbázist, PHP-t nem lehetett telepíteni, mert vállalati informatikai vezetés nem tartotta biztonságosnak. Az adatbevitel a kliens gépeken MS Access alatt történt, amiből az adatok RTF-be (?) lettek exportálva, amit a Perl dolgozott fel.
PHP-Nuke, Drupal, Joomla, WordPress - BUY Viagra
Foglalkoztam CMS rendszerek fejlesztésével. Feltelepítés után órák alatt létre lehet hozni egy elfogadható kinézetű bemutatkozó weboldalt. A probléma akkor kezdődik, ha valami egyedi megoldásra van szükség. Bőséges Plugin-tár van mindegyiknél, aminek a forráskódja nyílt így lazább programozás esetén feltörhető.
Nem torta, de nagyon jó: CakePHP
Az első php keretrendszer, amiben gyorsan tudtam dolgozni, sok projektet tudtam készíteni.Parancssorból lehetett az új projektet létrehozni, táblákat, controllert, modelt, view-t, CRUD funkciókat létrehozni.
Korábban a ADO adatbázis réteg és Smarty template rendszer adta alapot a programhoz.
Microsoft térítés: ASP.NET, Silverlight, C#
Azt hittem, hogy ilyen csak a gyanútlan kisnyugdíjasokkal történik meg, hogy busszal elutaznak Visegrádra 500 forintért és útközben rábeszélik őket bioptron lámpára, gyapjú takaróra.
Egy webkonferencián betévedtem egy előadásra, ahol egy hölgy a programozók karrierjét elemezte.
Megállapította, hogy .NET programozók többszörösét keresik a PHP programozóknak.
Nosza, gondoltam, belevágok a .NET, C# tanulásba. Egymást követték a C#, Silverlight, XNA tanfolyamok, WPF előadások. Különösen a Silverlight fejlesztés érdekelt, építettem vele képmontázsoló, rajzoló Facebook alkalmazást. De időközben láttam, hogy zsákutca, csak Windows alatt működött, a Linux változata a Moonlight csak döcögött a nyomában.
A "Flash gyilkos" HTML 5 már megjelent. 2008 -as gazdasági válság az open source kis költségű alkalmazás készítésnek kedvezett. Microsoft 2011-ben leállította a Silverlight fejlesztést. C#-ben írtam magamnak alkalmazásokat, nagyon hasonlított a Java-ra. Ma már csak egy emlék a Visual Stúdióban történt munkálkodás.
Android programozás tapasztalatok
Android programozást is tanultam a webről. Építettem egy egyszerű alkalmazást, ami a Google Play-ról letölthető.
Játék fejlesztésre nagyon jó, de üzleti alkalmazás a webes felületen is megjeleníthető. A felhasználók az x+1 ezredik programot már nem fogják telepíteni a telefonjukra.
Halálcsillag fejlesztés
Van egy szuper ötleted/ötletetek. Tanulmányt készítesz, kutatsz, úgy gondolod, hogy milliók fogják használni a programod. Nagy titokban több hónapig fejleszted.
Feltelepíted, publikálod. Néhányan megnézik, de rendszeresen senki nem használja.
Ismerős?
Jó szoftver sikerének titka elég összetett dolog. Itt egy videó a témáról. http://prog.hu/mediatar/video/273/Jo+szoftvert+akarsz+csinalni+Ne+hallgass+a+felhasznaloidra.html
Linux, VPS, Ubuntu server
Kipróbáltam már néhány hazai tárhelyszolgáltatót.
Biztonság miatt, sok minden nem engedélyezett a tárhelyen.
Érdemes a Linux-ban is tájékozott lenni. Ha van egy sikeres projekt, akkor azt érdemes inkább saját webszerverre, VPS-re rakni.
Zend Framework, a gigantikus könyvtár
~2010: CakePHP keretrendszer még mindig PHP 4 alapú volt. A CakePHP 2 még mindig alfa állapotban volt. Fejlesztői fórumokon egyre több olyan bejegyzés volt, hogy aki korábban Cake-ben kódolt átállt Symfony-ra. Megnéztem a Symfony-t. Talán az nem tetszett, hogy nem önálló könyvtárai voltak, hanem a PEAR-ra épült.
Zend Framework-ban lassabb volt a projekt létrehozása. Később gyorsult fel a fejlesztés. Mikor már több projekt készült vele, a megfelelő modellek, helperek átmásolával időt spóroltam meg.
Zend Framework 2 , Symfony 2, Laravel
Mindegyiket kipróbáltam.
Zend, Symfony évek óta ismert keretrendszer.
Laravel 2014-ben népszerű. Pár év múlva is az lesz?
Yii, Kohana, CodeIgniter ... Ezeket ma már nem érdemes tanulni.
Gerillaharcos vagy csapattag?
Ha van egy jó fejlesztőgárda, ahol szabványok szerint megy a fejlesztés, korszerű csomagokkal, akkor jó csapattagnak lenni.
De van olyan "csapatmunka", hogy másik jelenleg nem elérhető fejlesztő hibásan működő nem dokumentált/kommentelt kódjából kell kitalálni, hogy mire való.
A használt programcsomag már évek óta korszerűtlen. Csak arra van idő, hogy a hibás részt újra működő állapotba hozzad - ez a gerillaharc.
Karajszeletek gazdagon
Van amikor úgy érzem, hogy nincs megfelelően honorálva a munkám.
Ilyenkor általában az a gond, hogy tudnának többet fizetni, de nincs rá elég fedezet.
Mint a viccben, mikor a kontrás nem kap elég pénzt és kérdezi a prímást.
- Nekem több nem jár? -
A válasz: - Járni jár, de nem jut. -
Ilyenkor végig kell gondolni, hogy jó helyen vagyok-e, milyen változtatásra van szükség.
....
Nyugdíjas évek No Future
60-70 éves koromig, életem végéig programozni fogok? Elképzelhetőnek tartom. Elképzelhető, hogy egyre több olyan robot lesz, amit programmal lehet vezérelni.
Ahány ház, annyi igény beállítási lehetőség. Biztos abból is lesz fizetős és olcsóbb, open source megoldás.
Tippek
Nem szeretnék tanácsot adni, mert nem futottam be eddig nagy karriert, valószínű, hogy a hátralévő életemben sem fogok.
Arra rájöttem, hogy ehhez a munkához sok türelem kell. Lehetőleg a szabványok, ajánlások szerint kell dolgozni. Nem szabad átváltani gagyi üzemmódba, hogy minél előbb elkészüljön. Nem csak a kinézet számít. A programnak áttekinthetőnek kell lenni. Érdemes valami népszerű jól dokumentált keretrendszerben dolgozni, ami nagy alkalmazásokat is tud kezelni.
...
Sumákok
Fejlesztők között is lehet, de sokáig nem, de irányítói, szervezői poszton annál több.
Az ember bizalmat próbálja megnyerni, tudásához képest többnek láttatja magát. Titkol, elhallgat, információt ferdít.
Specifikációi hiányosak. Szerződéseit óvatosan kell kezelni. 100%-ot követel, de mindig kevesebbet ad.
Általában szegényen távoznak tőle, pórul jár vele az ember.
Akiről ez egyszer kiderült, annak nem érdemes még egy esélyt adni.
Az a biztos, ha az új munkakapcsolatokat megfelelő távolságtartással kezeljük pár hónapig.
Legyen egy naplód, amibe az ötleteid vezeted
Böngészd a munka kiírásokat, álláshirdetéseket, hogy milyen tudásra van igény.
Nagyon jó, ha vannak fejlesztő barátaid, ismerőseid, akivel ~ hasonló tudásszinten vagy. Tudjátok segíteni egymás munkáját.
Sajnos a hazai piac egyre szűkül. ....
Sportolj. Nekem a futás jött be.
Jó ha van egy/több hobbid.A hobby az idő élvezetes eltöltésére való.
Szeretek gitározni, de nem törekszem, hogy mások számára is élvezhető zenét játsszak.
A kreatív időtöltés mindig feltölt ötletekkel, energiával.