W idealnym świecie:
W doskonałym artykule Nie nazywaj się programistą i innymi poradami zawodowymi Patrick McKenzie wyjaśnia między innymi, że język nie ma znaczenia:
Deweloper to ogólnie osoba, która rozwiązuje problemy. Deweloper nie jest osobą, która pisze kod w określonym języku.
Firmy nie dbają o języki, które znasz. Jeśli będą musieli zatrudnić programistę do projektu napisanego w określonym języku i mają kandydata, który ma duże doświadczenie, ale nigdy nie napisał wiersza kodu w tym języku, nadal byłby zatrudniony.
Zgodnie z moim doświadczeniem zarówno jako programisty, jak i osoby, która musiała zatrudnić innych programistów, obserwacja jest bardzo podobna:
N-letnie doświadczenie w Javie lub N-letnie doświadczenie w C # nie ma znaczenia. Liczy się to, że kandydat wie, jak rozwiązywać problemy, zna różnicę między kodem spaghetti a czystym kodem z dobrze przemyślaną architekturą itp.
Nie dbam o języki, których używałeś wcześniej. W przypadku projektu w języku C # wolę zatrudnić profesjonalnego programistę, który spędził całe życie na pisaniu kodu Java, Python i Ruby on Rails , niż początkującego, który zna tylko język C # i zna go źle.
Wiedza i doświadczenie zdobyte podczas posługiwania się jednym językiem są w większości przydatne w dowolnym innym języku.
Doświadczony programista, który wykorzystywał Ruby on Rails do programowania stron internetowych i resztę swojej kariery pisał aplikacje Java na komputery stacjonarne przy użyciu Oracle, doskonale pasuje do projektu ASP.NET MVC przy użyciu Microsoft SQL Server. Ponieważ ta osoba już wie wszystko, czego potrzebuje do tej pracy , pomijając kilka konkretnych rzeczy i różnice w składni.
Z drugiej strony osoba, która wykonała tylko kilka małych witryn ASP.NET MVC, w ogóle nie pasuje, ponieważ może nie do końca rozumieć architekturę MVC, może wiedzieć, co to jest profilowanie SQL, i może brakować innych istotnych elementów wiedza, umiejętności.
Nie mów mi, że nie jestem w stanie rozwiązać małego problemu ze stroną PHP korzystającą z CodeIgniter tylko dlatego, że nigdy wcześniej nie korzystałem z CodeIgniter.
W praktyce:
W praktyce, kiedy szukam wolnych zawodów i kiedy ogólnie widzę oferty pracy, są one bardzo specyficzne dla danego języka.
Niektórzy szukają programisty PHP z dwuletnim doświadczeniem w Magento. Inni będą szukać osoby z doświadczeniem VB.NET od co najmniej trzech lat, a jeśli wyślesz im wzmiankę o tym, że tworzysz C # przez sześć lat, ale bez wzmianki o VB.NET, nie będą się tym przejmować odpowiedzieć. Jeśli poprosą o osobę z doświadczeniem w Firebird, nie będą słuchać o twoim dziesięcioletnim doświadczeniu z Oracle.
Dlaczego istnieje taka różnica między teorią a tym, co Patrick McKenzie i ja określamy jako zdrowy rozsądek, a prawdziwym światem ofert pracy?
<rant>...</rant>
. Poważnie, czy jest tu prawdziwe pytanie?
Don't tell me that I'm unable to fix a small problem with a PHP website which uses CodeIgniter just because I never used CodeIgniter before.
Chociaż jesteś w stanie rozwiązać problem, jeśli główną przyczyną jest CodeIgniter (jedno z kilku dziwactw frameworka lub jedno z wielu otwartych błędów), to zajmie ci znacznie więcej czasu, aby rozwiązać problem.