admin 0Comment

To pierwsze pytanie jakie sobie zadałeś, chcąc nauczyć się jak programować, prawda?

A po odpowiedź sięgnąłeś pewnie do internetu.  Problem w tym, że nie wszystkie uzyskane tam odpowiedzi są sensowne a ty nie masz przecież wystarczającej wiedzy żeby zrewidować co jest wartościowe a co jest bzdurą. Najlepiej więc, zamiast pytać losowych, nieznanych ci bezpośrednio osób, które nie wiedzą nic o tobie, co będzie dla ciebie najlepsze, zastanów się samodzielnie który język warto wybrać na początek, biorąc pod uwagę twoje preferencje. Pomogę ci w tym i postaram się zrobić to tak, żeby ten tekst w krótkim czasie nie dołączył do grupy zdezaktualizowanych artykułów. W jaki sposób? Napiszę o wyborze języka, nie pisząc o konkretnych językach programowania.

back-end czy front-end?

Nie masz pojęcia co to znaczy? Nie ma sprawy, spróbujmy inaczej: wejdź na stronę internetową, z której najczęściej korzystasz i zastanów się, co bardziej interesowałoby cię, gdybyś miał za jakiś czas za zadanie stworzenie analogicznej strony. Czy jest to to, co widzisz – grafika, jej układ, interfejs przez który komunikujesz się ze stroną? To elementy związane z front-endem. A może wolałbyś zająć się tym co jest pod maską – jak sprawić, że strona będzie działała poprawnie i wydajnie? W takim razie back-end jest dla ciebie.

Podsumowując, kwestia rozbija się o to czy dominuje u ciebie zmysł estetyczny czy też cenisz głównie wydajność a od wyglądu, bardziej interesuje cię jak coś działa i jak sprawić żeby działało wydajniej.

Już odpowiedź na te pytanie pozwoli co najmniej zawęzić grupę języków, z których wybierzesz jeden. Jakie to języki? Powoli, spokojnie, to nie jedyne pytanie, które warto sobie zadać, na razie wystarczy jeśli wygooglujesz front-end lub back-end wraz z język programowania i zerkniesz jak klaruje się podział tych dwóch grup. Oczywiście nie jest to podział sztywny – są języki przydatne zarówno front- jak i back-endowcom tym niemniej już tutaj powinieneś dostrzec na które języki powinieneś zwrócić większą uwagę.

Co chciałbym tworzyć w danym języku?

Chodzi tutaj zarówno o tematykę, jaka cię interesuje, fakt czy masz zamiar programować hobbystycznie czy zawodowo,  jak i o platformę czyli system, na którym chcesz by twoje programy działały. Jesteś zainteresowany programowaniem gier? Chcesz po prostu pobawić się programowanie i móc szybko stworzyć coś fajnego i przydatnego? A może chcesz tworzyć gry i aplikacje na Androida lub iOS? Nie mam najmniejszego zamiaru tworzyć tu jakiś tabelek najpopularniejszych języków dla danych zastosowań ponieważ w tak dynamicznie rozwijającej się tematyce, jaką jest programowanie, tego rodzaju informacje szybko stałyby się nieaktualne i także mogły by cię wprowadzać w błąd.  Skoro wiesz już jak temat ugryźć, odpal google i pytaj o język programowania oraz to, do czego chciałbyś go wykorzystywać , czytaj i wyciągaj wnioski.

A może chciałbym po prostu szybko znaleźć pracę i nieźle zarabiać?

-Kurcze, słuchaj, ale ja chciałbym po prostu nauczyć się programować w takim języku, żeby nie mieć problemów ze znalezieniem pracy, no i żeby była z tego kasa- to kolejne z najpopularniejszych pytań, które w internecie spotyka się z bardzo (delikatnie mówiąc) potępiającymi odpowiedziami. Czy słusznie? Nie. A przynajmniej nie do końca.

Niechęć ta skierowana jest do osób skuszonych informacjami jak to za głupie klepanie na klawiaturze można kosić niezłą kasę, i, których jedyną motywacją do rozpoczęcia nauki programowania jest zdobycie wspomnianej kasy. Spokojnie, nie ma co się unosić. Jestem całkowicie pewny, że tego rodzaju osoby najdalej po miesiącu odpuszczają sobie temat ponieważ głupie klepanie na klawiaturze motywowane wyłącznie ilością hipotetycznych krysztalionów jakie mogę na tym zarobić okazuje się zwyczajnie zbyt dużym wyzwaniem i problem rozwiązuje się sam.

Źle jeśli do tej samej grupy z automatu zaliczane są osoby, które są autentycznie zainteresowane programowaniem jako takim, nie mają jeszcze bardzo sprecyzowanych oczekiwań wobec swojej drogi jako programista, a już od początku chcą brać pod uwagę (jako JEDEN z argumentów) aspekt ekonomiczny i zawodowy. Czy to źle? Nie, to dobrze – podjęcie decyzji poprzez wzięcie pod uwagę większej ilości argumentów nie może być czymś złym! Powiedzmy, że chcę się zawodowo zajmować back-endem, wiem już nawet konkretniej co chciałbym robić i stoję przed wyborem jednego z dwóch języków, które, mam wrażenie, by mi odpowiadały. Pewnie, że powinienem zerknąć jak wygląda kwestia ich popularności, czy tracą/zyskują na niej, jak kształtują się zarobki pod ich kątem etc. Proste? Proste!

Wysoko czy niskopoziomowy?

Być może natknąłeś się podczas swoich poszukiwań na te dwa określenia. Najpierw krótkie o co cho: języki wysokopoziomowe są łatwiejsze do zrozumienia i przyswojenia dla programistów, ponieważ swoją składnią przypominają język angielski, natomiast języki niskopoziomowe są bardziej abstrakcyjne i zbliżone do kodu maszynowego czyli końcowo, do języka binarnego (zerojedynkowego). Na pewno podczas, choćby pobieżnego, przeglądania kodu popularniejszych języków programowania natknąłeś się na słowa w rodzaju print, if, else, main czy return. Jeśli tak, to najprawdopodobniej widziałeś kod w języku wysoko/średniopoziomowym. W przypadku najprostszych programów, mimo braku wcześniejszego doświadczenia w programowaniu, mógłbyś najczęściej wskazać za co odpowiadają jego poszczególne linijki. Kod nawet prostych programów, napisanych w niskopoziomowym języku, bardziej przypomina tajemnicze rzędy cyfr/liter rodem z ekranów Matrixa (przesadzam, ale niewiele).

Moja rada: nie katuj się na początek językiem niskiego poziomu. Na pewnym etapie rozwoju najpewniej okaże się to niezbędne lub chociaż pomocne ale to jeszcze nie ten etap. Polecam sięgnięcie do języka wysokiego lub, ewentualnie, średniego poziomu.

Na koniec: czy to w ogóle jest takie ważne?

Wybór języka programowania na start jest ważny ale…nie tak ważny jak ci się najprawdopodobniej wydaje. Przez cały czas przygotowań do niej jak i samej nauki musisz pamiętać o jednej, cholernie ważnej, rzeczy:

Programowanie nie równa się kodowanie!

A przynajmniej nie tylko. Wybierając język, wybierasz jakiej składni i jakich terminów jemu właściwych będziesz używał. Posługując się (może nie idealnym) przykładem: tak jak w nauce języka obcego, wybierasz tutaj co najwyżej słownik wyrazów, z jakich będziesz korzystał.

Programowanie to zdecydowanie coś więcej – to, czego tak naprawdę będziesz musiał się nauczyć, to to w jaki sposób elementy właściwe (jakiemukolwiek) językowi programowania zastosować tak by osiągnąć zakładany cel i zrealizować dokładnie to, co chcesz zrealizować. Kontynuując analogię: dany język obcy to nie po prostu słownik wyrazów ale całość zasad budowy zdań, połączeń między jego elementami i umiejętności wyrażenia dokładnie tego, co mamy ochotę wyrazić. Przestawienie się na taki sposób myślenia i formułowania poleceń jest twoim kluczowym zadaniem jako wannabie-programista  i jest w zasadzie niezależne od języka programowania, którego wybór może co najwyżej nieco ułatwić lub utrudnić cały proces.

Kolejny argument to taki, że i tak powinieneś poznać więcej niż jeden język programowania. Oczywiście niekoniecznie od razu, tym niemniej zarówno dynamika rozwoju branży (jeśli programujesz zawodowo) jak i różnorodność tematyki, którą można się zająć, zmuszą cię prędzej czy później do sięgnięcia po kolejny język, co więcej – nawet jako zadeklarowany front/back-endowiec i tak będziesz musiał (przynajmniej pobieżnie) opanować język(i ) z przeciwległej półki.

***

Podsumowując – nie przesadzaj ze skupianiem się nad odpowiedzią jaki język, tylko wybierz i zacznij jak najszybciej uczyć się, no właśnie – PROGRAMOWAĆ a nie uczyć języka programowania.

Dodaj komentarz