{"id":101,"date":"2019-07-22T21:05:55","date_gmt":"2019-07-22T21:05:55","guid":{"rendered":"https:\/\/kalkus.dev\/?p=101"},"modified":"2023-08-24T23:30:18","modified_gmt":"2023-08-24T23:30:18","slug":"jezyk-angielski-czyli-najwazniejszy-jezyk-programowania","status":"publish","type":"post","link":"https:\/\/kalkus.dev\/blog\/2019\/07\/22\/jezyk-angielski-czyli-najwazniejszy-jezyk-programowania\/","title":{"rendered":"J\u0119zyk angielski, czyli najwa\u017cniejszy j\u0119zyk programowania"},"content":{"rendered":"\n<p>Na przestrzeni dziej\u00f3w, j\u0119zykom przytrafiaj\u0105 si\u0119 rozmaite role do odegrania. \u0141acina, przez wp\u0142yw Ko\u015bcio\u0142a, sta\u0142a si\u0119 mi\u0119dzynarodowym j\u0119zykiem \u015bredniowiecza. Chi\u0144ski, b\u0119d\u0105c pierwszym przed wieloma innymi w Azji, kt\u00f3ry zyskuje form\u0119 pisemn\u0105, wp\u0142ywa na Japoni\u0119, kt\u00f3ra do dzi\u015b w du\u017cej mierze korzysta z chi\u0144skich znak\u00f3w. Niemcy, rozwijaj\u0105c kultur\u0119 miejsk\u0105 szybciej od nas, pierwsi wymy\u015blaj\u0105 pewne s\u0142owa, kt\u00f3re trafiaj\u0105 p\u00f3\u017aniej do polszczyzny &#8211; na przyk\u0142ad ratusz (w staroniemieckim Rathus).<\/p>\n\n\n\n<p>Dominacja technologiczna kraj\u00f3w anglosaskich sprawi\u0142a, \u017ce zar\u00f3wno w komunikacji morskiej, jak i lotniczej j\u0119zykiem oficjalnym sta\u0142 si\u0119 angielski. To samo wydarzy\u0142o si\u0119 z technologi\u0105 informacyjn\u0105. Wszystkie omal j\u0119zyki programowania sk\u0142adaj\u0105 si\u0119 z s\u0142\u00f3w kluczowych wyra\u017conych w j\u0119zyku Shakespeare\u2019a. Komendy, kt\u00f3re wpisujemy w konsoli to r\u00f3wnie\u017c s\u0142owa angielskie. Chcemy tego, czy nie &#8211; j\u0119zykiem bran\u017cy IT jest j\u0119zyk angielski.<\/p>\n\n\n\n<p>Nie ma w tym nic odkrywczego. Co drugie og\u0142oszenie o prac\u0119 dla programisty zawiera na li\u015bcie wymaga\u0144 znajomo\u015b\u0107 angielskiego. Jest to wymaganie wyrastaj\u0105ce z potrzeby wsp\u00f3\u0142pracy z zagranicznymi klientami albo cz\u0142onkami rozproszonych zespo\u0142\u00f3w wielonarodowych. W wielu krajowych firmach nie wymaga si\u0119 angielskiego. I cho\u0107 z pozoru ma to sens, to konsekwencje mog\u0105 by\u0107 powa\u017cne.<\/p>\n\n\n\n<p>Ka\u017cdy chyba, kto studiowa\u0142, pisa\u0142 podobne do poni\u017cszych koszmarki: <\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class Zwierze {\n  oddychaj() {\n    console.log('Sap sap')\n  }\n}\n\nclass Kot extends Zwierze {\n  miaucz() {\n    console.log('Miau miau');\n  }\n}\n\nclass Pies extends Zwierze {\n  szczekaj() {\n    console.log('Hau hau');\n  }\n}\n\nlet pies = new Pies();\nlet kot = new Kot();\npies.szczekaj();\npies.oddychaj();;\nkot.oddychaj();\nkot.miaucz();<\/pre>\n\n\n\n<p>Mieszanie j\u0119zyk\u00f3w jest powszechnie uznawane za nieeleganckie i nie spotka\u0142em si\u0119 jeszcze z takim kodem w \u017cadnej firmie, w kt\u00f3rej pracowa\u0142em, czy to polskiej, czy zagranicznej.<\/p>\n\n\n\n<p>W pewnym minimalnym stopniu ka\u017cdy programista angielski zna. Bez niego ci\u0119\u017cko utrzyma\u0107 si\u0119 w bran\u017cy, w kt\u00f3rej ca\u0142a niemal\u017ce dokumentacja techniczna jest w nim wyra\u017cona. Subtelny problem, kt\u00f3ry nie\u0142atwo na pierwszy rzut oka zauwa\u017cy\u0107 polega na g\u0142\u0119boko\u015bci znajomo\u015bci j\u0119zyka.<\/p>\n\n\n\n<p><strong>Nie da si\u0119 pisa\u0107 czystego kodu nie znaj\u0105c dobrze angielskiego.<\/strong><\/p>\n\n\n\n<p>Jak wiemy kod powinien by\u0107 czytelny. Nazwy zmiennych adekwatne, metody kr\u00f3tkie, zwi\u0119z\u0142e, klasy odpowiedzialne za to, co ich nazwy sugeruj\u0105. Niestety, je\u015bli programista nie czuje si\u0119 z j\u0119zykiem angielskim naprawd\u0119 komfortowo, to do\u015b\u0107 szybko dopadnie go problem z nazwaniem nawet nieprzesadnie skomplikowanych rzeczy w kodzie.<\/p>\n\n\n\n<p> Wszyscy znamy urocze pomy\u0142ki w gastronomii:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https:\/\/lh6.googleusercontent.com\/flnMana73ynWALuv1Ku6tqCCQxfbsUP4O45gnkc4umFYWvq92QbUccU1U3hekqRERUfh-1eHNxOtoTUjpA2wVuVahkQJ6d5iBkLSikacgDTQ4aarL4drGgYsTtrm877UMB_g0i4\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u017beby by\u0107 jednak uczciwym, nie jeste\u015bmy w IT wolni od grzechu. Podczas telekonferencji ze wsp\u00f3\u0142pracownikami z zagranicy m\u00f3j kolega powiedzia\u0142 swego czasu <em>it\u2019s in the first akapit &#8211; <\/em>zapominaj\u0105c, \u017ce przecie\u017c akapit w j\u0119zyku angielskim nie istnieje, bo jest to <em>paragraph.<\/em> Cho\u0107 r\u00f3wnie urocze pomy\u0142ki zdarzaj\u0105 si\u0119 ze strony klient\u00f3w. Pewna W\u0142oszka kaza\u0142a mi, kilka lat temu, pewn\u0105 rzecz <em>semplificare <\/em>zamiast <em>simplify<\/em>.&nbsp;<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Tyle, \u017ce kiedy w kodzie pojawiaj\u0105 si\u0119 takie pomy\u0142ki nie jest ju\u017c zbyt zabawnie. Szczeg\u00f3lnie, gdy znajdujemy je w odziedziczonym systemie sprzed dziesi\u0119ciu lat i nie mo\u017cemy doj\u015b\u0107 do \u0142adu, o co w nim chodzi, a zapyta\u0107 ju\u017c nie ma kogo, bo wszyscy jego autorzy pracuj\u0105 u konkurencji.<\/p>\n\n\n\n<p>\u017beby jednak nie by\u0107 go\u0142os\u0142ownym, przytocz\u0119 kilka przyk\u0142ad\u00f3w wzi\u0119tych z \u017cycia:<\/p>\n\n\n\n<ul><li>exhibitConfirmation &#8211; zamiast issueConfirmation<\/li><li>doneDate &#8211; zamiast completionDate<\/li><li>eogAvailable &#8211; zamiast eea (European economic area, po polsku Europejski obszar gospodarczy)<\/li><\/ul>\n\n\n\n<p>To kr\u00f3tkie, smutne pomy\u0142ki, ale o wiele gorsze s\u0105 d\u0142u\u017csze nazwy zmiennych, metod i klas. Tam braki j\u0119zykowe uwidaczniaj\u0105 si\u0119 mniej spektakularnie, ale s\u0105 nieraz dotkliwsze dla czytelno\u015bci kodu. Wreszcie &#8211; kiedy kto\u015b stworzy jak\u0105\u015b klas\u0119 lub metod\u0119 robi\u0105c\u0105 to i owo, a nast\u0119pnie nie umie ich po angielsku zgrabnie nazwa\u0107, to nadaje jej nic nie m\u00f3wi\u0105c\u0105 nazw\u0119 getData albo saveData albo processData.<\/p>\n\n\n\n<p>J\u0119zyk angielski warto doskonali\u0107. Czyta\u0107, pisa\u0107, s\u0142ucha\u0107, utrzymywa\u0107 z nim kontakt, ogl\u0105da\u0107 filmy, wiadomo\u015bci, czyta\u0107 ksi\u0105\u017cki, podr\u0119czniki, blogi, pisa\u0107 cokolwiek jeszcze poza kodem. Najlepiej moim zdaniem rozmawia\u0107 z obcokrajowcami. <\/p>\n\n\n\n<p>Tworz\u0105c za\u015b zesp\u00f3\u0142 lub zatrudniaj\u0105c programist\u0119 &#8211; dobrze jest zwr\u00f3ci\u0107 uwag\u0119 na t\u0119 subteln\u0105 r\u00f3\u017cnic\u0119 mi\u0119dzy B2, a C1, czy C2. Z klientem porozumie\u0107 si\u0119 jest do\u015b\u0107 \u0142atwo. Do\u015b\u0107 \u0142atwo jest tak\u017ce napisa\u0107 kod, kt\u00f3ry b\u0119dzie niegramatyczny, nieczytelny i kosztowny w utrzymaniu.<br><\/p>\n\n\n\n<p><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Na przestrzeni dziej\u00f3w, j\u0119zykom przytrafiaj\u0105 si\u0119 rozmaite role do odegrania. \u0141acina, przez wp\u0142yw Ko\u015bcio\u0142a, sta\u0142a si\u0119 mi\u0119dzynarodowym j\u0119zykiem \u015bredniowiecza. Chi\u0144ski, b\u0119d\u0105c pierwszym przed wieloma innymi w Azji, kt\u00f3ry zyskuje form\u0119 pisemn\u0105, wp\u0142ywa na Japoni\u0119, kt\u00f3ra do dzi\u015b w du\u017cej mierze korzysta z chi\u0144skich znak\u00f3w. Niemcy, rozwijaj\u0105c kultur\u0119 miejsk\u0105 szybciej od nas, pierwsi wymy\u015blaj\u0105 pewne s\u0142owa, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[204,7],"tags":[],"_links":{"self":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/101"}],"collection":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/comments?post=101"}],"version-history":[{"count":19,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/101\/revisions"}],"predecessor-version":[{"id":212,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/posts\/101\/revisions\/212"}],"wp:attachment":[{"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/media?parent=101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/categories?post=101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kalkus.dev\/blog\/wp-json\/wp\/v2\/tags?post=101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}