Czy uczenie się jakiegokolwiek języka naturalnego w szczególności przyczyniłoby się do dalszej kariery programistycznej? [Zamknięte]

52

Wydaje się oczywiste, że angielski jest dominującym językiem międzynarodowym w programowaniu opartym na poprzednich pytaniach P.SE (choć wysoce pozytywny komentarz poprawnie wskazuje, że zadawanie takich pytań na stronie głównie angielskiej wypaczy wyniki).

Czy jednak nauka języka obcego przy tworzeniu oprogramowania przynosi korzyści? Na przykład, czy Chińczycy mają zupełnie inne narzędzia programowe, języki, technologie itp.? Co powiesz na japoński, rosyjski i inne języki inne niż łacińskie? Czy istnieje cały świat języków programowania, narzędzi itp., Które istnieją tylko w tych innych językach?

Czy też osoby znające te języki korzystają z narzędzi i języków, które znamy i kochamy?

Anonimowy
źródło
2
+1. Miłe pytanie. Byłbym zainteresowany poznać siebie.
Neil
2
Mniej popularne języki często zawierają książki / samouczki napisane w języku ojczystym ich autora. Na przykład przez długi czas większość rubinów była japońska, zanim stała się popularna.
jozefg
6
W dawnych czasach dobrze było znać japoński, jeśli byłeś twórcą gier konsolowych.
David Sergey
2
Ciekawa strona związana z tym na Wikipedii o językach programowania innych niż angielski .
Alexander
1
Współpracowałem z chińskimi i rosyjskimi programistami, którzy pracowali w języku angielskim, więc powiedziałbym, że chociaż zawsze jest korzystne, aby zwiększyć swoje umiejętności, wysiłek uczenia się trudnego języka (przez co rozumiem, że nie używa alfabetu zachodniego) jest prawdopodobnie nieistotne.
Heatwave

Odpowiedzi:

44

Odpowiem na twoje tytułowe pytanie. Odpowiedź brzmi „tak”, ale nie z powodów, których szukasz. Będąc wielojęzycznym w językach mówionych, IMO może pomóc ci oddzielić pomysły od rzeczy używanych do ich wyrażenia. Z podobnych powodów zalecam naukę co najmniej jednego języka składniowego nie opartego na języku c, jeśli zacząłeś od jednego.

Erik Reppen
źródło
17
+1 Znajomość wielu języków ludzkich może pomóc w abstrakcyjnym myśleniu, co często ma zastosowanie w rozwoju oprogramowania.
Allan
4
+1 (więcej, gdybym mógł) Widziałem, że zbyt wiele osób stwarza problemy dla siebie, ponieważ nie mogli zrozumieć różnicy między pojęciem a słowami użytymi do jego opisania.
Anton
3
Uważam, że znajomość języka podpisanego, takiego jak ASL, daje inne spojrzenie na języki w ogólności
TruthOf42
1
@ TruthOf42 przynajmniej nie znajdziesz kodu skomentowanego w ASL.
dokładnie
1
@EricDong Nie wiem. Nauczyłem się norweskiego, gdy miałem 7-8 lat. Mam wrażenie, że przez lata interakcje z ludźmi sprawiają, że wiele osób nie przyłapuje się na myśleniu niewerbalnym. Myślę, że znajomość więcej niż jednego języka mówionego bardzo by w tym pomogła. Znajomość ASL prawdopodobnie pomogłaby jeszcze bardziej. I oczywiście bardzo pomaga nauka wielu języków programowania z bardzo różnych szkół projektowania. Jestem kiepskim poetą, ale podejrzewam, że tak to wygląda. Im więcej widzisz za zasłoną słów, tym bardziej skutecznie wyrażasz każdy pomysł.
Erik Reppen
13

Nie. Nie brakuje Ci żadnego materiału do nauki.
Jako native speaker języka holenderskiego mogę obiecać, że moje środowisko programistyczne + większość materiałów referencyjnych jest napisana w języku angielskim. Istnieje kilka programów nauczania napisanych w innym języku, ale zapewniam cię, że nie ma w nich żadnej magii.

Mogę sobie jednak wyobrazić, że dokumentacja API / webservices / projektów lub komentarzy w kodzie źródłowym może być w innym języku niż angielski. W tym celu proponuję objąć niektóre z najczęściej używanych języków: hiszpański, arabski i chiński

Steffe
źródło
5
Będzie to oczywiście zależeć od wybranej dziedziny - w przypadku gier wyobrażam sobie, że japoński może być bardzo przydatny ....
Clockwork-Muse
Pracowałem nad kodem komentowanym w trzech różnych językach: francuskim, angielskim i niemieckim.
dokładnie
12

Może to mieć sens, gdy chcesz specjalizować się w konkretnej technologii opracowanej w kraju innym niż angielski.

SAP, na przykład, jest niemiecką firmą. SAP ERP, gigant oprogramowania zwanego zwykle „SAP”, ma większość modułów oprogramowania użytkownika napisanych we własnym języku programowania SAP ABAP. Jako programista możesz (i często trzeba) spojrzeć na kod ABAP.

Dziesięć lat temu większość prac nad ABAP miała miejsce w Niemczech i nie było żadnych zasad, aby komentarze i identyfikatory musiały być w języku angielskim, więc w starszym kodzie ABAP znajduje się dużo języka niemieckiego.

Jako programista ABAP często potrzebuję debugować starszy kod napisany przez SAP. Jestem native speakerem języka niemieckiego, więc to dla mnie lekkie irytujące przełączanie się między niemieckim i angielskim przez cały czas, ale naprawdę szkoda mi każdego, kto nie mówi po niemiecku i nagle znajduje się w kodzie źródłowym skomentowanym po niemiecku.

Znajdziesz także trochę niemieckiego w starszych interfejsach API. Na przykład aktualny czas znajduje się w zmiennej globalnej SY-UZEIT. „Uzeit” to skrót od „Uhrzeit”, który po niemiecku oznacza „Pora dnia”. CustomerID to KUNNR(„Kundennummer”), ilość pieniędzy w walucie BETRHkrajowej to („Betrag - Hauswährung”) itp.

Słyszałem anegdoty o biednych nie-niemieckich programistach ABAP, którzy mają niemiecki słownik tuż obok swojego podręcznika ABAP.

Philipp
źródło
Podobne doświadczenie miałem z TYPO3.
liori
9

Chyba że planujesz karierę w Chinach z samowystarczalnym rynkiem, założę się, że angielski jest więcej niż wystarczający. Hobbyści mogą używać innych języków, ale w każdym płatnym dziele, które widziałem w dowolnym miejscu wokół angielskiego, był językiem obowiązkowym. Również ze względów praktycznych.

Z drugiej strony znajomość większej liczby języków może pomóc w karierze w działalności satelitarnej. Wiele programów jest zlokalizowanych, a tłumaczenie i testowanie wymaga znajomości języka docelowego. Jest to cenna „umiejętność”. Więc jeśli masz na to ochotę, po prostu idź dalej i naucz się.

Balog Pal
źródło
1
IMO na ogół błędem jest zatrudnić tłumacza, który nie wychował się w języku docelowym. Wielu Amerykanów może być dość kompetentnych w tłumaczeniu języka obcego na angielski, ale bardzo niewielu będzie w stanie przetłumaczyć angielski na inny język.
kevin cline
2
pewnie, a programista byłby marnotrawstwem także jako tłumacz - ale dobrze, że może dostrzec problemy związane z l10n
Balog Pal
8

Tak, nauka innego języka przyspieszy Twoją karierę programistyczną. To dlatego, że moim zdaniem nauka innego języka przyspieszy każdą karierę.

Wynika to z kilku powodów, z których niektóre zostały już omówione powyżej:

  • Nauka innego języka poszerzy twoje horyzonty; koniecznie wystawi cię na aspekty innej kultury i sposobu myślenia i da ci doświadczenie w mapowaniu tego do własnych myśli. Oczywiście ma to związek z programowaniem, ale jest to również ogólnie przydatna umiejętność komunikacji między osobami.
  • Uczenie się innego języka (zwłaszcza drugiego) pomoże ci zrozumieć, jak działa Twój własny język, ponieważ musisz analizować, jak działa gramatyka nowego języka i jak mapuje się do gramatyki twojego języka, zamiast ślepo akceptować to „ tak to jest. Nawet jeśli w swojej karierze używasz tylko języka ojczystego, lepsze zrozumienie go pomoże ci skuteczniej komunikować się.
  • Posiadanie nawet niewielkiej znajomości innego języka może sprawić, że będziesz wyglądać naprawdę dobrze. Wszystkie oprócz najmniejszych firm będą miały do ​​czynienia z zagranicznymi dostawcami lub klientami. Nawet jeśli oboje prowadzicie działalność w języku angielskim, możliwość wymiany drobnych uprzejmości (na przykład pozdrowienia) z ludźmi w ich ojczystym języku stwarza dobre wrażenie. Bycie dostępnym do tworzenia dobrego wrażenia poprawi Twoją pozycję w firmie.
  • Znajomość innego języka pomoże Ci skuteczniej komunikować się z native speakerem tego języka, nawet jeśli używasz swojego języka ojczystego. Dzieje się tak, ponieważ można dostrzec próby użycia konstruktów, które są powszechne w języku obcym, i uzyskać od nich znaczenie, nawet jeśli nie są one tak jasne we własnym języku. Podobnie pomoże ci dostrzec i zrozumieć fałszywych przyjaciół, którzy mogą się pojawić.
  • Dobra znajomość języka otwiera możliwość pracy w krajach, w których ten język jest używany. To poszerza pulę potencjalnych dostępnych miejsc pracy, co z kolei oznacza, że ​​będziesz mieć więcej możliwości dalszego rozwoju kariery.

Tak więc, aby bezpośrednio odpowiedzieć na twoje pytania: Czy nauka języka obcego otworzy niesamowitą nową gamę języków programowania i zasobów edukacyjnych? Nie. Czy to sprawi, że będziesz lepszym inżynierem oprogramowania? Prawdopodobnie nie bezpośrednio. Ale czy pomoże ci to uczynić cię lepszym, bardziej wszechstronnym, zdolnym do zatrudnienia i przyspieszy twoją karierę? Absolutnie.

Scott
źródło
2
+1! Mówiąc szerzej: dzieje się tak dlatego, że uczenie się czegokolwiek (dla większości wartości) przyczyni się do rozwoju kariery. Ale nie tylko to. Bardziej wykształcony człowiek ma po prostu lepsze życie.
Ingo
Osoby nieanglojęzyczne widzą słabość języka angielskiego, gdy API nie koncentruje się na matematyce technicznej ani biznesie. Myślenie w języku i tłumaczenie na inny (z inną regułą, składnią, gramatyką) wymagają kreatywności, wyobraźni i humoru.
cl-r
7

Jeśli angielski jest Twoim językiem ojczystym, nauka języka obcego prawdopodobnie nie pomoże ci bezpośrednio w karierze programistycznej. Osobiście uważam, że znajomość języków obcych jest bardzo dobrym ćwiczeniem ogólnym, które poszerza twoje horyzonty („Wie viele Sprachen du sprichst, sooftmal bist du Mensch”), ale jeśli szukasz tylko natychmiastowych korzyści, prawdopodobnie nie jest to warte zamieszania.

Pomijając samorealizację, oto kilka sytuacji, w których myślę, że możesz skorzystać z poznania języka obcego z czysto pragmatycznych powodów:

  • Współpraca z partnerami lub klientami z zagranicy. Nawet jeśli nie znasz języka na tyle dobrze, aby się komunikować, znajomość niektórych podstaw może uświadomić ci problemy, które mogą powstać w komunikacji lub problemy, które użytkownicy języków obcych mogą mieć z twoim produktem.
  • Praca nad każdym produktem, który musi być dobrze umiędzynarodowiony. Nie znając podstaw niektórych języków obcych, możesz zastanawiać się, do czego służą wszystkie złożone biblioteki i18n (np. Dlaczego komunikat „% d nowe wiadomości” może wymagać kilku różnych tłumaczeń na ten sam język w zależności od wartości% d) .
  • Pomaga zrozumieć złożoność prawidłowej obsługi Unicode.

Jednak, jak wspomniano wcześniej, w wielu sytuacjach korzyści nie będą warte wysiłku, jeśli spojrzysz tylko na natychmiastowe korzyści.

Michał Kosmulski
źródło
6

Angielski jest dominującym językiem w tej dziedzinie, nie tylko w UE / USA.

Jako native speaker chińskiego, wiem, że ludzie używają tego samego zestawu systemów operacyjnych, języków programowania i narzędzi. Niektóre z nich są tłumaczone na język chiński, reszta nie jest tak trudna jak powieści angielskie. Istnieje kilka „chińskich języków programowania” z chińskimi słowami kluczowymi, nie są one powszechnie używane ani nawet uważane za poważne rzeczy.

Obecnie mieszkam w Japonii i widzę tutaj podobne rzeczy. Więc przynajmniej nie sądzę, że znajomość chińskiego, japońskiego lub innego tajemniczego języka naturalnego może zapewnić dostęp do niezastąpionych zasobów.

Z drugiej strony skorzystałem z (nieokreślonej językowo) teorii semantyki. Zarówno w języku naturalnym, jak i języku programowania pomogło mi rozróżnić i dopracować wyrażenia w sposób podobny do recenzji kodu.

Jokester
źródło
5

Jedyną bezpośrednią korzyścią z nauki innego języka jest lepsze zrozumienie problemów związanych z i18n . Oznacza to, że podobnie jak formaty daty, istnieją różne reguły gramatyczne, takie, że lokalizacji nie można wykonać po prostu dodając symbole zastępcze dla ciągów.

Jeśli chcesz tylko poprawić swoją karierę programistyczną, masz o wiele bardziej efektywne wykorzystanie swojego czasu, na przykład doskonalenie swoich umiejętności lub naukę innego języka programowania , najlepiej z innego paradygmatu .

To powiedziawszy, istnieje wiele korzystnych bezpośrednich i ubocznych efektów uczenia się innego języka, szczególnie jeśli jesteś jednojęzyczny. Wiele rzeczy, które wydają się oczywiste dla osób wielojęzycznych, w rzeczywistości nie są tak oczywiste, jeśli nie byłeś narażony na różne języki, na przykład zauważyłem, że wiele osób jednojęzycznych nie zdaje sobie sprawy, że żarty zależne od języka (takie jak jako kalambury) w ogóle nie działają po przetłumaczeniu. Może to pomóc powstrzymać cię przed dokonywaniem nieczułych błędów, których moim ulubionym przykładem jest apokryficzna historia ożywienia reklamy Pepsi w języku chińskim jako „ożywianie zmarłych przodków” . Posiadanie tej dodatkowej wrażliwości jest pomocne w każdej karierze.

Podsumowując, myślę, że nauka nowego języka zapewnia ogromne korzyści; Pytam tylko, czy to efektywne wykorzystanie twojego czasu.

congusbongus
źródło
Chyba angielski jest twoją matką.
Tulains Córdova
@ user61852 Nie mam pojęcia, jak to zdobyć, ale się mylisz.
congusbongus
3

Angielski jest językiem rozwiązywania problemów.

Obejrzyj ten krótki film.

„Twój język ojczysty to twoje życie, ale dzięki angielsku stajesz się częścią szerszej rozmowy, globalnej rozmowy na temat globalnych problemów, takich jak zmiana klimatu czy ubóstwo ... matematyka to język nauki, muzyka to język emocji, a teraz angielski staje się językiem rozwiązywania problemów ”.

-- Jay Walker, american inventor and entrepreneur

Myślę, że gdyby Imperium Rzymskie się nie rozpadło, pisalibyśmy teraz po łacinie.

Zdecydowanie angielski jest językiem do naśladowania. Moim ojczystym językiem jest hiszpański i choć hiszpański jest jednym z najczęściej używanych języków, ilość materiałów technicznych, dokumentacji, samouczków, blogów, stron z pytaniami i odpowiedziami itp. W języku hiszpańskim nawet nie zbliża się do ogromnej ilości zasobów w języku angielskim .

Również angielski ma zwięzłą jakość, co czyni go jednoznacznym w wielu kontekstach.

Inny powód: iTunes U.

Tulains Córdova
źródło
1
„Angielski jest językiem rozwiązywania problemów”. Co to znaczy?
ypercubeᵀᴹ
@ypercube Zobacz to krótkie wideo: climateadaptation.tumblr.com/post/4895540259/…
Tulains Córdova
2

Mówię biegle po chińsku i od czasu do czasu zaglądam do świata chińskich programistów. Większość materiałów do nauki jest tłumaczona na angielski, więc niczego nie brakuje. Interesujące jest jednak dostrzeżenie różnic kulturowych w wyborze technologii programowania. Na przykład Go wydaje się być bardziej popularny w Chinach niż w jakimkolwiek innym kraju. Możesz sprawdzić, wyszukując w Google trendy „golang”: http://www.google.com/trends/explore?q=golang#q=golang&cmpt=q

talloaktrees
źródło
2

Podczas gdy angielski jest de facto językiem twórców oprogramowania, kilka razy udało mi się znaleźć wskazówki i rozwiązania na stronach społeczności w innych językach. Zautomatyzowane tłumaczenie sprawia, że ​​papka jest z takich stron, więc miło jest móc je czytać bez zmian.

Oczywiście, jeśli pracujesz z ludźmi, którzy są biegli w posługiwaniu się innym językiem, bardzo dobrze, zarówno pod względem zawodowym, jak i osobistym, jest możliwość komunikowania się w języku ojczystym. W zależności od ich poziomu i twojego, może być łatwiej nauczyć się kilku technicznych słów w ich języku i sprawić, że wyrażą się w najwygodniejszy sposób, niż uzurpować sobie rozum w języku, w którym częściej popełniają błędy semantyczne.

l0b0
źródło
Zautomatyzowani tłumacze tłumaczą „stół” na hiszpański „mesa”, co oznacza meble, na których podaje się jedzenie, niezależnie od kontekstu dotyczącego tabel w bazie danych.
Tulains Córdova
2

To zależy od tego, co rozumiesz jako karierę .

Jeśli pracujesz jako pracownik w swoim kraju i chcesz, aby tak pozostało, zazwyczaj nie musisz znać żadnego języka oprócz ojczystego i angielskiego. Wyjątkiem może być sytuacja, gdy głównym klientem Twojej firmy jest firma zagraniczna i powinieneś znać język tej firmy. Na przykład wiele firm z zachodniej Polski współpracuje głównie z firmami niemieckimi, a znajomość języka niemieckiego jest wielką zaletą, a nawet wymogiem, do pracy jako starszy programista (chociaż juniorzy nie mają kontaktu z klientem, nie muszą mówić po niemiecku ).

Jeśli jednak chcesz być freelancerem , musisz biegle władać językiem swojego klienta. Możesz oczywiście kierować reklamy tylko na kraje anglojęzyczne, ale znajomość na przykład niemieckiego lub francuskiego daje więcej możliwości i potencjalnie lepiej płatnych umów.

Jeśli chcesz pracować za granicą , to zależy. Oczywiście, jadąc do USA lub Wielkiej Brytanii, angielski jest właściwym wyborem. W małych krajach (w Europie) istnieje wiele zespołów anglojęzycznych, więc jako kontrahent zagraniczny możesz liczyć na wiele anglojęzycznych miejsc pracy, na przykład w Danii lub Holandii.

Ale w dużych krajach, takich jak Niemcy, praca anglojęzyczna jest wyjątkiem i bez znajomości niemieckiego dobra masz małe szanse na znalezienie czegoś. Aby uzyskać najlepiej płatne umowy, musisz mówić płynnie po niemiecku, ale wtedy możesz uzyskać naprawdę dobrze płatną pracę .

Żeglarz dunajski
źródło
2

To dobre pytanie. Twierdziłbym, że warto nauczyć się innego języka mówionego z tego samego powodu, dla którego warto nauczyć się innego języka programowania: pozwala ci myśleć o rzeczach na nowe sposoby.

Na dobre lub złe angielski jest uniwersalnym językiem programistów. Więc raczej nie umknie Ci wiele z powodu tylko mówienia po angielsku.

Michael Brown
źródło
1

Wydaje się, że wszyscy tutaj są zgodni, że nie ma bezpośrednich korzyści z nauki innego języka do programowania bezpośrednio (języki programowania są w większości oparte na języku angielskim, jest to język podręczników i czasopism informatycznych itp.).

Niemniej znajomość języka obcego jest korzystna na wiele sposobów. Tak przynajmniej mówią moje doświadczenia związane z nauką kilku języków obcych. Nauczysz się różnych sposobów wyrażania rzeczy w innych językach i otworzy to nowe sposoby patrzenia na rzeczy.

wirrbel
źródło