Odpowiedzi:
Przy zatrudnianiu szukamy rozróżnienia między kimś, kto będzie mógł nam pomóc w zaprojektowaniu naszego systemu, zdefiniowaniu procesów, tworzeniu specyfikacji technicznych, wdrożeniu zaawansowanego refaktoryzacji itp., A kimś, kto pomoże nam ukończyć zadania programistyczne poza listą kontrolną . Wierzę, że możesz nazwać tego pierwszego inżynierem oprogramowania, a drugim programistą .
To naprawdę zależy od firmy, ponieważ nie sądzę, aby istniały ramy prawne do egzekwowania denominacji lub innej, a przynajmniej nie jestem tego świadomy i może to różnić się w zależności od kraju (na przykład użycie terminu „inżynier” jest właściwie dość regulowany we Francji, ale istnieją warianty, które są dozwolone w przypadkach „nadużycia”).
Biorąc to pod uwagę, ogólny trend wygląda następująco:
Stanowisko programisty to zwykle stanowisko profesjonalisty zatrudnionego do opracowania kodu programu komputerowego . Będzie to oznaczało, że umiesz pisać kod , rozumiesz algorytm i postępujesz zgodnie ze specyfikacjami . Zazwyczaj jednak kończy się to pod względem odpowiedzialności.
Stanowisko programisty jest zwykle uważane za nadtyp pozycji programisty . Obejmuje on te same obowiązki, a także możliwość zaprojektowania i zaprojektowania komponentu oprogramowania oraz napisania dokumentacji technicznej (w tym specyfikacji). Jesteś w stanie - przynajmniej technicznie - poprowadzić innych (więc programistów), ale niekoniecznie zespół (pojawia się problem ...)
Stanowisko inżyniera zwykle sugeruje, że jesteś programistą, który ma określony stopień naukowy , trochę wiedzy inżynierskiej i jest w stanie zaprojektować system (jak w: kombinacja komponentów / modułów oprogramowania, które razem tworzą całość bytu programowego) . Zasadniczo widzisz szerszy obraz i jesteś w stanie zaprojektować i wyjaśnić go oraz podzielić na mniejsze moduły .
Jednak wszystko to jest dyskusyjne i, jak powiedziałem, nie ma żadnych wymagań prawnych, o których jestem świadomy w krajach USA / Wielkiej Brytanii . Biorąc to pod uwagę, we Francji możesz nazywać się „inżynierem” tylko, jeśli pochodzisz ze szkoły inżynierskiej (uznanej przez Commission des Titres d'Ingenieurs lub coś w tym rodzaju). Nie możesz powiedzieć, że masz „stopień inżyniera”, ale możesz powiedzieć, że masz „stopień inżyniera”, jeśli studiowałeś dyscyplinę, która wchodzi w zakres inżynierii i technologii.
Być może niektóre kraje mają podobne rozróżnienie, po prostu tak naprawdę nie wiem.
Powrót do tytułu inżyniera oprogramowania ... Kiedyś jeden z moich nauczycieli powiedział naszej klasie - i słusznie - że na dzień dzisiejszy nie ma czegoś takiego jak tak zwana „inżynieria oprogramowania” . Ponieważ inżynieria czegoś (czy to budynku, pojazdu, sprzętu ...) oznacza, że jesteś w stanie przewidzieć jego projekt i wszystkie fazy jego produkcji, a także dokładnie przewidzieć, jakich zasobów będziesz potrzebować, a tym samym koszt produkcji.
Dotyczy to większości „prawdziwych” dyscyplin inżynieryjnych. Istnieją oczywiście wahania (na przykład ceny materiałów będą się zmieniać w czasie), ale istnieją bardzo skończone modele teoretyczne (do projektowania i planowania) i modele empiryczne (w celu zachowania któregokolwiek z tych pierwszych w ramach dostępnych ograniczeń) które pozwalają przewidzieć datę zakończenia projektu i wykorzystanie jego zasobów.
Głównym problemem związanym z oprogramowaniem jest to, że jeszcze go tam nie ma. Chcemy dążyć do inżynierii oprogramowania, ale tak naprawdę nas jeszcze nie ma. Ponieważ mamy bardzo płynne i dynamiczne środowisko, bardzo zmienne ograniczenia dla projektów i wciąż brak dojrzałości z perspektywy naszych procesów. Pewnie moglibyśmy powiedzieć, że jesteśmy w tym lepsi (choć jest to wysoce sprzeczne z twardymi danymi), ale byliśmy w tym dopiero od lat 60. (wcześniejsze projekty były faktycznie bliżej komputerów tylko sprzętowych, a zatem jak na ironię, jak na ironię) ). Podczas gdy budujemy pojazdy silnikowe od ponad wieku, pojazdy w ogóle przez kilka tysiącleci, i budujemy jeszcze więcej tysiącleci (i byliśmy w tym naprawdę cholernie dobrzy w niektórych częściach świata, dzięki czemu czujesz się jak my „
Nie potrafimy systematycznie dokładnie przewidzieć terminów , nie potrafimy systematycznie dokładnie przewidzieć kosztów , nie potrafimy systematycznie identyfikować i ograniczać nieodłącznego i zewnętrznego ryzyka w sposób skuteczny i deterministyczny . Najlepsze, co możemy zrobić, to stworzyć wystarczająco dobre prognozy i pomieścić bufor, jednocześnie starając się zoptymalizować procesy w celu zmniejszenia liczby cykli i kosztów ogólnych.
Ale zobacz, może taka właśnie jest inżynieria. I właśnie wtedy, gdy ktoś mówi o „inżynierze oprogramowania”, powinien pomyśleć i dążyć do niego.
Wydaje się więc, że nie jest to łatwe do zastąpienia prostym procesem programowania lub bardziej zaawansowanym opracowywaniem aplikacji.
Mimo wszystko wszystko jest kwestią trendów. Ostatnio dość powszechne jest posiadanie horyzontalnego zespołu programistów, w którym wszyscy w zespole są starszymi programistami (tak, stolice, ponieważ to sprawia, że czujemy się wyjątkowi, prawda?), Bez rzeczywistego rozróżnienia wieku (dość uczciwie, moim zdaniem opinia) i nie tyle rozróżnienia umiejętności (uh-oh ...) i obowiązków (teraz to nie może być dobre, poza czysto szumem PR).
Jest to także czasami tylko siła przyzwyczajenia i specyficzne dla danej kultury i żargonu branży. Więcej stanowisk dla produkcji oprogramowania wbudowanego korzysta z tytułów dla inżynierów oprogramowania. Głównie dlatego, że prawdopodobnie oznaczałoby to, że zawsze będziesz musiał do pewnego stopnia radzić sobie ze sprzętem również w tej dziedzinie, więc oczywiście masz do czynienia z innymi aspektami produkcji i całego produkowanego przez ciebie „systemu”. Nie tylko kawałki wariują w nim. Z drugiej strony spektrum, tak naprawdę nie widzisz terminu inżyniera używanego na stanowiskach produkcyjnych oprogramowania finansowego. Jest to spowodowane tym, że jest mimetyczną ewolucją tej branży od jednego z jej poprzedników (powiedzmy, inżynieria osadzona ma swoje korzenie w inżynierii samochodowej, na przykład), lub dlatego, że chcą po prostu przypisać większą lub mniejszą wagę pozycji.
Aby upewnić się, że wszyscy zgubią się we mgle, znajdziesz inne tytuły mieszające oba (np. „Inżynier rozwoju oprogramowania” lub „Inżynier oprogramowania w teście”!), A także inne, podkreślające jeszcze bardziej zwariowane mosty z innymi domenami ( pomyśl o „Architekcie oprogramowania” i o tym, jak „architektura oprogramowania” może być bezwstydną kradzieżą słownictwa). I niech nadchodzą: Inżynier ds. Wydania, Menedżer ds. Zmian zmian, Inżynier budowania (tam też jest ffaaarrrrrr). A czasami po prostu „inżynier”.
Mam nadzieję, że pomogło, choć tak naprawdę nie jest to odpowiedź.
Aha, a to oznacza, że twoja nowa firma albo próbuje cię zwabić nowym tytułem, albo że tak naprawdę nie dbają o tytuły, albo że naprawdę będziesz zajmować wyższe stanowisko. Jedynym sposobem na poznanie jest zapoznanie się ze specyfikacją pracy, porozmawianie z nimi, a następnie spróbowanie i samodzielne osądzenie. Mam nadzieję, że jest to druga opcja i że jesteś z niej zadowolony (i potencjalnie zarobisz na niej więcej). ;)
Inżynierowie oprogramowania to ludzie pracujący w firmach, które nazywają ludzi piszących dla nich oprogramowanie „inżynierami oprogramowania”.
Programiści to ludzie pracujący w firmach, które nazywają ludzi piszących dla nich oprogramowanie „programistami”.
Są też programiści lub programiści . Są to osoby pracujące w firmach, które nazywają ludzi, którzy piszą dla nich, odpowiednio „programistami” lub „programistami”.
Jest więc „Inżynier oprogramowania”, „Programista”, a także „Developer”, „Coder” i nigdy nie można zapomnieć o „ekspercie SOA”
Są to wszystkie warunki marketingowe dla osób, które nie mogą powiedzieć czegoś znaczącego w swoim CV, na przykład faktycznej roli (nie tylko stanowiska) na poprzednich stanowiskach.
W przypadku ogłoszeń o pracę różnica leży po stronie HR.
Podsumowując: każda osoba ma swoje własne zdanie na temat „tego, co czyni dobrego pracownika działającym z kodem”, a niektórzy lubią kojarzyć takie i takie umiejętności z takimi i takimi tytułami.
Co musisz zrobić Ogłoszenia o pracy powinny zawierać opis wymaganych umiejętności, a CV powinny wyjaśniać szczegóły doświadczenia kandydata.
Żadnych różnic. To są te same rzeczy. Firmy mogą jednak mieć formalne opisy stanowisk, używając terminów, a następnie może mieć znaczenie dla danego terminu.
To naprawdę zależy od tego, jak firma określa stanowiska. Może być tak, że jako inżynier oprogramowania będziesz mieć więcej możliwości decyzji projektowych, podczas gdy jako programista dostarczy Ci diagramy UML i napiszesz program.
Ale nie ma rzeczywistej definicji zestawu, więc na podstawie tytułu ludzie będą wiedzieli, co robisz lub jakie masz doświadczenie.
Gdy byłem architektem / programistą, miałem tytuł informatyka, ale chciałbym tylko powiedzieć ludziom, że jestem programistą, ponieważ pierwszych dwóch nie można łatwo zdefiniować, ale większość ludzi wie, co robi programista.
Jeśli tytuł jest dla Ciebie ważny, zaakceptuj nowy, ponieważ inżynier brzmi wyżej niż programista.
Wydaje mi się, że nie ma żadnych „oficjalnych różnic”, które mogą oznaczać:
Zmieniają się też terminy związane z modą ... Najpierw terminem był „programista”, potem „inżynier oprogramowania”, a teraz wydaje się być „programistą” ...
Lepiej jest przeczytać opis stanowiska lub komuś z konkretnej firmy
W niektórych jurysdykcjach „Inżynier” niesie ze sobą wymóg bycia profesjonalnym inżynierem, tj. Posiadania inż. zaprzeczanie poświadczeniom. Jednak w innych obszarach może nie być takiej różnicy, jak kilka lat temu byłem „inżynierem projektowania oprogramowania” pracującym w stanie Waszyngton.
Inżynierowie oprogramowania zwykle pracują na bardzo dużych systemach, których opracowanie zajmuje wiele lat, np. Od 5 do 16 lat. Programiści zwykle mają ten stereotyp kodowania i nic więcej. Ale tak naprawdę zależy to od organizacji, w której pracujesz i od tego, jak dział HR promuje tę rolę, jak wyjaśniono powyżej. Są zasadniczo takie same. Tylko nie przywiązuj się zbytnio do tytułu, ponieważ jest on synonimem.