Przejdę do sedna sprawy. Szukam porady, w jaki sposób doświadczony programista przekonałby przyszłego pracodawcę, że należy go rozważyć na stanowisku posługującym się innym językiem. Dzieje się tak, gdy spełnione są inne wymagania niezwiązane z językiem (znajomość kontroli wersji, OO, stopień itp.). Na przykład programista PHP, który chce przejść na pozycję Perla. Czy to w ogóle możliwe? Jak trudne by to było? Czy to zależy od języka?
EDYCJA: Odpowiedzi, które otrzymałem, są dowodem, że przyszłość tej społeczności jest naprawdę jasna, ale niestety pozwala mi tylko wybrać jedną odpowiedź. Dziękuję wszystkim, którzy odpowiedzieli.
career-development
kanadyjski
źródło
źródło
Odpowiedzi:
Mówiąc jak ktoś, kto udzielił wywiadu.
Bądź szczery
Poinformuj ich, że zmieniasz ścieżki, a także powiedz im, ile czasu zajmie ci przyspieszenie.
Być entuzjastycznym
Pokaż im, że jesteś podekscytowany nauką nowego języka. Entuzjazm może nadrobić wrażenia, gdy wiesz, że programista zamierza wrócić do domu i kontynuować programowanie w tym samym języku.
Zrozumienie pojęć CS
Głębsze zrozumienie ułatwi wybranie nowego języka (między innymi).
Pokaż, że znasz powiązany język
Nauka języka Ruby, gdy poznasz Perla, nie jest dużym skokiem. Program nauki, gdy wiesz tylko, że C to ogromny skok.
Pokaż, że znasz już 3 języki
Im więcej języków znasz, tym łatwiej jest je wybrać, dopóki nie stanie się więcej przypadków nauki idiomów niż składni.
źródło
Doświadczony programista powinien umieć posługiwać się dowolnym językiem programowania, oprócz każdego rozsądnego narzędzia programistycznego. Jeśli chcesz przejść do nowego języka, po prostu przeczytaj książkę lub dwie w swoim własnym czasie, poćwicz w domu, a następnie wyślij CV, tak jak wszyscy inni.
źródło
Pełne ujawnienie: sam tego nie próbowałem
Wydaje mi się, że aby działało, potrzebujesz dwuczęściowej strategii. Najpierw musisz postawić stopę w drzwiach na rozmowę kwalifikacyjną. Oznacza to pominięcie filtrów CV i HR. W dowolny sposób możesz wprowadzić słowo kluczowe nowego języka do swojego CV bez kłamstwa (np. Przyczyniając się do projektu typu open source). Po otrzymaniu wywiadu musisz udowodnić kierownikowi ds. Rekrutacji, że ...
Sądzę, że każdy wystarczająco utalentowany programista w dowolnym języku powinien być w stanie to zrobić z wystarczającą cierpliwością. Będziesz potrzebować odpowiedniej okazji we właściwej firmie i we właściwych okolicznościach, aby zostać zatrudnionym do nowego języka. Krótko mówiąc, podobnie jak zatrudnienie do normalnej pracy. :-)
źródło
Przez około 25, a może nawet 30 lat musiałem uczyć się wielu nowych języków. Tyle teraz straciłem rachubę. Oto przybliżona lista.
JEŚLI pójdę w drogę powrotną ...
Asembler 8080, Z80, 6502, 8086, 80286.
BASIC (około 6 odmian).
APL (tak)
PL / 1
FORTRAN 4 i 77
COBOL (wierzcie lub nie)
PASCAL (kilka odmian, w tym Delphi)
OCCAM2 (mnóstwo zabawy - natychmiastowe tworzenie procesów)
C (wiele kompilatorów, wiele procesorów, wiele dziwnych wariantów)
C ++
Ada (duże systemy, a także systemy osadzone)
Trochę Perla dla zabawy
PHP
Zostały one zastosowane na wszelkiego rodzaju maszynach - małe systemy wbudowane, płyty programistyczne, systemy mainframe IBM z OSP, VAX / VMS, CP / M, DOS, Windows, Solaris, Linux, systemy wbudowane bez systemu operacyjnego, zdalne hostowane środowiska programistyczne, na i na liście jest.
I jest jeszcze kilka niejasnych rzeczy, których nie pamiętam (lub nie chcę ... PL / M).
Każdego z nich trzeba było się nauczyć, ponieważ było to częścią wykonania pracy. W większości przypadków nie miałem wcześniej doświadczenia, tylko tolerancyjny menedżer i chęć wskoczenia i wykonania pracy.
Jeśli nauka czegoś nowego Cię interesuje, kup książkę, zagraj i rób rzeczy we własnym czasie. Jeśli chodzi o stanowisko, wygląda dobrze na CV, że zrobiłeś to, ponieważ jesteś zainteresowany.
Jak wskazała jedna z pozostałych odpowiedzi, przez większość czasu koncepcje robienia rzeczy z głównego nurtu niewiele się zmieniają, a jedynie sposób ich wyrażenia. (Lub oczywiście możesz dostać się do niektórych bardzo nietypowych języków, które nie są OO ani proceduralne, a to wymaga zmiany sposobu myślenia).
Jeśli masz szansę zrobić coś niezwykłego w ramach swojej pracy, skorzystaj z okazji, póki możesz. Większość rzeczy wymienionych powyżej nie używałem od lat i prawdopodobnie nie będę ich używać ponownie, ale nigdy nie wiadomo. Pewnego dnia naprawdę chciałbym zbudować maszynę APL z mikrokodowaniem :)
źródło
Jako osobista anegdota zostałem zatrudniony na stanowisko Java, pokazując wersję demonstracyjną opartą na PHP. Myślę, że dostałem, ponieważ znałem język z określonej domeny (jeśli można go tak nazwać), więc nie będę - ucząc się kompletnych koncepcji, byłoby to jak użycie długopisu zamiast ołówka (masz dobry pomysł?).
Uważam, że naprawdę ważne jest pokazanie, że masz dobre oprogramowanie, koncepcje CS i umiejętności komunikacyjne, że szukasz rozwiązań problemów nawet dla najtrudniejszych, że chcesz być pomocny swoim współpracownikom, automatyzować i uprościć ich pracę, a co najważniejsze (przynajmniej dla mnie), że jesteście pokorni i przyznać, że nie wiecie wszystkiego i że jesteście gotowi dowiedzieć się więcej.
(Całkowicie nadużyłem słowa „to”…)
źródło
Podjąłem tylko jedną pracę, w której znałem podstawowy język programowania, więc tak, jest to nie tylko możliwe, zawsze zakładałem, że jest powszechny.
Należy pamiętać, że jest to jedyny język spośród wielu języków i technologii, których prawdopodobnie używają. SQL to SQL. Nie ma znaczenia, czy robisz to w Pythonie lub Perlu. A konfiguracja serwera DB nie jest nawet związana z językiem. HTML to HTML, nie ma znaczenia, czy jest generowany przez PHP czy ASP. To samo z XML. Gniazda są gniazdami, w zasadzie działają tak samo we wszystkich językach. OpenGL działa tak samo w Delphi, jak w C ++. Specyficzna składnia jest małą częścią obrazu, gdy patrzysz na rozwój jako całość. Niektóre z tych umiejętności są same w sobie ogromnymi tematami i są o wiele trudniejsze do nauczenia niż nowy język.
Chodzi o to, aby skupić się na umiejętnościach. Pewnie, możesz nie znać ich głównej technologii programistycznej, ale to tylko jeden kawałek układanki. Ale są szanse, że używają również innych technologii i systemów operacyjnych, które znasz.
źródło
Będziesz miał trudności z wejściem do drzwi, jeśli nie masz skrótów zapisu w swoim CV. Jeśli chcesz się zmienić, poświęć trochę czasu na osobiste projekty, aby nauczyć się wystarczająco dobrze, a następnie zaznacz to.
źródło
Z pewnością jest to możliwe. Właśnie rozpocząłem pracę, w której pracuję w ruby, javascript i gotowe. Zanim zacząłem, nie miałem dużego doświadczenia z żadnym z tych języków.
Myślę, że kluczem do mojego sukcesu było to, że w okresie między pierwszą odpowiedzią a wywiadem upewniłem się, że znam wystarczająco dużo ruby (ich głównego języka), aby zrozumieć i napisać kod z prawdziwego świata. Myślę, że pomogło mi również to, że znałem Python i C, które są dość podobne do ruby i go.
źródło
Firma, w której pracuję, nie szukała „programistów C #”. Każdy dobry programista zrobiłby to, co potrafiłby szybko nauczyć się języka.
Jeśli zatrudnisz programistów z myślą o tym, by zostali na kilka lat, to naprawdę nie widzę w tym problemu, mają dużo czasu na naukę tajników. Jeśli odejdą po roku, to prawdopodobnie strata czasu.
źródło
IMHO, nie wszyscy programiści reagują podobnie. Język to religia ;-)
Z własnego doświadczenia lubię uczyć się nowego języka, ale bardzo szybko przychodzi miłość lub nienawiść. Mogę zakochać się w nowym języku, który pierwszego dnia go zna i używać go przez lata. Nienawidziłem także języków od samego początku do teraz, nawet setki tysięcy, jeśli nie miliony programistów, używa ich.
Radziłbym więc nie polecać programistom w innym języku. Zamiast tego porozmawiaj o preferencjach językowych podczas piątkowego wieczoru piwnego, aby odkryć jego / jej miłość lub nienawiść.
źródło