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?

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.


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


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.


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


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.


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


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.


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.


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.


Przegapiłeś półprodukt.
— Neolisk
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.