Co definiuje rolę „programisty”

10

Jestem młodszym programistą i pracuję dla firmy krócej niż rok.

Chociaż zawsze myślałem, że bycie programistą oznacza tworzenie oprogramowania i CODZIENIE kodu, moje zadania dotyczą raczej pracy administracyjnej, takiej jak konfiguracja Jenkins, replikacja SQL itp.

Czy tego typu zadania są uwzględniane w roli programisty, czy programista rozwija wyłącznie oprogramowanie? Czy powinienem o tym rozmawiać z moim menedżerem? Czy jest to powszechny sposób oceny przez firmy umiejętności „rozwijających się”?

mrz
źródło
9
Zależy, kto jest twoim spiczastym włosy szefem.
Neil
Każda firma definiuje role nieco inaczej. Zapytaj swojego menedżera o obowiązki i oczekiwania związane z rolą.
Bernard,
4
Są okresy, kiedy stolarze muszą załadować drewno, pchać taczki itp. To wszystko jest częścią pracy. Jeśli jesteś niedoświadczonym stolarzem, prawdopodobnie robisz o wiele więcej niż starszy stolarz.
Bryan Oakley,
1
Tworzenie oprogramowania> pisanie kodu. Jeśli programista nie wie, jak skonfigurować / używać i / lub nie zna wartości (narzędzia takiego jak) Jenkins, to z definicji byłby (bardzo) młodszym programistą. Rozważ to szkolenie w miejscu pracy i ciesz się, że nie pracujesz w środowisku, w którym musisz uruchomić własny serwer CI na własnej maszynie wirtualnej utrzymywanej w swoim czasie, aby utrzymać poziom jakości oprogramowania, który Oczekiwany, ale w praktyce odradzany, jeśli takie narzędzia są niedozwolone w swoich (głównie ręcznych) „procesach”.
Michael

Odpowiedzi:

11

Wydaje mi się, że zatrudnili młodszego, ponieważ nie mogli sobie pozwolić na seniora, a nie dlatego, że tak naprawdę chcieli młodszego (kogoś, w kogo mogliby zainwestować i mentora, dopóki nie staną się starszymi). Zarządzałem zespołem, któremu decyzja została narzucona przez menedżerów, którzy nie znali się lepiej.

Skończył z różnego rodzaju niefortunnymi pracami, takimi jak tworzenie filmów szkoleniowych dla użytkowników, i nadal czuję się winny z tego powodu, ale byłem pod presją, aby to zrealizować i oczekiwałem, że dodanie głowy do pokoju programistycznego przyspieszy tylko rzeczy .

To niefortunne, ponieważ stawia cię i twojego szefa w trudnej sytuacji.

Prawdopodobnie nie ma pracy, której mógłby zaufać młodszemu, a seniorów, których mógłby mieć, nie można oderwać od codzienności. Najłatwiejszym sposobem jest przekazanie młodszym wielu zadań niezwiązanych z programowaniem, z którymi tak naprawdę nie chce tracić czasu dla starszych programistów.

Wynika z tego jednak kilka problemów.

Po pierwsze, rodzaj zleceń, które oferuje, naprawdę wymaga starszego programisty. W szczególności serwer kompilacji powinien skonfigurować serwer, który buduje oprogramowanie i wie, gdzie są problemy.

Po drugie, junior nie staje się bardziej przydatny. Po pięciu latach nadal będziesz wykonywać te same zadania, ponieważ nadal nie można ufać faktycznym pracom programistycznym.

Po trzecie, junior w końcu (tak jak Ty) zda sobie sprawę, że nie pomaga im w karierze. Założenie, że juniorzy są niskiej jakości, a nie mało (i szukają) doświadczenia, jest strasznym, ale bardzo częstym błędem w tej branży.

Więc tak, usiądź z szefem. Ale zrozum, w jakiej sytuacji się znajduje. Sprawdź, czy możesz dojść do jakiegoś rozwiązania, które rozwiąże wszystkie problemy. Będziesz potrzebować starszego mentora, a niektóre z twoich bieżących zadań będą musiały zostać przekazane seniorowi. Spowolni to projekt, ale na dłuższą metę się opłaci. Właśnie dlatego musisz dotrzeć do swojego szefa i ewentualnie do jego szefów. Sprawdź także, czy możesz znaleźć coś, co możesz zaoferować w zamian za zmniejszenie kosztów.

Jeśli nie możesz, możesz poszukać gdzie indziej.

pdr
źródło
NIE są to zadania „starszego programisty”. Ten (Jenkins) postępuje zgodnie z instrukcjami. Starszy programista decyduje o ścieżce (z doświadczenia), młodszy programista podąża ścieżką. Gdyby młodszy programista narzekał na konfigurację Jenkins, szukałbym innego młodszego programisty; czas potrzebny na jego skonfigurowanie jest krótszy niż czas na opublikowanie tego pytania i przeczytanie odpowiedzi. (Wiem, ponieważ wiele razy konfigurowałem Hudson / Jenkins. I replikacja bazy danych. Wiele razy Sooo.) „Po prostu zrób to”, wtedy będziesz wiedział, jak to zrobić. Jeśli nigdy nie nauczysz się, jak coś robić, i spodziewasz się, że będziesz prowadzić, jesteś niczym innym jak PHB w szkoleniu.
Michael
@michael_n: Całkowicie się nie zgadzam. Istnieje różnica między konfiguracją Jenkins a konfiguracją całego środowiska kompilacji w taki sposób, że zmniejsza wysiłek ze strony wszystkich programistów, jednocześnie umożliwiając bezpieczne wdrażanie jednym kliknięciem itp. I to jest różnica między tym, co daje Junior i co da Ci Senior, gdy zostanie poproszony o skonfigurowanie serwera kompilacji.
pdr
... a jednak zgadzam się z tobą: „Istnieje różnica między konfiguracją Jenkins a konfiguracją całego środowiska kompilacji”. Dokładnie. Myślę, że to zależy, czy interpretujesz pytanie dosłownie (zrobiłem). Instalacja Jenkinsa to popołudnie; konfiguracja kompilacji make / ant / maven zajmuje kilka dni i może z łatwością przerodzić się w tygodnie i musi być wykonana poprawnie. Dobrzy menedżerowie mogą rozbijać sprawy i przekazywać zadania na podstawie doświadczenia (pod tym względem byłem złym menedżerem w przeszłości, decydując się robić wszystko sam, tylko dlatego, że byłoby to szybsze. zespół „nie ewoluuje.)
Michał
@michael_n: Zobacz, co masz na myśli. Chyba mam niższe oczekiwania od menedżera. Zwłaszcza ten, który zatrudnia juniora z powodów finansowych, a nie planowania na przyszłość.
pdr
7

Uważam, że termin „programista” jest synonimem „programista”. Tak więc twórca oprogramowania to osoba, której głównym obowiązkiem jest pisanie kodu. W mojej pierwszej pracy miałem tytuł „Deweloper”, a moją główną odpowiedzialnością było projektowanie i kodowanie oprogramowania. Myślę jednak, że nie ma dokładnej definicji tego terminu. Różni ludzie używają go inaczej, dlatego znaczenie staje się rozmyte.

Aby jednak zespół programistów działał wydajnie, musisz mieć skonfigurowane te rzeczy, serwery CI, replikację SQL, wdrożenie do serwerów testowych, monitorowanie serwerów testowych, archiwizowanie kompilacji itp. (Być może nie wszystkie z nich mają zastosowanie w każdej sytuacji) .

Zadania te zajmą dużo czasu w początkowej fazie projektu, ale zajmą mniej czasu, gdy będziesz mieć dobrą konfigurację.

Niestety programiści wolą kodować niż zarządzać serwerami kompilacji. Dlatego często te nudne zadania należą do młodszych programistów, ponieważ starsi programiści mają ważniejsze zadania.

Nie spotkałem żadnej firmy, która wykorzystuje te zadania do oceny umiejętności.

Jeśli nie jesteś zadowolony ze swoich bieżących obowiązków, sugeruję podjęcie problemu ze swoim przełożonym.

Pete
źródło
1
Istnieje różnica między warunkami zgodnie z tym .
Bernard,
1
również zgodnie z tym
smp7d
2

To zależy. Wydaje się, że różne firmy definiują to inaczej, a dla niektórych jest to ogólny termin określający szereg funkcji technicznych. Dla niektórych jest to tylko tytuł. Zadając to samo pytanie wcześniej, otrzymałem odpowiedź podobną do: „Tylko programiści mają taką możliwość w naszej organizacji”, powiedziałbym może, ale niekoniecznie powoduje to rozwój).

Teoretyczna odpowiedź jest taka, że ​​programista (w porównaniu z programistą / programistą) to osoba, która „rozwiązuje problemy”, nawet jeśli nie ma nic wspólnego z „kodowaniem czegoś”.

Chcesz więcej kodować, więc może poproś swojego menedżera o więcej zadań związanych z kodowaniem lub o zrobienie czegoś, co robisz przez kodowanie? Wspomniałeś o operacjach, więc być może niektóre z nich mogłyby zostać stworzone przez frameworki DevOps (sprawdź szefa kuchni i marionetkę ), które sprawią, że funkcje będą bardziej wydajne i będą bliskie rozwoju.

Dimitrios Mistriotis
źródło
2

Często zdarza się, że Deweloper ma pewne umiejętności administrowania systemem. Jako starszy programista oceniam, że około 5% mojego czasu poświęcam na takie zadania.

Jednak jeśli nie wykonujesz żadnego kodowania, prawdopodobnie powinieneś porozmawiać ze swoim menedżerem o otrzymaniu zadań kodowania. W końcu chcesz zbudować doświadczenie kodowania. Jesteś także cenniejszy jako programista niż jako administrator systemu.

Gustav Bertram
źródło
1

Kod nie jest szczególnie przydatny, jeśli nie zostanie poprawnie wbudowany w aplikację lub nie uzyska dostępu do właściwych danych, więc wymienione działania wydają się bardzo zgodne z tym, co robi programista. Powinienem dodać, że twórcy oprogramowania również bardzo się mieszają w dokumentację i testy. Są to działania niezbędne przy produkcji oprogramowania.

To wspaniale, jeśli Twoja firma ma specjalistów, którzy mogą zrobić to za Ciebie, ale jeśli nie, to programiści są odpowiedzialni za wszystko, nawet do wdrożenia aplikacji w środowisku produkcyjnym i wspierania tam.

Matthew Flynn
źródło
0

Dość często zdarza się, że deweloper w małej i średniej firmie podejmuje pewne zadania administratora serwera / DBA / konfiguracji ogólnej.

Jeśli jednak zadania te zaczną stanowić większość twoich obowiązków, może być coś, o co należy się martwić w zależności od celów kariery. Chociaż prawdopodobnie możesz prosperować w niektórych firmach jako ogólny technolog, to kiedy musisz przenieść się do nowej firmy, może to powodować wiele problemów podczas przejścia. Jeśli nie robisz żadnego tradycyjnego rozwoju, musisz to wyraźnie zaznaczyć w swoim CV. Jeśli chcesz uzyskać pracę w ciągłym rozwoju po przepracowaniu określonej pracy, być może będziesz musiał zaakceptować coś, na co masz „zbyt wysokie kwalifikacje” w oparciu o lata w branży.

Z drugiej strony mogą istnieć firmy poszukujące programistów o zróżnicowanych umiejętnościach. Ale przy obecnym trendzie pisania kodu w rozmowach kwalifikacyjnych będziesz musiał także mieć umiejętności kodowania na najwyższym poziomie, nawet jeśli zadanie wymaga niewielkiego kodu po wejściu.

Jeśli nie chcesz utknąć w obecnej pozycji, zdecydowanie postaram się wkrótce naprawić tę sytuację.

smp7d
źródło