Programistą WWW być…

Mogłoby się wydawać, że nie ma nic prostszego niż pisanie stron WWW. Tak, są edytory WYSIWYG, PHP jest prosty i tak dalej. Sama przyjemność. Ostatnio uświadomiłem sobie, że programista WWW ma najtrudniej ze wszystkich programistów. Nie wystarczy znać jeden język, czy technologię, trzeba użerać się ze standardami, a właściwie ich niespełnianiem przez przeglądarki, nie można całego kodu debugować w jednym miejscu. Ale po kolei:

Programista WWW:

  • musi znać:
    • co najmniej jeden język server-side, na przykład PHP
    • co najmniej jeden język client-side, choć w sumie można poprzestać na JavaScript
    • HTML ze wszystkimi jego zawiłościami jak DOM i tak dalej
    • CSS
    • SQL aby móc coś z bazy danych wyciągnąć lub włożyć
    • podstawy projektowania interfejsów
    • różnice w interpretacji standardów przez przeglądarki
  • powinien znać:
    • technologie łączące serwer i klienta lub poszczególne moduły, takie jak:
      • AJAX
      • XML
      • SOAP
      • XSLT
    • co najmniej dwa debugery i profilery: jeden dla serwera drugi dla klienta
  • musi orientować się w:
    • obsłudze baz danych aby móc bazę utworzyć
    • najnowszych rozwiązania w tej dynamicznej dziedzinie
    • konfiguracji serwera WWW
    • konfiguracji serwera baz danych
  • musi użerać się z:
    • bełkotem marketingowym typu Web2.0
    • tym cholernym IE
    • tym nieszczęsnym FF
    • tą dziwaczną Operą której nikt nie używa
    • małym wyborem jeśli chodzi o dojrzałe narzędzia programistyczne
    • że nie może debugować całej aplikacji w jednym miejscu, bo część się dzieje po stronie serwera, a część klienta, i nie są to te same języki
    • standardy sobie, a przeglądarki sobie
  • musi zdawać sobie sprawę, że:
    • jego dzieło mogą zobaczyć miliony
    • zawsze znajdą się malkontenci
    • za pół roku wyjdzie nowa wersja przeglądarki i jego strona może nie działać
    • zawsze znajdzie się przeglądarka na której coś nie działa jak powinno

Nie jest to pełna lista. To tylko te rzeczy jakie przyszły mi przed chwilą do głowy

Szczerze? Mamy przesrane….

44 comments

  1. Kuźwa skąd ja to znam :/ wrr… Niestety nikt się tym nie przejmuje (oprócz nas samych) myśląc, że to takie łatwe jak bułka z bananem na którego skórce ustawicznie się ślizgamy.

  2. Hmm, ja sam pracuje jako programista WWW i nie do konca sie zgadzam. Owszem uzeranie sie ze standardami to problem, ale problemy stwarza praktycznie tylko IE. Co do znajomosci roznych technologii – jest tego troche ale sa to rzeczy proste. Wyobraz sobie programiste J2EE, ktory pracuje nad jakims sporym projektem, mysle ze technologi, protokolow, standardow i innych cudow byloby 3 razy tyle. Zazwyczaj do tego dochodza zagadnienia wielowatkowosci, obslugi pamieci, znajomosci sprzetu, itp…

  3. Etam, przesadzasz 😉
    My pracujemy jako kilkuosobowy zespol:
    – projektatn www (html/css/js i czasami PS)
    – programista PHP
    – programista PHP/Ruby
    – administrator

    Kazdy ma swoja dzialke, ktora dlubie i wszyscy sa zadowleni.
    Tacy, co umieja wszystko, to ludzie, ktorzy zgarniaja projekty za 500,00 PLN i sila rzeczy MUSZA znac wszystko aby zarobic na zycie. Ot co.

  4. Chyba jednak nie przesadzam. Jasne, będąc programistą PHP nie muszę być grafikiem i koderem HTML, ale jak akurat projekt nie zakłada XSLT czy jakichś templatów, to trochę tego kodu trzeba pacnąć. No i nikt mi nie wmówi, że osoba od html’a będzie mi pisać JS’y pod część client-side :)

  5. > No i nikt mi nie wmówi, że osoba od html’a
    > będzie mi pisać JS’y pod część client-side

    W moim przypadku wlasnie tak jest 😉 Nie tykam server-side, bo nie lubie, mowie tylko, co ma byc a caly interfejs programuje ja od strony klienta pisze ja.

  6. @Piotra: niestety w mojej specjalizacji taki numer nie przejdzie. Client-side jest zbyt związane z server-side i nie pozwolę żadnemu html’owcowi pisać mi JS’ów innych niż te tylko od wyglądu (a tych u mnie jest najmniej)

  7. @Dziku
    Hmm, moze wynika to z tego, ze jakies tam pojecie mam odnosnie server-side. Tzn. umiem wyciagnac dane 😉

  8. A na końcu ktoś stawia Joomla i wygląda to lepiej niżwasze strony 😀

  9. @eltommo
    Naprawde… naprawde, wpisalbys zamiast Joomla cokolwiek innego… i mialbys choc cien szansy, ze przyznam ci racje 😉

  10. po 8 godziach klepania kodu, zarzadzania zespolem, pisaniu dokumentacji i walki z dzialem marketingu nie mam ochoty bawic sie we wlasne i ladne cmsy. dobrze ze moje strony nie sa widoczne przez zwyklch uzyszkodnikow. ot, takie tam aplikacje biznesowe dla korporacji i innych :)

  11. Jak możesz tak łagodnie ocenić IE? xD

    I tak opisałeś tylko część pracy przy systemie, jak Ci jakiś koleś wyjedzie jeszcze z design`em strony, to już wogóle mamy przesrane, wymyśleć, zaprojektować, pociąć, zrobić system. Przewalone 😛

  12. Rację masz, że musicie wiedzieć dużo. Ale bzdury pieprzysz, mówiąc, że macie najciężej. Fakt, taki standardowy koder, coby coś porządnego zaprogramować, to wystarczy jak umie C++ z C, czy jakieś inne C# albo Delphi. Ale jeśli wydaje Ci się, że na tym koniec, to się dziwisz. Wy macie mnóstwo różnych niewielkich języków programowania, my mamy mnóstwo bibliotek pisanych przez różnych dziwnych ludzi, z których każda ma własny design, który musisz rozgryźć. I jak to bywa u programistów, na bank nie znajdziesz doń porządnej dokumentacji. I tak kodowanie samemu trwa minimalną ilość czasu, w porównaniu do tego, ile przeżerasz się przez czyjś niezrozumiały kod, by rozkminić najprostszą funkcję, bez której jednak ani rusz. A potem dodajesz kolejne biblioteki, i kolejne, i kolejne, i zanim framework będzie jako-tako stabilny okazuje się, że musisz przepisać cały kod na nowo, bo to co działało pod biblioteką, dajmy na to, graficzną gryzie się – choć nikt nie wie czemu – z biblioteką muzyki. I na nowo piszesz wszystko, znów przedzierając się przez chaszcze czyjegoś pokrętnego rozumowania.
    POdsumowując mój przydługawy wywód, każda dziedzina programowania ma swoje wzloty i upadki. Ciężko jednoznacznie stwierdzić, który programista ma najgorzej. Ale za to z całą pewnością mogę stwierdzić, że na pewno nie webdesigner ;P

  13. nie ma co się łamać, będzie jeszcze gorzej :)

    ps. do listy dorzuciłbym jeszcze różne systemy operacyjne, zainstalowane w nich różne zestawy czcionek,które również wpływają na wygląd serwisu. W skrajnych wypadkach brak. ariala/tahomy itp na Linuksie + jakieś ichnie wygładzanie potrafi rozsypać całą stronę 😀

  14. projektuje i implementuje serwisy www i nie zgodze sie to robota jest jak najbardziej wkurzajaca ale jest to stanowczo najlatwiejsze tworzenie oprogramowanie nie ma co porownywac do c++ tez musisz umiec bazy danych, sql mase bibliotek, tony wrecz a w przypadku javy i np EE5 to bys sie powykrecal jaka ilosc informacji musisz posiadac to sa 100 klas bibliotecznych nic nie zrobisz jedna 2 czy 5 linijkami tez sa webservisy tez musisz umiec budowac interfejsy i znac jakies gui swing, swt, wxwidget, mfc i do tego winapi

  15. Znac same języki to jedno … a gdzie wzorce projektowe, filozofia programowania obiektowego, system wersjonowania kodu, masa zewnętrznych bibliotek, zagadnienia dotyczące bezpieczeństwa, kodowanie znaków, usability i sto milionów innych rzeczy 😉

  16. AJAX jest złym przykładem. Dzisiaj częściej się używa AJAJ bo XML to zło i w js łatwiej się obrabia jsona niż XML. XSLT można całe życie nawet o tym nie usłyszeć, ja używałem tego raz aby drukować raporty w pdf. Tzn XHTML -> TeXML -> latex… ale bez tego bym się obszedł. Próby używania dziś tej technologii do tego do czego była stworzona nigdy mi nie wyszły. Sprawdźcie sobie jak wygląda poprawność xml generowanych przez 75% sklepów internetowych to dowiecie się dlaczego :).
    Co do debugerów, to jestem w tej szczęśliwej pozycji, że programuje w pythonie więc debuguje się miodzio, js’y w aptanie to też miodzio, po kilku latach przekliniania ,,dlaczego ten js w ie *^@$!!!” i dorobienia się dobrych nawyków ie friendly można się obejść bez osobnego debugera dla ie.
    Całą tę listę można odchudzić o połowę pracując z grafikiem, i kolejny kawałem mając wyrozumiałego administratora.
    Z zarzutem, że nie ma dojrzałych to się nie zgodzę, są i działają świetnie. Ja używam eclipse + aptana + pydev + (niestety) phpeclipse + subclipse. Nigdy nie miałem wygodniejszego środowiska do tworzenia aplikacji.

  17. Tzw. „Programista www” to najniższe ogniwo w programistycznym łańcuchu pokarmowym. Łańcuch ten z kolei jest najmniej poważana działka w całym IT (no, może testerzy i helpdesk mają gorzej, ale to już robotnicy). Wnioski są oczywiste- duże wymagania i mało w zamian :)

  18. Mała dygrejsa. A ja jestem wiertaczem… Pracuje na platformach wiertniczych (tak generalizując). I nie wiem kto tu ma bardziej przesrane 😀 pozdrawiam kolegów za biurkiem

  19. > Tzw. “Programista www” to najniższe ogniwo w programistycznym
    > łańcuchu pokarmowym. Łańcuch ten z kolei jest najmniej poważana
    > działka w całym IT (no, może testerzy i helpdesk mają gorzej, ale to już
    > robotnicy). Wnioski są oczywiste- duże wymagania i mało w zamian :)

    I tu się mylisz, programista webowy niewiele różni się od zwykłego programisty. Ja mimo, że piszę aplikacje webowe uważam siebie za zwykłego programistę. Klienci coraz częściej wybierają aplikacje webowe, zastępujące zwykłe aplikacje biznesowe, bo łatwiej nimi zarządzać i je utrzymywać.

  20. Masz racje, ale często jeszcze „programista webowy” = gość od HTML/JS/PHP. Do J2EE trudno to porównać. Nie ten prestiż, nie te zarobki.

  21. >Tzw. “Programista www” to najniższe ogniwo w programistycznym >łańcuchu pokarmowym. Łańcuch ten z kolei jest najmniej poważana >działka w całym IT (no, może testerzy i helpdesk mają gorzej, ale to już >robotnicy). Wnioski są oczywiste- duże wymagania i mało w zamian

    Mój profesor mawiał, że najniżej w hierarchii jest sprzedawca w sklepie komputerowym, potem helpdesk , testerzy itp… Jeżeli klasyfikujesz ludzi wg tego co robi, to dziękuję, ale nie jesteś zbyt mądry pomimo posiadanej jakiejś tam wiedzy. Ja osobiście lubie ludzi z helpdeska. Mam problem, dzwonie i mi robią, a ja w tym czasie mam przerwę :). Mam wystarczająco dużo przemyśleń i zagadek do rozwiązania, by jeszcze męczyć się z hardware czy OS. A i taki sprzedawca jest pożyteczny, po co czytać setki testów by wybrać jakąś grafikę, on (sprzedawca) już to zrobił za Ciebie, wystarczy się zapytać :). Ale jeśli Ty patrzysz na niego z góry i ze wzrokiem pożałowania, to nie licz na jego uprzejmość i dobrą radę. Życie trzeba sobie ułatwiać.

  22. A co do IE, zwłaszcza IE6, to nie ma lepszego testera pixeli :)

  23. Programista www musi do tego bardzo często mieć gust i wyczucie artystyczne, znać się na kilku programach graficznych (obowiązkowo). Generalnie ze względu na charakter pracy i tworzonego oprogramowania zwykły programista www musi wiedzieć dość dużo.
    Dlaczego tak jest? Popatrzmy na ogłoszenia o pracę dla „programistów www”. Jedną z kanonicznych formułek jest „php+js+AJAX+(html css), dobra znajomość programów graficznych”. Tyle tylko, że w ten sposób nie wiadomo czy pracodawca potrzebuje webmastera czy webdevelopera. Musisz zatem być i jednym i drugim… programistą www.

    Dziwne, że w ogłoszeniach javowych/c#owych nie ma takich śmiesznych klauzuli i wiadomo, że devel jest devel a webmaster webmaster.

  24. wiecie nie w tym rzecz kto ma ciezej… w tym rzecz ze programista web jest traktowany jako nizsza kategoria i zarazem duzo mniej zarabia mimo porownywalnych nakladow czasu i pracy na ogarniecie konkretnej wymaganej wiedzy i najwazniejsza rzecz:

    te niezczesne przegladarki i nie chodzi tylko o „rozjezdzanie CSS i HTML” bo to banal najgorsze jest gdy piszesz cos np. w JS i w Operze smiga… w FF w miare…. a w IE nie dziala… nie ma czegos takiego jak u programistow np C++ piszesz raz.. dziala?? dziala? tylko 3-4 albo wiecej rpzegladarke w tle… kilka linii kodu sprawdzasz… i potem szukasz dlaczego nei dziala w IE6 i jak to obejsc…

  25. „Kazdy ma swoja dzialke, ktora dlubie i wszyscy sa zadowleni.
    Tacy, co umieja wszystko, to ludzie, ktorzy zgarniaja projekty za 500,00 PLN i sila rzeczy MUSZA znac wszystko aby zarobic na zycie. Ot co.”

    Taaa…. to poczytaj oferty pracy HTML/CSS/PHP/JS/XHTML/XLS mile widziana osbluga Flash i Action Script, Ruby, ASP i cholera wie co jeszcze…

    rynek jest taki powalony wlasnie ze nie mozesz sie wyspecjalizowac w jednej dzialce bo wymagaja od Ciebie wszego, no chyba ze masz farta albo kogos znasz co Cie poleci…

    choc w praniu i tka wychodzi… ze tluczesz jakies pierdoly ale wymagania maja ho ho… i najpierw musisz sie na etat zalapac

  26. Radziłbym używać nazw „web developer” oraz „web designer”. Uważam, że te nazwy najtrafniej charakteryzują osoby siedzące w tym fachu, a nie jakiś programista www. Kto to taki programista www? Czy on programuje www, pracuje w NASK czy gdzie?

  27. Taką rozpiskę mógłby przygotować też bazodanowiec, backendowiec, projektant i każdy inny kto w działce IT coś _tworzy_. IMHO lista nie była by krótsza lub mniej problematyczna. Taka już specyfika tworzenia czegokolwiek, że środowisko umie czasem mocno sprowadzić na ziemię.

  28. Pewnie na jakimś etapie tak to wygląda. Jednak po 2-3 latach dochodzisz do wniosku, że nie jesteś w stanie w żadnej z tych dziedzin osiągnąć takiego poziomu specjalizacji, żeby powiedzieć sobie z czystym sumieniem : ” kurde, dobry w tym jestem”. Wtedy skupiasz się np. na programowaniu server-side, a od interfejsu znajdujesz designera.
    Drugi wariant – nie dochodzisz do takiego wniosku i dalej próbujesz orientować się we wszystkim, spędzasz nad projektami 20 godzin dziennie, nie masz życia ani satysfakcji z pracy, bo zawsze zobaczysz albo efektywniejszy kod w PHP, JS albo ładniejszy interfejs :-)

    jak sobie pościelesz, tak się wyśpisz. Spójrz z drugiej strony : jaką masz dowolność, na mainframe’ach nie ma tylu języków do wyboru :o)

  29. Sporo w tym racji… ale odnosze wrażenie, że połowa to głupoty 😉 Zainstaluj Visual Studio 2008 i połowa Twoich problemów zniknie: debuggery, edytory, ajax, itp. Choć po części trudno się z Tobą nie zgodzić: różnice w przeglądarkach i tym podobne kwiatki.
    Ale z drugiej strony pisałem dużo na okienka i tu też jest niezły koszmar :) ustawienia komputerów, wielkości czcionek, rozmiary ekranów, itp. Każdy z tych elementów może wystrzelić całe formularze w powietrze.

  30. Zapraszam do świata enterprise, jak ktoś tu zauważył. Standardy standardami, ale do tego dochadzą wymagania prawne, zgodności systemów, SQL w bazie danych jest kawałkiem układanki: dodaj procedury, replikacje. Sprawdz jak sie aplikacja skaluje, może jakas szyna integracyjna, dodaj jaki access manager oraz tony dokumentacji jak się ma szczęście. I jedyne co troche pomaga to role w projektach, gdzie są analitycy, projektanci (w sensie uml itp a nie designer), developerzy, testerzy. Ach to tylko produkcja, a jeszcze wdrożenie potem utrzymanie. O to tylko software, dodaj do tego hardware dedykowany 😀
    I tylko skaczesz pomiedzy Enerprise Architect a Rational Application Developer.
    Z innej beczki to każdy developer stara sie wykożystywać instniejący kod, oraz specjalizować się w jednej dziedzienie.
    Fakt, my developerzy mamy przesrane.

Dodaj komentarz

Twój adres email nie zostanie opublikowany.

This site uses Akismet to reduce spam. Learn how your comment data is processed.