Zastanawia mnie zadziwiająca ostatnio inflacja tytułów w ogłoszeniach o pracę np. Pilot - aktualna oferta dla Senior Ruby on Rails Developera
Senior Developer z dwuletnim stażem. To oczywiscie przykład nie czepiam się konkretnie tego ogłoszenia, bo jest ich wiele więcej.
Mam jednak w takim razie pytanie, ja jako programista z kilkunastoletnim stażem w tym około 10 lat w RoR na jaki tytuł się kwalifikuję? Grand(father) Programmer? Ancient Programer?
W dodatku zastanawia mnie jak w tym świetle prezentuje się teza że firmy nie chcą zatrudniać juniorów, ja bym powiedział że ktoś z 2 letnim stażem plasuje się bardziej w okolicach juniora niż seniora.
Jakie są wasze obserwacje w tej dziedzinie? Ile waszym zdaniem praktyki potrzeba by przejść z Juniora do Programisty i z Programisty do Seniora?
Czy waszym zdaniem ma sens zespół złożony np. z 4 seniorów + 2 juniorów? albo nawet 6 seniorów?
Junior do roku, developer do 3 lat, senior od 2 lat. Potem albo manager, labo zmiana języka i od nowa
Senior z 2 latami doświadczenia, jak ktoś ma ponad 5 lat doświadczenia oznacza, że nie nadąża za technologią i moze być oc najwyżej seniorem
ja wiem że to są tylko etykietki, zastanawia mnie natomiast dlaczego są przypisane do tak śmiesznie niskich okresów doświadczenia.
Osoba pracująca 2 lata w danej technologi skończyła co 2-3 projekty w niej? Zresztą pół bidy w danej technologii, tam nie było słowa o doświadczeniu w innych technologiach
@pawelek mam 50-50 podejrzenia że sobie jaja robisz, i szczerze mówiąc wolałbym żeby tak było Z drugiej strony patrząc na listę idiotów którzy rzucają się na node.js tylko dlatego że to nowa technologia, jestem w stanie uwierzyć że niektórzy tak myślą
PS. Nawet z HRowego punktu widzenia jak przedstawisz ścierzkę kariery takiej osobie? Senior Developer > Senior Senior Developer -> Even More Senior Developer?
Przecież jak firma zatrudnia 5 seniorów to tylko jeden w końcu będzie Lead Developerem, chyba że każdy dostanie swój własny projekt do liderowania 1 osobowemu zespołowi
@swistak84 wiem, ze wiesz jeśli to głownie etykietki, to nie warto zaprzatac sobie glowy tym ‘po co’ i ‘dlaczego’ - zresztą dałeś dobry tytuł - to towar o wysokim współczynniku inflacji, czyli wart tyle co 100 starych polskich złotych
jeszcze innymi słowy, sformułowania (w ogłoszeniach) typu "senior z 2ma latami doświadczenia’ oznacza to samo, co ‘płynna znajomość angielskiego’ - czyli w 99% NIC.
Usunąłem post, ale poklepany na privie przez @swistak84 wklejam ponownie, może ktoś się chociaż uśmiechnie a to już coś:
jak ktoś ma ponad 5 lat doświadczenia oznacza, że nie nadąża za technologią i moze być co najwyżej seniorem
Zgadzam się całkowicie, i nawet mam przykłady tych najbardziej nie nadążających:
Yukihiro Matsumoto - 20 lat (co najwyżej senior w Heroku)
Guido van Rossum - 25 lat (co najwyżej senior w Dropbox)
Rasmus Lerdorf - 20 lat (co najwyżej senior w Yahoo, Etsy, Jelastic)
Brendan Eich - 20 lat (co najwyżej senior w Mozilla)
Anders Hejlsberg - w sumie ponad 30 lat, w obecnej technologii 15 lat (najpierw co najwyżej senior w Borland, obecnie co najwyżej senior w Microsoft)
DHH - 10 lat (co najwyżej senior w 37signals, obecnie Basecamp)
Chłopakom po prostu wstyd jest przyznać, że nie nadążają za technologią, ale to pewnie dlatego że sami te starocie powymyślali.
Jestem załamany, że właśnie już 3 rok uczę się techologii, która ma 10 lat (DHH) i jest oparta o język, który ma już 20 lat (YM). Nadal komercyjnie rozwijam oprogramowanie w języku który ma już 15 lat (AH), czasem podejmuję się jeszcze projektów w technologii która ma 20 lat (RL) i nawet chciałem znaleźć trochę czasu, aby poznać 25-letnią technologię (od GvR).
A do tego okazuje się, że te wszystkie nołddżejesy, angulary i embery to wszystko ściema i ich zardzewiałe bebechy mają już 20 lat (BE).
Podoba mi się Ruby, a tu zbliża się ten magiczny dzień i muszę zdecydować:
@swistak84 Oczywiście, że mówię poważnie. Przecież po to wstawiłem te emoticonki - technologię sprzed jakichś 40 lat (tak w ogóle to więcej chyba). One generalnie wskazują powagę wypowiedzi. Co wesołe ludzie ich używają jak przecinków, kompletnie nie wiedząc chyba co znaczą i po co są ignorując je kompletnie.
Świat na szczęście nie obdarzył mnie znajomością z tak ciekawymi ludźmi, o których mówisz w swojej wypowiedzi.
@apodlaski Oczywiście, że ludzie Ci wspierają to co stworzyli - to ich produkty. Ale wiadomo przez 20 ,czy x lat rozwijali się i o ile core ich produkcji stanowi ruby (bądź inne), to zmieniają technologie i uczą się innych rzeczy. DHH stworzył 10 lat temu Railsy, a do tego Basecampa, ale myślisz, że basecamp stoi tylko na tej technologi sprzed 10 lat? A frameworki javascriptowe i inne? Poza tym zrobili kilka innych miłych rzeczy nie związanych z Railsami i basecampem. Więc z drugiej strony jednak warto dane technologie rozwijać, a że te corowe jak Railsy itd. nie powstają tak szybko…?
A w temacie -> fajnie czasem zmienić pracę tak dla higieny osobistej. Poznać nowych ludzi nauczyć się czegoś nowego. No chyba, że pracujesz w takim miejscu w którym ciągle masz nowe wyzwania i ciekawe rzeczy do robienia, oraz ludzie którzy Cię otaczają są tacy zajebiści. Dlatego nie dziwi mnie Senior Developer z minimum 2 lata doświadczenia. Zwłaszcza, że czas nie mówi nic, bo ja mogę przez 2 lata pierdzieć w stołek i zrobić 2 poste stronki, a ktoś może napisać kolejne lepsze railsy w tym samym czasie
Teraz chyba Scala idzie do przodu, dlatego zainteresowałem się ruby, bo co miało być w temacie powiedziane w większości powiedziane już jest
Moja opinia jest taka, ze senior to bardziej stan wiedzy, niz znajomosc konkretnej technologi. Jesli ktos zna patterny z innych jezykow (i ich frameworkow) i ma pare lat doswiadczenia to w railsach bedzie seniorem po miesiacu (mimo ze bedzie sie pytal o api i rubiego na stackoverflow i lokalnie jeszcze przez pare miesiecy i minie troche czasu zanim sie nauczy uzywac fajnych metod typu inject i map).
Znam sytuację, 5 programistów, 3 liderów, w tym jeden był czymś w rodzaju “lidera liderów”. Poza tym był jeszcze tester i webmaster. Nie było śmiesznie.
@pawelek: komentowałem tezę, jakoby co 3 lata należało zmieniać język w którym się programuje, pokazałem przykłady reprezentantów odmiennej filozofii i pokazałem że jakoś sobie z tym radzą i raczej nie mogą być nazywani CoNajwyżejSeniorami. Może nawet totalnie olewają to jakie mają tytuły (tak podejrzewam).
Mam wrażenie że kolega reprezentuje stanowisko zbliżone do najemnika, chłoporobotnika, pracownika sezonowego, etatowca czy jak by to kto zwał. Zmieńmy sobie prackę, technologię i język co parę lat, żeby było fajnie i nie nudno.
Jest jeszcze podejście właściciela, twórcy, producenta, autora, przedsiębiorcy, który chce zagwarantować swoim klientom że będzie im dostarczał jakość, teraz, za 5 i 10 i 20 lat jeśli tylko będą tego chcieli. Takie podejście dopuszcza ale nie goni za zmianą języka, technologii tylko stara się patrzeć na inne aspekty.
Zgadzam się też z @slawosz.
Moim zdaniem juniorem lub seniorem jest się inter-językowo a nie w konkretnym języku.
Język programowania jest tylko jednym z dostepnych narzędzi kogoś kogo Uncle Bob nazywa “Clean Coder-em” lub “Craftsman-em”.
Co nie jest złe bycie “najemnikiem” (resztę odczuwałbym jako coraz bardziej niegrzeczne określenia). A kimże ja jestem jak nie osoba która wynajmuje się do wykonania pewnych z góry określonych czynności za określoną zazwyczaj z góry kwotę? Oprócz wykonywania tego co wykonujemy (programowania) co czyni nas lekko innymi (artystami?) niczym innym się nie różnimy od gościa który za odpowiednią kwotę dogląda koni? I tak jak i on to i my musimy czasem widłami obornik z zagrody wyrzucić. Nieprawdaż?
The pragmatic programmer taki jak cytowany przez Ciebie Martin:
Almost universally, we noticed that effective programmers all share a number of traits:
they care about their work, and accepted responsibility for it - they value craftsmanship
they are always learning - languages, tools, techniques and methods
they enjoy change - to istotne!!!
they value the depth and breadth of their experience, and are constantly looking for ways of applying it to the issues at hand
they are highly aware of what they were doing
they treat analysis, design, implementation, testing, and support as different facets of an overall process, rather than as discrete activities
Jeżeli dana praca pozwala na naukę i wykorzystywanie nowych podejść etc. to praca idealna (zdarza się w niewielu miejscach) i jej się nie zmienia. Ale jak chciałbym w Ruby i Railsach to w obecnej pracy tego nie zrobię. I ja rozumiem szefa który nie rzuci wszystkiego by mi dać projekt w Ruby, Ale i on rozumie mnie jak zmienię pracę. To się nazywa szacunek
Co do podejścia właściciela, twórcy… To rozmawiamy tu o podejściu Senior Developer z 2 letnim doświadczeniem czy Senior Boss Manager z 2 letnim doświadczeniem? Bo jak o tym drugim to ja jestem tylko programistą
Nie wydaje mi się, że można być Seniorem w Ruby nie znając go. Ale inter-językowo można być Senior Scrum Masterem, albo Senior Architect, albo Senior Manager Czy to macie na myśli mówiąc inter-językowo?
Nie wydaje mi się, że można być Seniorem w Ruby nie znając go. Ale inter-językowo można być Senior Scrum Masterem, albo Senior Architect, albo Senior Manager smile Czy to macie na myśli mówiąc inter-językowo?
Nie do końca się zgodzę. Znam wielu ludzi, którzy pracowali np 5+ lat w jednej technologii, osiągnęli w niej poziom ekspercki, następnie przesiadli się na coś zgoła odmiennego (PHP -> C#) i w ciągu 2-3 miesięcy byli w stanie na tyle opanować nowy język i ekosystem, że niżej niż seniorem bym nie tytułował.
Programowanie to zdolność intelektualna rozwijana z czasem, natomiast język/technologia jest wyłącznie narzędziem.
Senior jako osoba dobrze obeznana z rozwiązywaniem problemów danego typu oraz osoba która dobrze zna narzędzia których ma używać. Nie widzę problemu z nauczeniem się nowego języka np. w tydzień i zostaniem seniorem po tym czasie.
Ale widzę problem z Seniorem (którego przedstawił kolega @slawosz i @apodlaski) , który musi się pytać kolegów jak zrobić podstawowe operacje w danym języku, bo “w Ruby to się robiło tak, a w C# nie wiem, bo jeszcze nie umiem…”.
Mnie po prostu zastanawia skąd się biorą takie patologiczne sytuacje jak miał @seban i ja po części kiedyś też.
Rozumiem ludzi zmieniajacych technologię, ale prawda jest taka że trzeba skończyć jeden większy projekt a nawet dwa od początku do deploymentu i trochę go posupportować na zywca żeby naprawdę poznać technologię.
Tak czy tak, przy obecnym systemie gdzie “seniorem” się zostaje po 5 latach max, to co dalej? co za kolejne 5 lat?
Mysle, ze osoba majaca duze doswiadczenie programistyczne jest w stanie rozwiazywac problemy na poziomie seniora po tygodniu lub dwoch (widzialem naocznie ;)). Oczywiscie zalezy od rodzaju problemu - jesli to bedzie problem ze skalowalnoscia aplikacji, schematu bazy danych - to jak najbardziej. Jesli bedzie to problem zwiazany ze stworzeniem elastycznej strony zamowienia z 5 modelami i 10 roznymi ajaxami, ok, tu sie przydaje bieglosc w znajomosci narzedzia jakim sa Railsy.
PS. Uzylem pojecia duze doswiadczenie programistyczne - jest to ciezko zdefiniowac, ja bym powiedzial ze to takie gdzie ktos napisal odpowiednia ilosc kodu i zna dobrze przynajmniej 2 jezyki - np C i Python. Potem uczenie sie nowego jezyka bedzie juz proste.