Programista bez studiów część 2.
Jestem programistą!
W końcu, siedziałem w biurze, była tylko sekretarka i jeden pracownik. Zaraz do tego wrócę, pokrótce opowiem o firmie: 15 osobowy software house, gdzie każdy developer jest all-in-one: frontend, backend, designer, architekt, tester, administrator serwerem. 5 osób pracowało w siedzibie, reszta u klientów w biurach. Stack technologiczny w moim projekcie to Java 8 (Spring Boot, JPA) oraz JavaScript + AngularJS. Ilość osób w zespole: ja i jeden student. xD Nieważne, wtedy mi to nie przeszkadzało, programowałem zawodowo!
Szef przyszedł jakoś godzinę później (około 10), dał mi używanego kilkuletniego laptopa HP. Sprzętowo klasyczna biurowa stacja robocza: 13", i5 + ssd. Odpalam, już większość potrzebnych narzędzi zainstalowanych przez poprzedniego użytkownika, ja ściągam tylko Eclipse'a i mam zczekałtować projekt. Pierwsza nowa rzecz: linia poleceń. Do tej pory korzystalem zawsze z GUI, ale w pracy wyszło, że CLI jest często znacznie szybsze i znacznie wygodniejsz. Nie bójcie sie tego, ze swojej strony polecam ConEmu.
Cały pierwszy dzień zszedł mi na przeglądanie kodu i granie w Mortal Kombat. Tak, mieliśmy PS2, PS3 i PS4 w biurze na których spędzaliśmy płatne 2 godziny dziennie Nic tego dnia tez ze stresu nie zjadłem, dopiero po wyjściu z pracy poszedłem do Maca btw. przez pierwsze 2 tygodnie dojeżdżałem do Poznania 100km.
Sam projekt w którym brałem udział był rozmiarów MakeShota - ~30 tysięcy linijek. Obsługa podatników dla pewnego miasta, tak w skrócie, więcej nie moge
Do komunikacji wewnątrz firmy używaliśmy Slacka, hostowanie repozytorium i bugtracking odbywał sie na Bitbuckecie.
Drugi dzień i powiem wam, że od drugiego dnia praktycznie każdy dzień był taki sam. Przyszedłem, popatrzyłem jeszcze w kod i zaczynałem się już nudzić. To szef mówi, żebym spróbował zrobić jakiegoś taska w Angularze. Spojrzałem co wisi na Bitbuckecie, zapisałem się do niego i szukałem miejsca w kodzie gdzie by naklepać. Jeszcze pokazali mi na czym mogę się wzorować i już byłem sam sobie. git commit, git push, "nice" od szefa i kolejny task. Zero code review, testów jednostkowych, kontroli jakości, ciągłej integracji, niczego Kod w repo, nikt sie nie zastanawiał czy u klienta się nie wysypie.
I tak to było. Przychodziłem rano, kończyłem co wczoraj zacząłem lub brałem coś nowego. Z reguły zadania nie były wymagające, dodanie nowego widoku do strony, kontrolera do niej, odpytanie bazy danych, ew. jakieś łatwe operacje na danych.
Nie narzekałem, aż do listopada, gdy wyoutsourcowali mnie częściowo do wielkiej korpo jako człowieka od klepania stronek w HTMLu Wtedy wiedziałem, że powoli zaczyna się stagnacja w rozwoju i czas na zmiany.
Pracowałem od maja do stycznia. Jak oceniam spędzony tam czas? Bardzo dobrze. Zobaczyłem jak wygląda programowanie komercyjne, minimum jakiego powinienem oczekiwać po kolejnej firmie.
Poszukiwania nowej firmy
Wysłałem sporo CV, zdecydowanie. Ale nie patrzyłem na to czy wymagają rok, dwa czy 5 lat doświadczenia. Słałem jak leci Nawiązując do głównego tematu, czyli studiów, tylko jedna firma, która sie ze mną skontaktowała, odrzuciła mnie z powodu ich braku - Capgemini.
Pierwsza firma z którą rozmawiałem to ponownie ~20 osobowy software house z gównoumową i gównopensją. Nie, dziękuje.
Odbyłem również rozmowę kwalifikacyjną w firmie ubezpieczeniowej, gdzie w wymaganiach mieli Jave, a okazało się, że szukają SQL developera xD Odpadłem po rozmowie z menedżerem działu, czyli na ostatnim etapie. W tej firmie nie miałem sprawdzanej wiedzy przez nikogo, posadzili mnie przy PC, dali test i miałem rozwiązać. Nikt mnie nie pilnował. Komputer internetu nie miał, ale mogłem spokojnie Googlowac z telefonu, lol. Zaprogramować proste algorytmy, napisac zapytania do bazy danych, aby wykonać jakieś polecenie. 90 minut.
Z kolejną firmą odbyłem screening telefoniczny - normalna rozmowa kwalifikacyjna z "java interview questions" oraz "sql interview questions", ale w zaciszu domowym.
Dalej: ~300 osobowy software house. Spotkanie polegało na rozmowie o programowaniu, czy wiem co z czym sie je, zero ciśnienia na szczegółową wiedze - szukali ogólnego pojęcia. Dostałem się, ale praca u klienta w jakimś frameworku Liferay. Po wygooglaniu informacji o tym podziękowałem. Ale planuje też w przyszłym roku uderzyć do nich, bo fajny klimat, fajne biuro (w kamienicy, meega!), fajni ludzie.
Dalej: eurobank. Rozmowa z HRem, zadanie domowe: napisać symulator giełdy: Java z dowolnymi dodatkami, testy jednostkowe, pełna dokumentacja. 5 dni. Nie wyrobiłem sie. Kolejna moja rada: piszcie w domu testy jednostkowe. To przez brak ich praktykowania, czy to w pracy (nie idźcie do pracy bez testów!), czy w domu, nie dałem rady. Zabrakło mi wiedzy z tego zakresu.
Ostatnia firma: pewna duża korporacja związana z telekomunikacją. Nazwy nie zdradze Rozmowa znowu z "interview questions", ale najpierw miałem do zrobienia Codility w domu: 3 zadania algorytmicznie, 30 minut każde. Spotkanie odbyło się z moim przyszłym przełożonym oraz z przełożonym systemowych architektów. Oprócz typowych pytań również pytali czego bym użył do zrobienia X albo jakie rozwiązanie bym zaproponował do czegoś innego. Czyli obycie w programowaniu i w technologii ogólnie.
Dostałem propozycje pracy na następny dzień. Zacząłem od lutego.
Jak to w tej korporacji jest, czyli...
Nie tak źle! Ba, jest świetnie. Mamy zakładane 5h pracy dziennie, bo reszta to obiad, kawa, herbata, przełączanie między kontekstami, blablalba A jak ktoś chce to konsole i piłkarzyki są.
W projektach funkcjonuje pełny Scrum, zespoły po 3 developerów i 3 testerów/integratorów. Do dyspozycji cała wuchta specyfikatorów i architektów. Codebase w aktualnym projekcie wynosi jakieś 1.7kk linijek :v Rozwijany od ponad 10 lat. Na rozmowie kwalifikacyjnej pytali coś tam o webówke, okazało sie, że tejże praktycznie nie ma - większość to czysta Java SE w wersji 7. Chyba nawet mi pasuje, poznam core języka dobrze, a frameworków mogę się zawsze douczyć TDD, code review, clean code, continous integration, cztery poziomy jakości, ogólnie pełen wypas jeśli chodzi o cały proces rozwoju produktu, nic nie powinno się wysypać u klienta. A przynajmniej nie krytyczne elementy
Dobra, robota w takiej kobyle to niekoniecznie jest coś przyjemnego - czasami trzeba poświęcić sporo czasu, żeby znaleźć miejsce w kodzie, przeczytać logi, zdebuggować, odpalić testy. To wszystko troche zajmuje, a gdy zobaczy się, że klasa istnieje od początku projektu i ma 7k linijek dokładanych po troche przez 150 osób Z powyższej listy można wykreślić "clean code".
Ale ja na szczęście trafiłem do fajnego teamu, najstarszy stażem wymyślił mi zadanie, które rozwijam od 1.5 tygodnia, gdzie mocno mnie ciśnie z dobrych technik pisania kodu i jakości. Zdecydowanie się rozwijam tutaj!
Co mnie na poczatku przytłoczyło... Nie, nie polityka korporacyjna, nie papierkologia, nie żadne głupoty wielkich firm, ale ilość wiedzy domenowej. Pracuje zaraz 3 miesiące, a nadal czasami nie wiem o czym mowa między innymi pracownikami. Również od początku miałem sporo szkoleń z zakresu sieci telefonicznych, LTE, funkcjonowania stacji bazowych i tak dalej.
Również aktualnie jesteśmy maintenance teamem, czyli zajmuje sie na bieżąco wszystkimi błędami wykrytymi przez klientów na produkcji, wszystkimi wpadami i failami całego działu Jest bardzo luźno aktualnie, bo nie mamy terminów. A jak mamy terminy i się spóźniamy (a to dzieje sie regularnie ), to też zawsze dostajemy 2-3 dni więcej, zeby nadgonić. Nikt nie bije.
Chyba nigdy nie usłyszałem "Pan" w tym miejscu. Wszyscy, łącznie z dyrektorami jesteśmy per Ty. Polubiłem to miejsce Przyznam, nie zamierzam długo tutaj się zasiedzieć, ale taka korporacja dobrze każdemu zrobi.
Stack technologiczny w projekcie: Java7, JEE (JAX-WS, JAX-RS, EJB, Servlet, JSF). Wymagana również znajomość Linuxa z CLI, bo wszystko jest na nich wirtualizowane.
Co dalej z Szinkiem?
Zostaję tutaj do przyszłego roku, następnie celuje w jakiejś średniej wielkości (< 500 osób) firmę. Koniecznie z jakimś nowym projektem, nowymi technologiami (marzenie: Java8/9, Spring, Hibernate, wstawki Groovy'ego, a później możliwość przejścia do projektu w Scali) i możliwością wpływu na rozwój produktu. Pójdę na jakieś gównostudia z zarządzania, będę sam uczył sie algorytmiki. W przyszłości chciałbym wyemigrować do Szwajcarii na jakiś kontrakt, a docelowo praca zdalna z jakiegoś kraju na południe od zimnej Europy Czy to będzie kontynent, nie wiem. Mam nadzieję, że nie.
Żałuję, że wcześniej tego nie znałem: https://forum.4programmers.net/Kariera/261802-wasze_pytania_do_potencjalnego_pracodawcy - zdecydowanie tego użyję następnym razem.
Pytajcie pracodawce cokolwiek wam przyjdzie do głowy. Rekruterzy przychylniej spojrzą, że interesujesz sie ewentualnym przyszłym środowiskiem. Szlifujcie angielski, na każdej rozmowie do drugiej pracy miałem coś powiedzieć w tym język. Poza tym ćwiczcie logiczne myślenie, rozwiązywanie problemów i algorytmike - możesz znać tone frameworków, ale jeżeli nie będziesz w stanie przenieść prostego ciągu do kodu to nie wiem czy ktoś będzie ciebie chciał Polecam ksiązkę "Algorytmy + struktury danych = programy" Wirtha, a następnie "Wprowadzenie do algorytmów" Cormena. To drugie jest kobyłą i encyklopedią, ale jak już przez nią przebrniemy, to matematyczną wiedzę ze studiów potrzebną do programowania mamy załatwioną
Jak macie jakieś pytania: walcie, postaram się odpowiedzieć ze 100% swoich możliwości
- 15
8 komentarzy
Rekomendowane komentarze
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się