Poziomy języka

Zapewne słyszałeś o takim pojęciu jakim jest poziom języka programowania, słyszysz “język niskiego poziomu” lub “wysokiego poziomu”, ewentualnie angielski ekwiwalent “low” czy “high level”. Nie, nie chodzi tu o poziom trudności czy skomplikowania języka.

Chodzi o poziom abstrakcji danego języka programowania.

Wyobraź sobie wieżowiec w samym sercu Nowego Jorku. Tak zobrazuję abstrakcję języka wysokiego poziomu oraz niskiego. Pisanie w języku wysokiego poziomu jest jak mieszkanie na najwyższym piętrze, a w języku niskiego poziomu - na parterze. Wieżowiec ma tylko schody, nie ma windy. Mieszkając na parterze mamy szybki dostęp do sklepu niedaleko, do przystanku autobusowego czy stacji metra, jednak mamy paskudny widok przez okno. Natomiast z najwyższego piętra mamy kilometry schodów do pokonania, aby dostać się do wymienionych miejsc, ale za to przepiękny miejski krajobraz. W języku niskiego poziomu mamy bardzo dużą kontrolę nad przydzielaniem pamięci, wskaźnikami, może także rzeczami jeszcze ściślej związanymi z czystymi instrukcjami procesora, jednak jest to dużo surowsze, przez co i mniej wygodne i wolniejsze w pisaniu niż w języku wysokiego poziomu. W językach wysokiego poziomu mamy z reguły zdecydowanie wygodniejsze biblioteki standardowe i API udostępniane przez język, przez co nie skupiamy się niepotrzebnie na przykład na implementacji stosu, tylko używamy paru predefiniowanych funkcji czy metod. Nie martwimy się o przydzielanie pamięci dla każdego kolejnego elementu stosu i tego, żeby wskaźnik wskazywał zawsze na ten najwyżej. Mamy po prostu dwie funkcje (przykład z C#): Push(Object) oraz Pop().

Podsumowując: język wysokiego poziomu daje nam wygodniejszy interfejs, przez co pisze nam się szybciej i wygodniej kosztem trudniejszego (albo braku) dostępu do niżej położonych aspektów, takich jak na przykład przydzielanie pamięci, wskaźniki czy chociażby wstawki asemblerowe; język niskiego poziomu to taki, w którym mamy zdecydowanie większą kontrolę nad dostępnym sprzętem, przez co musimy się martwić o znacznie więcej rzeczy i zadbać o znacznie więcej rzeczy związanej z implementacją podstawowych rozwiązań, a nie ich użyciem, jednak z niższym poziomem zyskujemy również wydajność.

Matematyka w programowaniu

Na jakim poziomie matematyki potrzebujesz do programowania?

Wszystko zależy przede wszystkim od tego, która gałąź programowania Cię interesuje. Jest to wręcz najważniejsza kwestia.

Zawsze znajdą się wyjątki; to tylko zarys ogólny. Na wszelki wypadek lepiej jednak matematykę umieć, gdyż powiększa ona nasze perspektywy.

Literatura

Algorytmy i struktury danych

Matematyka

O dwie ostatnie pozycje ciężko w internetowych księgarniach, warto rozglądać się na portalach z książkami używanymi oraz w bibliotekach (zwłaszcza uczelni technicznych).

Edytory i IDE

Poniżej przedstawione zostały edytory, które są obecnie najpopularniejsze, mają dużą bazę pluginów i themów oraz są polecane. Są one open source lub zamkniętoźródłowe i darmowe w pełni lub darmowe do użytku niekomercyjnego.

IDE, czyli Integrated Development Enviroment to edytory rozbudowane o między innymi debugger, narzędzia do refaktoryzacji czy inspekcję oraz analizę kodu.

Programowanie ogólnie

Na początku swojej przygody z programowaniem warto przeczytać jak pisać kod, aby był czysty, łatwy w modyfikacji i przyjazny dla oka. Uncle Bob jest osobą, która napisała kilka bardzo dobrych książek traktujących właśnie o tym. Każda kolejna jest bardziej zaawansowana:

Rzeczą, z którą w programowaniu na pewno się spotkasz, są wzorce projektowe. Ich znajomość pozwala na efektywne rozwiązywanie pewnych problemów, które znane są przez programistów od lat, a czas pozwolił te rozwiązania zweryfikować i potwierdzić ich przydatność.

Prócz tego, obowiązkową wiedzą jest znajomość systemu kontroli wersji Git.

Ogólnymi źródłami poradników, kursów i ogólnie pojętej wiedzy na temat języków programowania są:

Web (HTML, CSS)

Literatura

Javascript

PHP

PHP to interpretowany język programowania, pierwotnie stworzony do tworzenia dynamicznych stron WWW. Obecnie jego wykorzystanie sięga również aplikacji konsolowych (np. Composer) i innych.

Aby rozpocząć pisanie w PHP, potrzebujesz jego interpretera, ponieważ PHP jest językiem skryptowym i jego kod nie przetwarza przeglądarka a właśnie specjalny program na serwerze. Jeżeli jesteś na Windowsie, to najszybszym wyjściem będzie instalacja środowiska XAMPP. Następnie po prostu wrzuć kod źródłowy Twoich stron napisanych w PHP do katalogu C:\xampp\htdocs i przejdź pod adres http://localhost w swojej przeglądarce.

Java

JavaFX

LibGDX

Android

C

C++

Literatura

SFML

C#

Python

Literatura

Flask

Golang

Swift

Swift to język programowania stworzony do pisania natywnych aplikacji na systemy iOS, macOS, watchOS i tvOS.

Aby zacząć pisać w Swift, potrzebujesz komputera z macOS z zainstalowanym środowiskiem programistycznym Xcode, oraz konto deweloperskie Apple.

Gamedev

Unity

Unreal Engine

Sztuczna inteligencja

Darmowe dobro

Dla programisty

Grafika

Muzyka

Zasoby