Jaka jest różnica oprócz tytułu i wynagrodzenia?
Jakie mają różne obowiązki.
Jaka jest ich wiedza / doświadczenie?
Jaka jest podstawowa miara, aby ustalić, gdzie programista pasuje do tej podstawowej struktury?
Jaka jest różnica oprócz tytułu i wynagrodzenia?
Jakie mają różne obowiązki.
Jaka jest ich wiedza / doświadczenie?
Jaka jest podstawowa miara, aby ustalić, gdzie programista pasuje do tej podstawowej struktury?
Odpowiedzi:
To będzie się różnić, ale tak widzę to w miejscu wystarczająco dużym, aby mieć rozróżnienie między typami programistów.
Powiedziałbym, że poziom podstawowy i Junior to to samo. Są po prostu poza szkołą i mają mniej niż dwa lata doświadczenia zawodowego. Są im przydzielane najmniej złożone zadania i należy je ściśle nadzorować. Zasadniczo wiedzą około 10% tego, co według nich wiedzą. Zazwyczaj nie przeszli przez cały cykl rozwoju i tak często dokonują bardzo naiwnych wyborów, jeśli mają taką możliwość. Niestety wielu z nich tak naprawdę nie obchodzi, jakie są wymagania, chcą budować rzeczy po swojemu. Często mają słabe umiejętności debugowania.
Poziom średniozaawansowany to miejsce, w którym upada wielu programistów. Mają ponad dwa lata doświadczenia i generalnie mniej niż dziesięć, chociaż niektórzy mogą pozostać na tym poziomie przez całą karierę. Mogą tworzyć działający kod przy mniejszym nadzorze, o ile są przypisani do stosunkowo rutynowych zadań. Na ogół nie są im powierzone zadania na wysokim poziomie ani skomplikowane zadania wymagające dogłębnej wiedzy. Mogą jednak zostać poproszeni o zaprojektowanie fragmentu aplikacji, zwłaszcza że znajdują się w strefie, aby zostać starszym programistą. Są dobrzy w zadaniach konserwacyjnych lub zadaniach, w których mogą skupić się tylko na swoim kawałku układanki, ale zwykle nie oczekuje się, że rozważą aplikację jako całość, chyba że pracują z wyższymi programistami lub są przygotowani do awansu na seniora. Zwykle potrafią porządnie rozwiązywać problemy i debugować, ale muszą naprawdę prześlizgnąć się, aby zdobyć trudne. Nie mają jeszcze wystarczającego doświadczenia, aby dostrzec wzorce problemów, które wskazują im prawdopodobne miejsce, w którym występują. Ale zdobywają te umiejętności i rzadko muszą prosić o pomoc przy debugowaniu. Prawdopodobnie przynajmniej raz przeszli przez cały cykl rozwoju i zobaczyli wyniki problemów projektowych i uczą się, jak ich unikać w przyszłości. Zwykle bardziej prawdopodobne jest, że przyjmą wymaganie według wartości nominalnej i nie odepchną go, gdy będą miały oczywiste problemy lub luki. Nauczyli się wystarczająco, aby wiedzieć, czego nie wiedzą i zaczynają zdobywać tę wiedzę. Są końmi roboczymi świata programowania,
Nikt na wyższym poziomie nie musi nawet zadawać tego pytania. Są ekspertami w wybranych stosach technologii. Dostają trudne zadania (te, których nikt nie wie, jak rozwiązać) i często otrzymują obowiązki projektowe. Często działają niezależnie, ponieważ mają udokumentowane doświadczenie w dostarczaniu towarów. Oczekuje się, że będą mentorem dla programistów Junior i pośrednich. Często są niesamowitymi narzędziami do rozwiązywania problemów. Napotkali już na te same problemy i bardzo dobrze wiedzą, gdzie najpierw szukać. Seniorzy często również mentorują poza miejscem pracy. Na ogół mają co najmniej dziesięć lat doświadczenia i prawie zawsze byli na co najmniej jednym marszu śmierci i dokładnie wiedzą, dlaczego niektórych rzeczy należy unikać. Wiedzą, jak dostarczyć działający produkt i dotrzymać terminu. Wiedzą, jakie rogi można wyciąć i jakich narożników nigdy nie należy wycinać. Znają co najmniej jeden, a często kilka języków na poziomie eksperckim. Widzieli wiele „nowych, gorących technologii”, które uderzyły w miejsce pracy i zniknęły, więc zwykle zachowują się nieco bardziej konserwatywnie, skacząc na modę na kolejne ekscytujące nowe narzędzie programistyczne (ale nie całkowicie odporne na zmiany - byłyby to starsi programiści dla średniozaawansowanych, którzy nigdy nie robią skoku do Seniora). Rozumieją, że ich zadaniem jest dostarczanie działającego oprogramowania, które robi to, czego chcą użytkownicy, a nie zabawa zabawnymi narzędziami. Często zastanawiają się, gdzie będą pracować, ponieważ mogą być i ponieważ widzieli z pierwszej ręki, jak złe mogą być niektóre miejsca. Szukają miejsc, w których można wykonać najciekawsze zadania. Często wiedzą więcej o produktach swojej firmy niż ktokolwiek inny, nawet jeśli byli tam tylko kilka miesięcy. Wiedzą, że potrzebują czegoś więcej niż wiedzy programistycznej i są dobrzy w zdobywaniu wiedzy na temat obsługiwanej przez nich domeny biznesowej. Często zdają sobie sprawę z problemów, których juniorzy nigdy nie biorą pod uwagę, a osoby pośredniczące często nie myślą o takich kwestiach prawnych i prawnych w obsługiwanej przez nich dziedzinie biznesowej. Mogą i odepchną wymaganie, ponieważ wiedzą, jakie będą z tym problemy i mogą to samo wyjaśnić laikom.
Poziom podstawowy - musi dawać im wyraźne instrukcje, sprawdzać wszystko, co robią, niewielką lub żadną odpowiedzialność za projekt, brak odpowiedzialności za analizę
Junior - mniej wyraźne instrukcje, mniej sprawdzania, trochę drobnych obowiązków związanych z projektowaniem i analizą; pomaga osobom początkującym znaleźć kompilator i korzystać z repozytorium
Senior - główna odpowiedzialność za projektowanie i analizę, ma na celu samodzielne korygowanie przeoczeń, niewielkie / brak sprawdzania, małe / brak instrukcji; pomaga młodym ludziom uczyć się / doskonalić umiejętności analizy i projektowania
Naprawdę myślę, że sprowadza się to do tego, jak długo byłeś w pracy. Jeśli masz 10-letnie doświadczenie, jesteś starszym deweloperem, a jeśli jesteś absolwentem, prawdopodobnie jesteś na poziomie podstawowym. Widziałem wielu „starszych” deweloperów, którzy prawie nie potrafili kodować i tak naprawdę nie wiedziałem, co robią, i wielu młodszych twórców, którzy byli fantastyczni.
Myślę, że stare miejsca rzemieślnika - ucznia, czeladnika i mistrza dobrze pasują do tych gniazd dla początkujących, młodszych (lub po prostu bez prefiksu) i starszych.
Ktoś na poziomie podstawowym otrzymuje stosunkowo proste zadania, które nie mają głębokich konsekwencji, a ich praca jest sprawdzana przez osobę młodszą lub starszą. Z czasem stają się bardziej odpowiedzialni i otrzymują bardziej złożone zadania, ucząc się lin po drodze.
Na poziomie juniora (lub po prostu usunięcie „poziomu podstawowego” / „junior” z tytułu / opisu) ukończyłeś staż i obejmowałeś główne obszary rozwoju swojej firmy, po zanurzeniu się w każdym z głównych obszarów, dzięki czemu jesteś zaznajomiony z każdym z nich. Pomagasz teraz w udzielaniu wskazówek i informacji dla ucznia-odpowiednika, ale twoja praca jest nadal sprawdzana przez mistrza / seniora, choć być może nie tak bardzo, jak w młodości.
Z czasem i realizacja udanych projektów w końcu stajesz się starszy. Na wyższym poziomie opanowałeś wszystko, co obejmuje Twój obszar, obejmując cały proces rozwoju oraz wszystkie zaangażowane narzędzia i technologie. Jesteś upoważniony do podejmowania ważnych decyzji technicznych i oczekuje się, że zapewni wgląd w zarządzanie procesem tworzenia oprogramowania.
Biorąc pod uwagę te wytyczne, powinieneś być w stanie spojrzeć na osobę lub pozycję i określić, w którym z trzech pojemników się znajdują.
Sprowadza się to do oczekiwań programisty wobec firmy.
Jeśli jestem firmą zatrudniającą i zatrudniam programistę na poziomie podstawowym, wiem, że ta osoba wie prawie nic i zakładamy, że musi się wszystkiego nauczyć. Jeśli zatrudnię osobę na poziomie wyższym, teoretycznie będzie ona samowystarczalna z technicznego punktu widzenia.
Zależy to ściśle od firmy. Ale słowa są dość oczywiste: poziom podstawowy to ktoś, kto właśnie wchodzi na boisko, junior to ktoś, kto jest poza poziomem podstawowym i zna się na kilku technologiach językowych. Wreszcie starsi są ci, którzy są bardziej odpowiedzialni za projekt i siedzą na wyższym poziomie. Zwykle mogą delegować tyle, ile kodują.
Jak większość powiedziała, różni się w zależności od firmy i stanowiska.
Na przykład kiedyś pracowałem w firmie, która uważała każdego, kto pracował tam przez ponad 5 lat, jako „starszy inżynier oprogramowania”. Z drugiej strony inne miejsce, w którym pracowałem, miało bardzo rygorystyczne definicje (i powiązane skale płac).
W niektórych miejscach „poziom podstawowy” i „młodszy” mogą oznaczać to samo.
Może się różnić w zależności od lat doświadczenia, ogólnej wiedzy, konkretnej wiedzy (tj. Znajomości cech określonego języka), doświadczenia menedżerskiego i / lub przywódczego, wszystkich ich kombinacji, a na pewno wielu innych.
Idę tutaj z naprawdę prostą odpowiedzią: starsi programiści (ogólnie) to ludzie, którzy widzą las dla drzew. Myślą poza bezpośrednim problemem przed swoimi twarzami i rozumieją, jakie zmiany architektoniczne mogłyby lub powinny nastąpić w wyniku rozwiązania problemu, z którym się borykają.
Większość firm programistycznych, które widziałem, ma osoby z początkującego kodowania, podczas gdy starsi deweloperzy nadzorują to, co robią nowi ludzie, i zajmują się naprawdę brzydkimi, drażliwymi problemami.
Oczywiście to tylko moja opinia, a nie twarda i szybka zasada. YMMV.
Po prostu umieszczaj i na podstawie osobistych obserwacji znalezionych na stronach z ogłoszeniami o pracę i tylko w odniesieniu do poziomów doświadczenia.
Wpis = Twój nowy prawdopodobnie Twoja pierwsza praca.
Junior = Twoje dobro, ale nie powinno być najlepsze, zwykle masz również mniej niż 5 lat i ponad 2 lata doświadczenia.
Senior = powinieneś być najlepszy i mieć ponad 5-letnie doświadczenie.