Błędne założenia o rynku IT z perspektywy juniora
Programowanie w pracy będzie satysfakcjonujące
Lubię programować i to bardzo, ale niestety okazało się, że pisanie kodu w pracy nie jest tak samo satysfakcjonujące jak klecenie własnych projektów w domu. Nie jestem typem programisty, który czuje wielką satysfakcję z samego faktu rozwiązania danego problemu, ważniejsza jest dla mnie domena i radość z budowania czegoś własnego.
Ktoś będzie mnie sprawdzał
Myślałem, że skoro zaczynam to będę w jakiś sposób kontrolowany i sprawdzany, oraz że będę mógł liczyć na pomoc doświadczonych kolegów. Okazało się, że wszyscy są bardzo mocno obłożeni pracą, więc nas juniorów pozostawiono samemu sobie. Efekty tego były naprawdę opłakane. Jeden kolega junior prosił o pomoc przypadkowych ludzi z IRCa, ja się wspomagałem internetem i książkami. Co najgorsze juniorzy, sami bez nadzoru, czasami zostawali oddelegowani do zbudowania od zera projektu dla klienta. Efektem tego był niezrozumiały, cieżkoutrzymywalny kod, który jednak jakoś działał.
Dokumentacja
Dokumentacja? Co to dokumentacja. Cóż, jeszcze nie miałem przyjemności pracować w firmie, która by prowadziła jakąkolwiek dokumentację. Efekt tego jest taki, że nieraz byłem wrzucany do systemów, których nie rozumiałem, korzystających z technologii które widziałem pierwszy raz na oczy. Pal licho jeśli chodziło o małe zmiany, ale gdy musiałem przeprowadzić większe modyfikacje to ogarniało mnie przerażenie. Nawet mała zmiana potrafi spierdolić dużo rzeczy, a co tu mówić o modyfikacji czegoś większego. Testów nie było albo były napisane tak żeby być i bardziej przeszkadzały niż asekurowały. Czasami nie dziwię się, że w wymaganiach jest podawana komunikatywność - bez niej nie dałbyś sobie rady. Odpalanie git blame'a i proszenie o pomoc ludzi, którzy dalej pracują w zespole i mieli styczność z kodem to norma.
Jasne polecania
Niestety często zdarza się, że zadania pisane są bardzo nieprecyzyjnie. Okazuje się, że lekcje języka polskiego nie były aż tak bezużyteczne jak by się mogło wydawać. Prośby typu - u mnie nie działa, weź to napraw - nie są wcale jakimś ironicznym żartem, wrzucanie informacji kompletnie niezwiązanych z zadaniami również. Czasami też musisz czytać filozoficzne dyskusje nad jakąś kwestią i kminić co powinieneś zrobić. Dlatego trzeba się pytać, o wszystko. Najlepiej o każdą pierdołę, nawet najmniejszą. Niestety to się wiąże ze strachem, że zostaniesz uznany za głupiego bo jak to możesz nie wiedzieć jak powinieneś zrobić rzecz X.
Management zna się na zarządzaniu
Management interesują tylko koszty i zyski w krótkoterminowej perspektywie. Wchodzi pan Ninja do zadań specjalnych, pisze projekt w terminie a później znika. Tak zwany biznes jest szczęśliwy i gdyby mogli to by zrobili mu laskę. Ninja oczywiście przeskakuje do innej firmy i chwali się jakie to systemy nie pisał i że się zwolnił bo szuka kolejnego wyzwania. Zostaje zatrudniony i dostaje dużą podwyżkę. Tymczasem po nim wchodzą utrzymaniowcy. Ja jestem taką osobą. I patrzą na kod w projekcie i są przerażeni. Jak ja kurwa mam się w tym połapać a co dopiero coś poprawić albo dodać nowy ficzer? Poruszanie się w tym kodzie to jak chodzenie po polu minowym. Przychodzi pan z biznesu i jest w szoku - "jak tak mała modyfikacja może ci zajmować tyle czasu ?!". I pojawia się pytanie kiedy ty to wreszcie zrobisz a ty nie wiesz bo skąd masz wiedzieć. On jest bohaterem, ty nieudacznikiem.
Oczywiście hiperbolizuje, ale niestety w akapicie wyżej jest dużo smutnej prawdy. Do jednego projektu została zebrana ekipa juniorów i tak ciężko pracowali, że jeden wylądował od nadmiaru pracy i stresu w szpitalu. Projekt działał, ale był słabo napisany.
Będę czymś więcej niż robolem
Karty multisport, prywatna opieka zdrowotna, dobre zarobki, kurde nawet wyjazdy integracyjne. Do tego pokój zabaw z konsolą i oczywiście piłkarzykami. Żyć nie umierać, co nie? Tak by rzeczywiście było gdybyś nie był stawiany przed nierealistycznymi deadline'ami, nie był zmuszany do kontaktu z klientami burakami i wisienka na torcie - gdyby inni rozumieli, że jesteś kurwa tylko człowiekiem i że programowanie w danej technologii nie oznacza automatycznie, że znasz się na wszystkim z dziedziny IT. Pokój gier nie służy do gier i zabaw a do odreagowania stresu.
Work-life balance
Większość programistów, których miałem okazję poznać to pracoholicy. Siedzą po godzinach, uczą się po godzinach, czasami za darmo dokańczają rzeczy stawiani przed nierealistycznymi deadline'ami. Czasami robią to dobrowolnie, czasami nie.
Branża IT to nie jest świat dla starych ludzi, mówię o takich po 40. Ciągle coś się zmienia, wchodzi coś nowego a my jako grupa zawodowa mamy obsesje na punkcie nowości i lubimy je implementować mając nadzieję, że programowanie będzie mniej frustrującym zajęciem. Jeśli się nie osiądziesz w odpowiednio mało dynamicznej niszy albo nie przejdziesz w górę na stanowiska kierownicze to możesz mieć trudności ze znalezieniem pracy. U nas w polsce jeszcze nie ma starych programistów, ale na zachodzie mówi się o dyskryminacji ze względu na wiek - Ageizm. Jakby to śmiesznie nie brzmiało, z wiekiem mózg tępieje i już nie chce się douczać po pracy za darmo. A pracodawca się krzywi bo chce dostać gotowego robola, który mu będzie przynosił zyski.
Programowanie to sztuka a nie rzemiosło
Rzemiosło to odtwórcze klepanie ciągle tego samego. Programiści nie są rzemieślnikami. Wszystkie banalne problemy są automatyzowane i spychane do bibliotek oraz frameworków. Dobre zaprojektowanie nawet prostszych rzeczy potrafi być wyzwaniem i wymagać skupienia. Otoczenie tego kompletnie nie szanuje - ciągłe maile, wiadomości i inne rozpraszacze to norma. Styl pracy też jest niekorzystny - ciężko wbrew pozorom znaleźć pracę zdalną, a siedzenie w biurze te 8h+ nie jest niczym wyjątkowym. Nieważne, że bardziej opłacałoby się rozbić pracę na kilka bloków by mózg odpoczął albo czasami, w kiepskie dni, po prostu spasować i się przespać by twoja podświadomość znalazła optymalne rozwiązanie.