Przeniesienie kariery do innego języka programowania [zamknięte]


21

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.


7
język! = kariera; kariera == programista
Steven A. Lowe

Odpowiedzi:


18

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.


Jest to świetna informacja do zdobycia, widząc potencjalnego kandydata ze strony menedżerów ds. Zatrudnienia.
canadiancreed

20

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.


4
Nie kupuję tego. Nauka bibliotek dostarczanych z językiem wymaga czasu. Czy początkujący c ++ pro / php będzie tak dobry, jak 10-letni weterynarz php? Również przejście z języka zarządzanego przez pamięć na język, który nie jest wcale, jest znacznie trudniejsze niż na odwrót.
Neil McGuigan

9
@NRM, dlaczego chcesz „ nauczyć się ” bibliotek? Zawsze jest dostępna referencja, nie powinieneś zaśmiecać swoich mózgów tak nieistotnymi rzeczami jak API.
SK-logic

4
@NRM Zły przykład. C ++ => PHP powinno być prawie trywialnym przejściem. Próbowanie tego w drugą stronę jest trudne.
Konrad Rudolph

1
@NRM - oczywiście „początkujący” nie będzie tak dobry jak 10-letni „weterynarz”. Istnieje jednak wiele miejsc pracy dla „początkujących”. Stąd pochodzą weterynarze.
davidhaskins

1
Problemem jest przekonanie przyszłego pracodawcy, że możesz zmieniać języki, zwłaszcza HR, który ma tylko wymóg z informacją „minimum 37 lat doświadczenia w Javie” lub coś równie głupiego.
Fred Larson

8

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 ...

  • możesz mówić inteligentnie w nowym języku (zwłaszcza jeśli nie jesteś jeszcze ekspertem)
  • jesteś w stanie szybko przyspieszyć, więc nie opóźniasz współpracowników

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. :-)


7

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 :)


4

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”…)


3

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.


1

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.


1

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.


1

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.


0

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ść.

  • Celowo pomijam nazwy języków w tej odpowiedzi ;-)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.