Co dalej ze sobą począć?

0

Cześć,
Mam nadzieję, że temat zakładam w odpowiednim miejscu.
Pozwólcie, że w skrócie opiszę moją sytuację: otóż pracuję w prywatnej firmie jako pracownik działu IT. Zacząłem tutaj pracę dziesięć lat temu i nigdzie wcześniej nie pracowałem. Przyjęli mnie na studiach (informatyka, zaocznie) najpierw jako HelpDesk, później coraz wyżej. Obecnie pełnię rolę menedżera działu, coś w stylu kierowania nim ale tak naprawdę jest to podyktowane tylko faktem, że: a) nie ma kto tego robić, b) moja płaca jest znacznie wyższa niż innych i musi iść za tym wysokie stanowisko, c) mam najdłuższy staż firmie. Tak naprawdę zarządzanie działem zajmuje mi może 10% czasu, bo oprócz mnie znajdują się w nim dwie osoby, które zajmują się czymś zupełnie innym niż ja w pozostałych dziewięćdziesięciu procentach. I tutaj do sedna.
Od dobrych siedmiu lat programuję. Zacząłem od JS-a (bo potrzebowałem), później biblioteki, głównie JQuery. Pięć lat temu doszedł C#, w którym piszę aplikacje desktopowe i webserwisy, .NET w którym stworzyłem kilka aplikacji webowych dla organizacji. Stworzyłem też kilkanaście aplikacji i stron w PHP. Programuję całymi dniami, tworzę nowe rozwiązania, optymalizuję i dodaję funkcjonalności do poprzednich. Problem jest taki, że nie potrafię siebie zdefiniować jako programisty patrząc na oferty pracy. Byłem na dwóch rozmowach o pracę (regular .net developer) i widziałem nietęgie miny rekruterów, którzy dowiadują się, że a) programuję sam (a nie w zespole), b) nie korzystałem z githuba (w mojej pracy nie muszę dzielić się kodem) i tłumaczenie, że wiem jak to działa, po co jest i jak z tego korzystać nie satysfakcjonuje rozmówcy, c) dziesięć lat pracuję w jednym miejscu. Pomimo tego, że nie mam problemu z pytaniami teoretycznymi już w trakcie rozmowy wyczuwam traktowanie mnie jak kogoś, kto się nie nadaje.
Zastanawiam się co dalej zrobić. Jestem osobą, która nigdy nie odpuszcza i zawsze dociąga projekt do końca nawet jeśli będzie zmuszona do nauczenia się nowej technologii czy rozgryzienia nieznanej biblioteki, by go zrealizować. Moje aplikacje funkcjonują od lat w firmie i na nich opiera się jej funkcjonowanie. Mimo to nie mam pojęcia jak wykonać kolejny krok w mojej "karierze", by nie zostać tutaj gdzie jestem do końca życia, bo nie ma tutaj osoby, od której mógłbym się czegokolwiek nauczyć. Czuję się wypalony, mam dość tych komplementów od osób, które nie mają pojęcia o programowaniu i opierają wszystkie rzeczy z nim związane na mojej osobie :)
Pytam, bo być może są tutaj osoby z podobną sytuacją do mojej i poradzą mi co zrobiły albo osoby bardziej doświadczone w branży, które posłużą dobrą radą :)
Dzięki!

3

nie korzystałem z githuba (w mojej pracy nie muszę dzielić się kodem) i tłumaczenie, że wiem jak to działa, po co jest i jak z tego korzystać nie satysfakcjonuje rozmówcy

  1. Pamiętaj, że Git to nie to samo co Github
  2. Jeśli nie używasz to zdecydowanie nie wiesz (to jakbyś powiedział, znam C# ale nie programuje i wiem jak go używać)
  3. To, że piszesz samemu nie wyklucza używanmia Git'a (to nie tylko dzielenie się kodem)
0

Tak myślałem, że ktoś dotknie tego punktu. Co do 3. - wiem, ale to podałem tylko jako przykład różnic, nie chciałbym się nad tym rozwodzić :)

0

b) moja płaca jest znacznie wyższa niż innych i musi iść za tym wysokie stanowisko

Mógłbyś to rozwinąć? Czemu musi? Zapracowujesz na wypłatę czy dostajesz ją tylko za staż i nazwę stanowiska?

1

i widziałem nietęgie miny rekruterów, którzy dowiadują się, że a) programuję sam (a nie w zespole), b) nie korzystałem z githuba (w mojej pracy nie muszę dzielić się kodem) i tłumaczenie, że wiem jak to działa,

Git to nie tylko dzielenie się kodem... Tym bardziej pracując samodzielnie powinieneś wszystko trzymać w repozytorium tak by Twoj gitlog czytało się jak książkę. Jeśli na rozmowie odpowiadasz w ten sposób to niestety ja nie dziwię się nietęgim minom. Ciekawi mnie czy o gitflow slyszałeś cokolwiek. Sorki na 10 lat pracy jako programista znajomość praktyczna gita i metodyk pracy oraz stosowanie go w codziennej pracy to podstawa której braki dyskredytują kogoś z 10 letnim doświadczeniem. Drugie, 10 lat faktycznie pracowałeś sam, bez code review? Mówisz że tworzyłeś rozwiązania wewnątrz firmy. Były one sprawdzane poza "no tak działa, ok" przez kogoś od technicznej strony? Testujesz swój kod przynajmniej (testy jednostkowe/integracyjne)? Szczerze to po tym co napisałeś to ja mam wrażenie że jesteś jednym z tych programistów leżaków którzy po 10 latach nagle wychodzą z szafy ze swoim JQuery (nie mowię że tak jest z Tobą, ale chodzi o wrażenie). I możliwe że na rozmowach też sprawaiasz takie wrażenie.

1

Cześć.
Ja byłem w podobnej sytuacji ponad 30 rozmów o pracę. Zawsze jakieś czepialstwa dlaczego używasz *char zamiast std::string, dlaczego tak zmienne nazywasz, dlaczego napisałeś projekt php bez laravel. Dałem sobie spokój z tymi rozmowami szkoda mojego zdrowia, pieniędzy na dojazdy (za które niby zwracają a jak przyjdzie co do czego to cisza). To jest Polska tacy ludzie im szybciej sobie z tego sprawę zdasz tym lepiej dla Ciebie.
Po tych przygodach wyjechałem za granicę do fizycznej pracy. Poznałem tam fajnych zaradnych ludzi. Dodatkowo wpadają mi jakieś projekty.
Polecam zostać w tej pracy a ciągnąć coś swojego, nawet jakieś drobne rzeczy na początku. Metodą małych kroków. Tym bardziej ,że potrafisz sam wszystko zrobić.
Tutaj coraz więcej takich tematów się pojawia, chyba ja dawno temu jako jeden z pierwszych o tym napisałem. Ludzie boją się o tym pisać, ale taka jest rzeczywistość. Gdyby rzeczywiście tym firmom zależało na pracowniku to by wzięli takiego kogoś przykładowo na tydzień i sprawdzili by czy się nadajesz.

3

regular .net developer

Zapomnij. Klepanie kodu samemu w projektach które "mają działać" i które utrzymuje tylko sam autor to jest zupełnie inna bajka niż pisanie dużego softu, w zespole, z rotacją ludzi, gdzie ten soft często trzeba będzie utrzymywać wiele lat. To jest trochę tak jakbyś hobbystycznie latał szybowcem, albo ewentualnie od święta spryskiwał zboże jakimś dwupłatem, a teraz chciał wskoczyć do boeinga 787. No niby i tu i tu się lata, ale jednak nie do końca.
Dodatkowo musisz uświadomić sobie że "pisanie kodu" to jest tylko malutki fragment "inżynierii oprogramowania". Jest cała masa związanych z tym rzeczy, które też trzeba umieć. Git czy CI to tylko najbardziej podstawowe przykłady. I nie, argument, że "pracujesz sam" nie ma nic do rzeczy. Chętnie usłyszę co robisz, kiedy po całym dniu klepania okazuje sie że "coś zespułeś" i nie wiesz co...
No i kluczowa sprawa -> programowanie to jest dziedzina zespołowa. Musisz umieć czytać kod innych ludzi i pisać kod, który będzie dla innych czytelny. Masz w tym zero doświadczenia, co może być problemem. Tym bardziej, że od lat piszesz kod sam, więc istnieje bardzo duża szansa że piszesz słabo i nawet nie zdajesz sobie z tego sprawy, a złe nawyki bardzo trudno usunąć.

Moja rada: uderzać w jakieś pozycje entry-level/junior i modlić się żeby się udało, albo freelancować. Szansa że wskoczysz teraz z marszu do jakiegoś korpo jako regular czy senior to marzenie ściętej głowy.

8

Z programowaniem jak z seksem - jak robisz to samemu to tak na prawdę się nie liczy, nawet jak masz o sobie dobre mniemanie.

0
null null napisał(a):

Z programowaniem jak z seksem - jak robisz to samemu to tak na prawdę się nie liczy

To ma być programowanie w parach czy praca grupowa/zespołowa czy outsourcing?

Jeszcze kwestia ewentualnej zmiany domeny i zainteresowań...

15

Jakbym czytał swoją historię ;-) 1,5 roku temu przechodziłem podobny etap - z długoletniego hobbysty, który tworzył realne aplikacje biznesowe postanowiłem przekwalifikować się na programistę. Kilka myśli ode mnie:

  • git - jak mówisz na rozmowie kwalifikacyjnej, że nie stosujesz gita to po tych słowach możesz dodać "dziękuję za rozmowę, do widzenia". Naucz się, wrzuć swoje projekty na github, trochę z nimi popracuj, ogarnij jakiś kurs na Udemy czy youtube. To jest must have, kropka.
  • standardy - dla osoby pracującej samotnie może to być dziwne, ale w komercyjnym programowaniu ważne są standardy kodowania i MUSISZ je znać i stosować. Za to dostaje się dużo punktów na rozmowach plus wykorzystuje się na co dzień w pracy
  • testy - musisz mieć wiedzę, przynajmniej teoretyczną. Z praktyką to już no cóż bywa różnie. Z mojej (krótkiej) praktyki wynika, że więcej firm o nich mówi niż robi - czyli znowu jak z seksem.

Te trzy rzeczy + Twój exp powinny starczyć na posadę juniora.

Mam dla Ciebie też kilka złych wiadomości:

  • nie umiesz programować, nawet jeśli Ci się teraz wydaje, że umiesz. Tak jak kolega pisał programowanie w pojedynkę to jak seks w pojedynkę - nawet jak dużo tego robisz to nie koniecznie będzie wychodzić w grupie
  • będąc samoukiem masz kupę złych nawyków i co gorsza utrwalanych przez lata. Wiele rzeczy robisz "bo działają", kod piszesz chaotycznie i jest on trudny w utrzymaniu. W sumie to tylko Ty go rozumiesz i też nie zawsze.
  • prawdopodobnie nie radzisz sobie z dużym kodem
  • jak już ktoś Cię zatrudni to musisz się liczyć z tym, że dostaniesz śmieszne pieniądze. Jak dostaniesz 3-4.000 na rękę to możesz uważać się za szczęściarza

W mojej pracy widziałem kod przesyłany przez takich jak Ty (i wcześniej ja) - często osoby pracujące komercyjnie jako freelancerzy przez 10+ lat pisały tak fatalny kod, że nawet na moje standardy sprzed pracy komercyjnej to był dramat. Co gorsza te osoby zupełnie nie rozumiały konstruktywnej krytyki. To jest niestety poważny problem samouków z dużym stażem. Najlepsze co można zrobić to schować dumę do kieszeni i chłonąć jak gąbka.

Teraz kilka dobrych wiadomości:

  • skoro programujesz 10 lat to znaczy, że już Twój mózg "umie w programowanie", a Ty umiesz rozwiązywać problemy. Styl pisania można szybko poprawić jeśli jesteś otwarty na konstruktywną krytykę i rozwój. Wbrew pozorom nie jest to trudne jak pracujesz z lepszymi od siebie i masz od kogo się uczyć
  • z takiego poziomu jak masz można bardzo szybko dojść do poziomu mida jeśli się przyłożysz, a wtedy i kasa się będzie zgadzać

O stanowisku regulara/mida ogólnie zapomnij - uwierz mi nie jesteś regularem w kategoriach komercyjnych. Jak najbardziej na takie stanowiska aplikuj bo może jak w Tobie coś zobaczą, a nie będą mogli obsadzić tego wakatu, to wezmą jako juniora z potencjałem (tak było u mnie). Pogódź się jednak ze spadkiem wynagrodzenia na początku - to Cię raczej nie minie skoro dobrze zarabiasz w obecnej firmie. Jak dobrze to rozegrasz to po roku będziesz midem bo masz (prawdopodobnie) spory background, ale najpierw musisz nadrobić rażące braki.

Ogólnie na tych 2 rozmowach na których byłeś dostałeś konkretny feedback. Podpowiem Ci, że to będzie się powtarzać na wszystkich kolejnych rozmowach, bo to są podstawowe wymagania dla juniora. Zamiast udowadniać na forum, że rekrutujący nie mają racji, to zastanów się co z tą wiedzą można zrobić - ja bym sugerował wyciągnąć wnioski i nauczyć się tego o co pytają. Jeśli chcesz być zatrudniony to musisz umieć to czego szuka się na rynku, a nie to co się Tobie wydaje, że jest ważne.

Powodzenia - myślę, że sobie poradzisz.

3
Sejushi napisał(a):

Jedno mega ważne pytanie do Ciebie.
Czy zatrudniłbyś do pracy jako regular osobę, która 10 lat pisze sobie kod na swoje potrzeby w domu, a na pytania odpowiada "nie stosuje, ale znam"?

Niestety Ty nie różnisz się niczym od osoby, która sobie niekomercyjnie programuje w domu. Skoro nie używasz systemu kontroli wersji to także nie używasz CI, nie zarządzasz projektem w odpowiedni sposób, nie masz polityki deploymentu, releasu. Pewnie jak odpalasz swój kod to nie masz niczego zautomatyzowanego, nie korzystasz z infrastructure as a code. Do tego jak wcześniej napisali liczy się clean code, praktyki, pisanie testów. Ja zanim poszedłem do pierwszej pracy, programowałem 15 lat w domu, bo od małego jestem pasjonatem, korzystałem nawet z systemu kontroli wersji bazaar (ktoś jeszcze pamięta?), miałem nawet CI. Mimo wszystko poszedłem na juniora, bo mój kod to nie było coś super, jak teraz na to patrzę to masakra, bo utrzymuje jeden mój projekt od 14 lat i powoli przepisuje.

Podsumowując są rzeczy, które musisz znać i bez których normalna firma nie przyjmie Cię nawet na juniora, a nie wiem czy chciałbyś pracować w firmie, gdzie np. nie ma wersjonowania kodu. Byłeś na rozmowach i teraz pewnie wiesz czego musisz się douczyć, żeby dostać pracę.

0

"Co dalej ze sobą począć?" - brzmi to jak pytanie, które zadaje sobie wiele osób po jakiejś rewolucji. Najważniejsze jest to, żeby zostać na czasie i iść wraz z technologią, ponieważ zanim ludzie przestaną być potrzebni w IT to jeszcze parę pokoleń się pomęczy. Jeśli ktoś chce poczytać coś więcej o czynniku ludzkim w IT to tu

1
null null napisał(a):

Z programowaniem jak z seksem - jak robisz to samemu to tak na prawdę się nie liczy, nawet jak masz o sobie dobre mniemanie.

Masz gwarancję, że pracujesz w najbardziej zgranym i najinteligentniejszym zespole jaki może istnieć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1