Jaka jest różnica między programistami Entry Level / Jr / Sr? [Zamknięte]

198

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?

JD Isaacks
źródło

Odpowiedzi:

341

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.

HLGEM
źródło
2
czy istnieje tytuł (w języku angielskim) na „poziomie średniozaawansowanym” Tłumacz Google używa „pełnego programisty”. Ale to nie jest cenne źródło =)
Michel Ayres
23
Doskonałe wyjaśnienie podobne do historii. Lubiłem to czytać.
Saeed Neamati,
1
Dziękuję za to wyjaśnienie. Jestem samoukiem w iOS dev (brak wykształcenia komputerowego) i wydałem swoją pierwszą aplikację, która ma pewne nietrywialne funkcje (tj. JSON CRUD, niektóre komponenty społecznościowe, dobry design). Nie sądzę, że jestem świetnym programistą, ale napisałem aplikację od początku i rozumiem, co trzeba wysłać. Gdzie umieściłbyś hipotetycznie kogoś takiego jak ja?
SamYoungNY
1
@NYCTechEngineer, przychodzi na myśl przepełnienie stosu. Również lokalne grupy użytkowników, blogowanie, pisanie artykułów i książek.
HLGEM
1
@BrianHaak Thx - ciekawe, co mówisz. Od zeszłego roku pracowałem nad znacznie większym projektem niż wcześniej. Odniosłem wrażenie, że przyglądam się kodowi, który napisałem kilka miesięcy temu i powiedziałem „wtf? Kto pomyślał, że to dobry pomysł?” :) - Rozpoczęcie tego projektu od małego jądra do projektu, który można łatwo rozszerzyć i który jest w stanie pomieścić nie-deweloperów, którzy chcą dodawać treści, zmusił mnie do myślenia o strukturze wyższego poziomu. Parowanie bardziej doświadczonego programisty pokazało mi, że brakuje mi wielu opcji. używać abstrakcji. Mam też problemy z przestrzenią nazw.
SamYoungNY
43

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

Steven A. Lowe
źródło
20
Fajnie, ale nie wiem, czy całkowicie zgadzam się z „brakiem sprawdzania / instrukcji” dla wyższego poziomu. O ile nie pracujesz w zespole lub z zespołem, nikt nie powinien być całkowicie wyspą.
Wonko the Sane
@WonkotheSane mamy takiego, który łączy kody z błędami bez żadnego przeglądu kodu lub żądania ściągnięcia. Nie mówi wiele o architekturze aplikacji poza używaniem wszędzie wzorca obserwacji. Wszystkie decyzje podejmuje sam, aby nie dostosować się do niczego nowego . Wszystko dlatego, że sam jest wyspą. Nie ma go w tym. On jest wyspą :(
Honey
16

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.

Craig
źródło
7
To odzwierciedla moje doświadczenia. „Senior” oznacza czas w firmie i zwykle nic więcej; umiejętności nie uwzględniają jednego jota. Pracowałem z wieloma „starszymi” programistami (i menadżerami w tym zakresie), którzy nie wiedzieli nic o oprogramowaniu poza rozwojem prób i błędów, ale pracowali w firmie od ponad 5 lat lub był pierwszym programistą zatrudnionym, gdy miejsce zaczęło się, a więc awansowało z powodu kadencji.
Wayne Molina
8

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ą.

Todd Williamson
źródło
6

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.

Walter
źródło
4

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ą.

Chris
źródło
Rozumiem, ale w którym momencie jesteś „poza poziomem podstawowym” lub „poza młodszym”? Jeśli zawsze się uczysz, to codziennie wykraczasz poza to, co byłeś poprzedniego dnia.
JD Isaacks
Poziom podstawowy jest łatwy, ale szukam bardziej przykładów doświadczenia / wiedzy, które sugerowałyby młodszy lub starszy.
JD Isaacks
Jak powiedziałem, zależy to od firmy, kontekstu technologii / języków, a konkretnie jest to kwestia opinii, chyba że mówisz o oficjalnych nazwach pracy. Nie sądzę, żebym kiedykolwiek uznał się za eksperta w jakimkolwiek języku, chyba że sam bym to napisał.
Chris,
Dodatkowo, jeśli jesteś w firmie, spójrz na deweloperów jr, sr i porównaj się z nimi / porównaj. Jest to dobry wskaźnik w kontekście specyficznym dla tej firmy.
Chris
4

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.

Wonko przy zdrowych zmysłach
źródło
3

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.

MattC
źródło
2

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.

Lord-Fu
źródło
Przegapiłeś półprodukt.
Neolisk