Jeśli pracuję jako programista w jednym języku (np. Java) i staram się o stanowisko starszego programisty, czy to kwalifikuje mnie do bycia starszym programistą na stanowisko w innym języku (np. Ruby)?
Jeśli pracuję jako programista w jednym języku (np. Java) i staram się o stanowisko starszego programisty, czy to kwalifikuje mnie do bycia starszym programistą na stanowisko w innym języku (np. Ruby)?
Odpowiedzi:
Najlepszym sposobem na to jest sprawdzenie, jaka jest różnica między Deweloperem a Seniorem. Zakładając, że nie jest to tylko kwestia czasu, ogólnie oczekuję, że zarówno Programiści, jak i Starsi Programiści będą w stanie:
Ponadto spodziewałbym się, że starszy programista będzie:
Powstaje zatem pytanie, czy spełniasz rozszerzone kryteria dla drugiego (lub trzeciego lub czwartego) języka? Sugeruję, że jeśli jesteś wystarczająco kompetentny technicznie w języku, do którego się przeprowadzasz, to tak, ponieważ większość rzeczy dla seniorów jest zbywalna.
Możesz ubiegać się o dowolne stanowisko w dowolnej firmie, którą lubisz, bez względu na swój obecny status.
Od ciebie, w swoim życiorysie / liście motywacyjnym / rozmowie kwalifikacyjnej, będzie zależeć, czy jesteś człowiekiem do pracy.
Po przeprowadzeniu wywiadu z Sr Developers szukam następujących cech.
Jest mnóstwo innych rzeczy, których szukam, ale to są główne punkty.
Chociaż zaleciłem zatrudnienie starszych programistów, którzy nie byli ekspertami w języku używanym w pracy, byli ekspertami w podobnych językach.
Możesz złożyć podanie, ale przynajmniej gdybym zatrudniał, mógłbym cię zatrudnić lub nie.
Starszeństwo dotyczy (co najmniej) dwóch obszarów. Ogólna wiedza specjalistyczna w zakresie rozwoju i wiedza językowa / ramowa. (Celowo pomijam wiedzę o przestrzeni biznesowej) w chwili obecnej. Bycie starszym programistą w moich książkach obejmowałoby także poziom wiedzy z zakresu projektowania / architektury. Jak zbudować dobry / testowalny system itp.
Przejście do tego poziomu w Javie powinno dać ci dobrą pozycję w przypadku innych (podobnych / proceduralnych) języków.
Ale w erze oczekiwanej natychmiastowej produktywności mało prawdopodobne jest, aby wiedzieć o Ruby tyle samo co Java. Jak podzielić system na konstrukcje przyjazne dla Ruby zamiast na konstrukcje przyjazne dla Java. Prawdopodobnie znasz niektóre frameworki Java, a nie Railsy lub inne rzeczy specyficzne dla Ruby.
Gdybym miał poprosić cię o wykonanie kodowania tablicy w Ruby podczas wywiadu, czy mógłbyś to zrobić?
Wszystko to wpłynie na moją decyzję o zatrudnieniu ciebie, czy nie, na dowolnym poziomie; ale w szczególności dla wyższych ról.
Powodzenia
Nie.
To jedna z dużych różnic między naszym zawodem a innymi bardziej „formalnymi” zawodami. Jeśli pracujesz jako prawnik robiąc testamenty i nieruchomości przez 20 lat, będziesz miał wysoką stawkę, ponieważ masz 20 lat wiedzy zgromadzonej w tej dziedzinie .
Jeśli pracujesz w C ++ / Win32 / MFC od 15 lat, to tak naprawdę nie kwalifikuje cię do zajęcia wyższego miejsca jako programista Railsów, nawet jeśli nadal rozwiązujesz te same problemy w tej samej domenie ... powiedz medyczne na przykład fakturowanie.
Co gorsza, większość firm nawet nie weźmie Cię pod uwagę z grubsza podobnej pozycji ... Na przykład, jeśli pracujesz w C ++ / MFC przez 5-7 lat, powinieneś być w stanie nabrać prędkości na C # /.NET bardzo szybko, przynajmniej na komputery. Niestety większość firm nie widzi tego w ten sposób.
To zależy
Wyjmij z tego „programowanie”. Udawaj, że jesteś profesjonalnym tłumaczem.
Załóżmy, że angielski jest Twoim pierwszym językiem, a także biegle władasz językiem francuskim. Najprawdopodobniej nauczysz się hiszpańskiego dość łatwo.
Jednak nie jest tak prawdopodobne, że szybko opanujesz wiele chińskich dialektów. Podczas gdy Twoje doświadczenie jako lingwisty pomoże Ci nauczyć się języka (języków), dając przewagę nad kimś, kto nigdy nie uczył się języka obcego, nadal zajmuje ci dużo więcej czasu, aby stać się „ekspertem” (tj. „Seniorem”) ) tłumacz w tym języku.
Tak i nie.
Jeśli języki są podobne , powiedzmy C ++, Java lub Ruby, na pewno powinieneś się zastanowić. W zależności od elastyczności ludzi siedzących w tych biurach masz szansę na walkę.
Jeśli jednak języki są bardzo różne , a przez to mam na myśli, że jesteś facetem COBOL, który był podekscytowany Haskellem, to pomimo twoich ponad 10-letnich szans na COBOL, istnieje duże prawdopodobieństwo, że możesz nie być w stanie uzyskać nawet wywiadu.
PARA RZECZY, KTÓRE ZOSTANĄ W SWOJEJ WYSOKOŚCI W TAKICH SYTUACJACH:
Rzadko widuję tytuł „starszy” oparty na języku. Znam kilku starszych programistów systemów , kilku starszych programistów internetowych i jednego starszego programistę COBOL.
Programowanie jest wieloaspektowe i ma do zaoferowania sporo dyscyplin. Spodziewałbym się, że starszy programista (w tytułach, programista i programista wydają się być wymienni) będzie biegły w kilku popularnych językach używanych do tworzenia stron internetowych. Czy to czyni guru Pythona i PHP natychmiastowym ekspertem w C #? Nie. Z drugiej strony, nie wszyscy guru C # opanowali sztukę zarządzania projektami i przywództwa.
Pełniłem rolę CTO w firmie, oprócz tego, że byłem starszym programistą systemów. Z radością jednak odłożyłbym się do eksperta od programu lub LISP, gdybyśmy napotkali projekt, który wymagałby jednego z nich. Część bycia dobrym liderem jest zrozumienie własnych ograniczeń i braków pierwszy .
Nie jestem pewien, czy chciałbym pracować w firmie, a nawet w dziale, który koncentrował się na jednym i tylko jednym języku. To brzmi tak, jakby zrobił to, co zawsze mówili, palenie papierosów: zahamowanie wzrostu, gdy rzeczywistość jest znacznie gorsza.
Nie gonić za tytułami, gonić za wiedzą. Ale, żeby być uczciwym, twoja rola na wcześniejszym stanowisku kierowniczym prawdopodobnie zapewni ci dodatkową przewagę, pod warunkiem, że wykażesz się kompetencją w danym języku.
Myślę, że to zależy od tego, co postrzegasz jako starszy programista? Jeśli jest to raczej rola architekta, wiele zasad projektowania i wzorców projektowych będzie do Państwa dyspozycji na podstawie doświadczenia dewelopera, niezależnie od języka. To jest plus ;-)
Jednak patrząc na tworzenie aplikacji lub kodu w sposób możliwie najbardziej produktywny i łatwy w utrzymaniu (zwijanie bitów zapisanych), nie sądzę, abyś mógł przejść na tym samym poziomie doświadczenia przy zmianie języka, IDE i / lub frameworka.
Ale jak powiedział runrun, nie powstrzymuje cię to od ubiegania się o nic
Będzie to w dużej mierze zależeć od firmy, w której przeprowadzasz wywiad, ponieważ zazwyczaj wewnętrzne procedury kadrowe decydują o tym, jak zatrudniani są nowi pracownicy. Większe firmy wydają się być bardzo sztywne i jeśli twierdzą, że musisz mieć n- letnie doświadczenie w danym języku, aby zostać uznanym za wyższy poziom, może się okazać, że przyniosą ci tylko programistę średniego szczebla.
To powiedziawszy, nie powinno to jednak powstrzymywać Cię od ubiegania się o stanowisko, a jeśli przyprowadzą cię na rozmowę kwalifikacyjną, powinieneś o tym porozmawiać.
Powiedziałbym, że im bardziej niski poziom lub język jest przyjazny dla maszyny, tym bardziej jesteś ekspertem.
Znajomość Java / C # jest mniej opłacalna niż znajomość ASM / C / C ++.
Te ostatnie języki zajmują się zarządzaniem pamięcią i innymi rzeczami, które faktycznie mają znaczenie podczas programowania.
Ale w przypadku innych „łatwych” języków konieczne byłoby szybkie porównanie funkcji, które sprawiają, że są one „łatwiejsze”, ale uważam, że jest to bezużyteczne. Doświadczenia z łatwymi językami są lepiej mierzone za pomocą CMS / innego gotowego kodu używanego do pracy, takiego jak zapalnik kodu lub django lub Apache lub RoR.
Dla mnie starsi programiści to ludzie, którzy programują jądra, systemy, wbudowany sprzęt itp. Programiści używający języków, które nie są przyjazne dla maszyn, nie są dla mnie seniorami. Po prostu wykonują robotę, ale to wszystko.