Wpis z mikrobloga

//wrzucilem raz jeszcze, bo sie tagi popsuly

Coraz bardziej wkurzaja mnie ostatnie wpisy tu i owdzie dotyczace programowania, postanowilem wiec znowu cos skrobnac.
Tym razem bedzie to cos w rodzaju Red pilla dotyczacego programowania, kariery i pracy w tym biznesie - po prostu denerwuje mnie strasznie nieprawdziwy obraz jaki tu sie kreuje, nie wiem po co (no w przypadku niektorych to wiem ;)).
#abstrakcjaprogramowania #naukaprogramowania

Zastanawialiscie sie, czemu tak wlasciwie pare ostatnich lat to wielki wysyp gier indie? Przez, zaryzykuje, dziesieciolecia poza nurtem AAA istniala sobie scena, demoscena i rozne takie - jednak wartosc komercyjna takich przedsiewziec byla niska, robili to hobbysci bardziej dla siebie niz jako "biznes". Jasne, spory udzial w tym mial internet, metody dystrybucji - ale najwazniejsze, moim zdaniem, to fakt, ze robienie gier stało się... proste. A na pewno prostsze. Sam pamietam jeszcze czasy, ze gotowych silnikow to praktycznie nie bylo, kazdy tytul mial praktycznie swoj wlasny, ew. jakis wewnetrzny danego studia. Oczywiscie, pare gier wyszlo na silniku np. Quake, ale zawsze bylo to raczej uzyte jako bibliotka i wymagalo i tak masy pracy typowo programistycznej, to samo np. Renderware, napedzajacy zarowno serie GTA 3D jak i np. Tony Hawks Pro Skater 3 i 4. Az powoli nastały czasy Unreala, pojawiło się Unity które chyba tak naprawdę bylo początkiem rewolucji. To oczywiste duze uproszczenie, ktore pomija np. powstanie całego rynku mobilnego - natomiast konkluzja jest jedna - wymagany naklad srodkow, z punktu widzenia programistycznego - zmalal zdecydowanie, a mozna i powiedziec ze powoli zanika (W UE4 da sie chyba wszystko wyklikac).

Podobnie wiec dzieje sie od dawna w branzy "programowania", szeroko pojetego. Programowanie szeroko pojete jest powszechne. Wiedza, materialy i umiejetnosci sa coraz bardziej powszechne. I jak z kazdym powszechnym dobrem - jego wartosc zwyczajnie maleje. Moze troche zabrzmie jak dziadek, ale to już "nie te czasy" - mogę tutaj przytoczyć historie moich starszych (40+) kolegów, którzy zaczynając w branży byli w stanie za roczną pensję kupić fajne mieszkanie czy nowego (co w latach 90tych znaczylo sporo) mercedesa z salonu. I, z calym szacunkiem, zaden z nich nie zalozyl fejsbuka czy innego gógla, a pracuje i pracowalo jako zwykli, najemni, że tak powiem, robole. Ba, jak mi opowiadali jakie podstawowe pierdoły robili w pierwszych wersjach Javy czy w C++ - programy do "łamania" tekstu, sprawdzania gramatyki, systemy magazynowe pod MSDOSa - slowem to, co dzisiaj przecietny student jest w stanie zrobic w dwie noce. Natomiast ich wartosc stanowilo to, ze niewiele było osób, które to potrafiło.
Szybki przeskok o 20 lat - dzisiaj wyswietlenie JPG pewno da sie zrobic w 3 linijkach, GUI sklada sie latwo i przyjemnie, no i w ogole jest. Sam pamietam czasy, gdy PHP w wersji 5 to byla supernowosc, a o rzeczach pokroju ORM sluchalo sie od kolegow ktorzy robili w Java ENTERPRISE. Potem wychodzily jakies wersje beta Doctrine, a dostep do bazy przez cos innego niz mysqlquery wymagal uzerania sie z adminami serwerow, by kompilowali moduly, co bywalo problematyczne na kernelach z lini 2.6.
I tak jak ja smialem sie z osiagniec moich starszych kolegow, tak pewnie wiekszosc z was smieje sie teraz ze skladania zapytan sql w postaci stringow i pisania wlasnych funkcji do escapowania parametrow, bo te wbudowane bywaly srednie, no i te magic
quotes.. I to definiowanie reczene kazdego pieprzonego URLa w Strutsie.. No wlasnie - to wszystko wydaje sie, a i w sumie jest przeszloscia - bo swiat poszedl do przodu. Jednak to, co jest i bylo efektem pracy programistow - zmienilo sie tak naprawde niewiele. To dalej są strony internetowe, jasne, ajaxy, bootstrapy, angulary - to wszystko sprawe ulatwia, mimo, ze skomplikowane stanowe aplikacje robilo sie kiedys w JSP a caly stan byl pamietany na serwerze. Dalej robi sie apki o zlozonosci takiej jak wtedy - tylko, ze teraz sa one mobilne ;) Jasne, upraszczam i opisuje glownie jeden fragment - ale postep automatyzacji i upraszczania jest podobny w kazdej innej dziedzinie.
W ten oto sposob dochodzimy do sedna problemu - legendy o zarobkach, pracy, zbawianiu swiata pochodza z lat, gdy byle #!$%@? wymagala mnostwa pracy. A "dzisiejsi" developerzy robia te rzeczy czasem i bez pisania kawalka kodu. Crudy, formularze generuja sie automatycznie, parsowanie XMLi to zamierzchla przeszlosc, a dobrze skonfigurowany ORM sprawia, ze znajomosc SQLa wydaje sie byc potrzebna dzieciakom, ktore "optymalizuja" swojego bloga. Otoz umiejetnosci posiadane przez typowego absolwenta dzisiejszych studiow informatycznych czy samouka - sa powszechnie. Sa popularne, proste, latwo dostepne. Sa wiec.. tanie. Realtywnie, oczywiscie. Umiejetnosc zrobienia strony "z ajaxem" juz nikogo nie bawi i nikomu nie imponuje. Chwalenie sie, ze zna sie "resta" to tak jak chwalic sie, ze umie sie zrobic nowy akapit w wordzie - dla wielu nadal to czarna magia, ale ciezko nazwac osiagnieciem.
Nie chce, bron boze, tutaj zgrywac wazniaka czy mieszac z blotem wszystkich, ktorzy zaczynaja - wiadomo, kazdy musi przejsc przez pewne rzeczy od poczatku. Chodzi mi tylko o unikanie Efekt Krugera-Dunninga - czyli zbytniego zachwytu nad wlasnymi umiejetnosciami. A o takowy bardzo latwo, bo zwyczajnie jest na niego ogromny rynek i zapotrzebowanie - ba, sa wrecz cale strony na tym zarabiajace, chociazby codeschool czy treehouse. Wszyscy to znacie, pare slajdow, uzupelnisz nazwe zmiannej i baaach, oglaszaja cie senior developerem.
Zreszta, spojrzcie na to od strony firmy - ile sami gotowi bylibyscie zaplacic za cos, czego idzie nauczyc sie w miesiac czy dwa tygodnie? Czy sami kupilibyscie swoja przelotna znajomosc Spring MVC polegajaca na przepisaniu w tutoriali z neta za 15k na miesiac? :) Znowu - nie oceniam - tylko pytam o trzezwa ocene sytuacji.
Jakis czas temu pisalem o rekutacji i pytaniu do kolesia czy dalby rade zrobic strone w HTMLu, na co ten sie oburzyl, ze jest specjalista - reakcje byly rozne - ale znowu - zastanowcie sie, w ilu tak naprawde aspektach musi obecnie byc specjalista typowy developer? W przypadku webdevu to juz nie jest jquery, nie mowiac nawet o css3 i html5, teraz nie wystarczy znac angulara - trzeba umiec go porzadnie przetestowac. Karma, jasminy, grunty. A i od jakiegos czasu JavaScript staje sie "passe" na rzecz np. TyepScriptu. Nie daj boze te testy odpalac na jakims serwerze CI, przydaloby sie miec jakies testy integracyjne np. z Selenium. A przeciez to wszystko wrzucac w GITa, opisywac taskami w Jirze czy innym cudzie, ostylowac tak, by smigalo na mobile, a i z samej optymalizacji wyswietlania moznaby ksiazke napisac. Ale bez sensownego IDE to i tak do niczego.. A przeciez jestesmy dopiero na frontendzie! I to wcale nie jest przejaskrawiony przyklad. W przypadku Javy nawet nie chce probowac wymieniac listy bibliotek i narzedzi przy sredniej wielkosci projekcie.
Znowu - nie chce tworzysz wyczerpujacej listy rzeczy ktore trzeba znac. Bo takowej nie ma i nie bedzie. Chce po prostu pokazac pewna perspektywe.

Reasumujac - to, ze kazdy dzisiaj programuje, znaczy mniej wiecej tyle samo, co obsluga komputera. 30 lat temu malo kto potrafil, dzisiaj umie kazdy - a przynajmniej kazdemu sie wydaje (jedno i drugie), ze umie ;) A to co sie umie nalezy oceniac w odniesieniu do tego, co potrafia inni, po prostu. Jesli ja dalem rade opanowac springa w dwie godziny z kursu na youtube - znaczy to mniej wiecej tyle, ze kazdy sredniorozgarniety czlowiek w tej branzy to potrafi. Czyli bardzo duzo ludzi, wbrew pozorom. I, jak w kazdej dziedzinie, osiagniecie mistrzostwa trwa, nie wszystkim sie udaje i jest droga zwykle wyboista.

A i nie sluchajcie tych, co to sie tu zaraz zleca i beda krzyczec, ze 15k to oni biora za 10 linijek kodu, a jeszcze wczoraj zajmowali sie zawodowo dlubaniem w nosie. Oczywiscie, takie pieniadze sa realne i osiagalne - tylko zwyczajnie trzeba miec wiedze odpowiednio warta, o czym zreszta jest caly ten wpis.
  • 16
@M4ks: taki trochę kubeł zimnej wody na mnie i mam nadzieję kilka innych osób. Ja jestem samoukiem, nie skończyłem studiów i pracuję jako programista. Muszę przyznać że mam kontakt z ludźmi którzy są po studiach wydają się mieć wiedzę, ale jak dajesz im jakieś zadanie do zrobienia to wymiękają, bo nie dałeś im kompletnego opisu w stylu użyj tej i tej metody która zwróci ci to i to. Weź to wszystko
Siema ile wynegocjowałbyś stawkę dla goscia z rokiem doswiadczenia zawodowego? Webdev - backend i mało front endu
Napisałeś, ze 5k netto to za dużo. W takim razie jaka kwota jest optymalna?

@kudlaty9102: jak chcesz możesz na pw napisać, tylko odblokuj pw.
Niedługo bede miał rozmowę o podwyzke i bede szukał pracy w razie niepowodzenia. Jestem jak ty bez studiow.
@petu12: napisałem to w kontekście ludzi którzy niewiele potrafią zrobić, tylko potrafią recytować formułki, być może potrafisz tyle że faktycznie zasługujesz na więcej, nie znam Ciebie i nie wiem ile potrafisz na tle swojej firmy. Ja uważam że zasługujemy na tyle ile wynegocjujemy, ale na początku sami powinniśmy się zastanowić ile potrafimy w porównaniu do innych w firmie. Ja sam boję się krzyknąć dużo bo mimo że w praktyce czasem zaginam
@kudlaty9102: wiem, ze wg mireczkow psuje rynek 2100netto here. No, ale jak oni zarabiają po 6-15k to ja sie nie dziwie, ze wszystko poniżej jest psuciem rynku ( ͡° ʖ̯ ͡°)
W każdym bądź razie, wiem, ze 2,1k zł to mało jak na rok doswiadczenia zawodowego, a w CV mam co wpisać.
taki trochę kubeł zimnej wody na mnie i mam nadzieję kilka innych osób. Ja jestem samoukiem, nie skończyłem studiów i pracuję jako programista


@kudlaty9102: takie troche bylo zalozenie. A raczej na pokazanie, czy bardziej uswiadomienie, ze nie jest to wszystko takie proste na jakie wyglada.
@M4ks: No ja miałem taki obraz tego programowania na poczatku, ale jak poszedłem do pracy jako programista to szybko ono prysło. Jest to przyjemna praca, ale czasem trzeba nad czymś w domu posiedzieć i sporo się uczyć. Wiec czasem warto się zastanowić czy zamiast programować nie lepiej iść na operatora koparki, bo można wyciągnąć podobne pieniądze, ale wracając do domu nie musimy myśleć o koparce. A programista musi się dokształcać często
@M4ks:

Po tym wpisie mam wrażenie, że starasz się zdewaluować zawód programisty. Sam robię jako klepacz kodu (studia informatyczne hir, bo taka pasja od małego), ale mam aspirację do czegoś większego. W przyszłości chciałbym badać sieci neuronowe, wymyślać jakieś rozwiązania z których będzie korzystać milion użytkowników, zajmować się AI itp.

Mam wrażenie, że wrzuciłeś tutaj wszystkich programistów do jednego wora. Nie wziąłeś pod uwagę, że są zawody w których programowanie nie
Po tym wpisie mam wrażenie, że starasz się zdewaluować zawód programisty.


@panodzupy: nie, wrecz odwrotnie.

Dlatego nie zgadzam się z tezą, że programowanie to obsługa komputera. Jeżeli tak jest, to stąd powyższe pytanie. Jak ktoś chce coś osiągnąć w IT, to jak ma to zrobić nie "brudząc się" w pracy programisty wedle Twojej definicji.


@panodzupy: widzisz, ja twierdze, ze wlasnie podstawy obslugi komputera, do ktorych teraz zalicza sie jakiestam podstawy