Angielski dla opornych (programistów)

No, I'm not switching to polish permanently, this post is just an exception. Stay tuned.

Ten post wyjątkowo jest po polsku? Dlaczego? Bo to nie jest post skierowany do wszystkich, tylko pewnej konkretnej grupy ludzi działającej przy tworzeniu oprogramowania - ludzi, którzy ciągle nie mogą zaakceptować faktu, że język angielski to 'lingua franca' tej branży.

  • "Po angielsku. To nie czytam."

  • "Podobno dobra książka. Poczekam na polskie tłumaczenie, może będzie w Helionie."

  • "Jestem dyscośtamem i mam zaświadczenia od 5 lekarzy, angielski wypaliłby mi gałki oczne."

  • "Nazwy zmiennych i komentarze w kodzie będą po polsku, bo jesteśmy w Polsce."

Szczerze - mam dosyć tych bzdur. Tak, BZDUR.

Nie oszukujemy sę - ta branża NIGDY się nie spolonizuje / zlokalizuje. Przyczyny są proste:

  1. Języki programowania - podstawowe narzędzia w naszej codziennej pracy - są oparte na języku angielskim -> niekoniecznie celują w naśladowanie tzw. języków naturalnych, ale rzadko są oparte na leksemach będących czymś innym niż słowami lub skrótami wziętymi z języka angielskiego i występującymi w konstrukcjach zgodnych z podst. zasadami gramatyki i składni tego języka (if ... then, repeat ... until, itp.).

  2. Trend zbliżania dokumentacji i testów do kodu (traktowania ich jako metadane / deklaratywne konstrukcje w kodzie / itp.) nie ułatwia utrzymywanie wielu różnych wersji językowych programistycznych artefaktów ... A komunikaty dla użytkownika / lokalizowane elementy UI są zazwyczaj wyłączane z zakresu naszej pracy jako zewnętrzne "resource'y". Innym wyjątkiem są opisy w testach BDD/ATDD - ale te są oparte o "ubiquitous language" danej domeny i współdzielone z nie-programistami, więc sprawa jest oczywista.

  3. Clue inżynierii oprogramowania dotyczy pojęć nie-fizycznych, "wirtualnych" - konceptów, które tworzymy (wymyślamy / odkrywamy) i które nie są ograniczone fizycznymi ramami naszego świata (takimi np. jak istniejące gatunki w przypadku biologii, albo pierwiastki w przypadku chemii) -> oznacza to, że nowych pojęć, konceptów i określeń będzie tylko przybywać. W takiej sytuacji samo utrzymanie "ubiquitous language" (dla pojęć inżynierii oprogramowania) jest b. trudne, a utrzymanie go w wielu równoległych językach lokalnych - praktycznie niemożliwe.

  4. Branża pędzi w niesamowitym tempie i ... niewiele wskazuje aby to tempo miało wyhamować. W tej sytuacji tłumaczenia (które przecież zajmują czas, odpowiednio dłuższy dla literatury specjalistycznej ...) są mocno nieaktualne w momencie premiery. Dodajmy do tego ograniczony rynek dla tych tłumaczeń i z prostej rachunki wyjdzie nam, że nigdy nie będą one opłacalne (wyłączając może najpopularniejsze pozycje, które potencjalnie balansowałyby na krawędzi).

Spójrzmy na to również z innej perspektywy - powszechne otwarcie w branży (nie tylko OSS, ale również otwarte protokoły, publiczne standardy, itp.) spowodowało że każdy może tworzyć wartościowe materiały - internet jest pełny tutoriali, kursów MOOC, technicznych blogów. Rezygnując z języka angielskiego jako zunifikowanego sposobu komunikacji tracimy ile? 99% tego? 99.9%? 99.99%?

Zastanówmy się również nad tym co w naszym życiu zmieniła idea Social Coding - to, że w każdej chwili możemy zacząć kontrybuować do dowolnego otwartego projektu na GitHubie, zadać super-szczegółowe pytanie na Stack Overflow i dostać odpowiedź lub po 5 minutach, zagadać twórcę ulubionego frameworka na Twitterze i potem przez bite 2 godziny rozmawiać o szczegółach implementacji przez Hangouts ... Czy to wszystko byłoby możliwe bez powszechnej akceptacji języka angielskiego w społeczności deweloperskiej? Naprawdę chcesz z tego zrezygnować i ograniczyć się do naszego lokalnego, polskiego grajdołka?

Polecam spojrzeć prawdzie w oczy - jeśli masz problem z językiem angielskim, to znaczy że masz problem z podstawową umiejętnością, którą powinien mieć w swoim arsenale każdy, nawet początkujący programista. Bez wyjątku. Na szczęście jest to brak z gatunku tych, które można łatwo uzupełnić - potrzeba do tego trochę dyscypliny, chęci i woli ogarnięcia się. Angielskiego można uczyć się praktycznie bezkosztowo - np. korzystając z serwisów takich jak Duolingo. Swoje umiejętności można poprawiać czytając książki, oglądając filmy z napisami po angielsku, itd. Możesz więc się okłamywać , że to nie ma znaczenia, albo coś z tym w końcu zrobić.

Pic: © nito - Fotolia.com