arrow_drop_up
arrow_drop_up
arrow_drop_up
arrow_drop_up
arrow_drop_up
arrow_drop_up

Zapoznaj się z artykułami na naszym blogu! |

home
Poznaj nas
info
Kursy programowania
people
Sylwetki wykładowców
location_on
Gdzie działamy?
create
Nasze artykuły
mail
Zapraszamy do kontaktu!

Artykuły.

Słowniczek podstawowych pojęć związanych z programowaniem.

Poniżej przedstawiamy słowniczek pojęć podstawowych, z którym warto się zapoznać przed kursem programowania. Nie ma znaczenia, czy zdecydowałeś się na nasz kurs, kurs u konkurencji czy uczysz się samodzielnie. Na wstępie nauki programowania warto zaznajomić się z poniższymi pojęciami. Postaram się je przedstawić językiem jak najbardziej przystępnym (pomijając niuanse techniczne), aby zrozumiały to osoby bez przygotowania techniczno-informatycznego.

Front-End Developer - programista zajmujący się wyglądem aplikacj/strony oraz jej podstawowymi funkcjonalnościami działającymi po stronie przeglądarki np. reakcja na kliknięcie w daną pozycję menu czy przycisk itd. Kiedyś od front-end Developera wymagało się przede wszystkim znajomości zagadnień z dziedziny grafiki, języka HTML oraz CSS. Na dzień dzisiejszy wymagania stawiane Front-End Developerom są znacznie szersze. Wymagana jest m.in. znajomośc języka JavaScript (ES6), jego pochodnych np. TypeScript, frameworków np. Angular, React itd. Ponadto Front-End Developer musi opanować przynajmniej jeden z dostępnych preprocesorów CSS oraz systemów kontroli wersji np. GIT. Coraz częściej od Front-End Developera wymaga się również znajomości podstaw technologii Back-Endowych np. node.js

Back-End Developer - programista zajmujący się tzw. logiką biznesową aplikacji / witryny. To dzięki niemu możesz zapisać dane dotyczące swojego konta w bazie danych, możesz się zalogować, dokonać zakupu itd. Jest również odpowiedzialny za bezpieczeństwo aplikacji. To bardzo odpowiedzialna rola. Stworzony kod jest wykonywany po stronie serwera, a do przeglądarki trafia jedynie jego wynik. Dlatego nie zobaczysz bezpośrednio kodu napisanego przez tę osobę gdyż jest on dostępny jedynie dla operacji wykonywanych przez serwer. Wymagana jest również znajomość baz danych oraz języka SQL, który służy m.in. do operowania na danych przechowywanych w bazie danych. Operuje na językach wykonywanych po stronie serwera np. Java, PHP, Python, .NET, Rubby itp.

Full-Stack Developer - osoba znająca dość dobrze wszystkie niezbędne zagadnienia z obszernego stosu technologicznego. Mówiąc prościej zna zagadnienia z zakresu Front-End oraz Back-End. Taka osoba potrafi stworzyć wygląd aplikacji/witryny oraz zaprogramować jej funkcjonalności. Wiedza Full-Stack Developera obejmuje bardzo szeroki zakres wiadomości. Osoby posiadające taką wiedzę są poszukiwani przez mniejsze i średnie firmy którym szczególnie zależy na zatrudnieniu osoby potrafiącej wykonać projekt kompleksowo, od A-Z. Prawdę mówiąc Full-Stack Developer nie będzie ekspertem w tych wszystkich dziedzinach, ale powinien przynajmniej się swobodnie w nich poruszać.

Programowanie polega na podawaniu (wpisywaniu) odpowiednich instrukcji / poleceń w tzw. kodzie źródłowym programu. Instrukcje podawane są w języku angielskim (mamy tu doczynienia z tzw. językiem wysokiego poziomu), które w późniejszym etapie są przekształcane (kompilowane) na kod binarny, zrozumiały przez urządzenia cyfrowe. Podczas takiego przekształcania kodu kompilator sprawdza, czy wszystkie instrukcje, które zostały użyte przez programistę mogą być odpowiednio zinterpretowane / przekształcone na kod binarny. Kompilator po napotkaniu ew. błędów informuje programistę odpowiednim komunikatem. Takie zachowanie nazywamy debugowaniem (analiza programu w celu znalezienia i identyfikacji błędów). Istnieją również języki, które nie wymagają wstępnego kompilowania. Kod tych programów jest interpretowany podczas jego przetwarzania w czasie rzeczywistym. Niezależnie od tego jakiego języka programowania właśnie się uczymy napotkamy te same pojęcia, takie jak: algorytm, zmienna, stała, pętla, instrukcja, klasa, właściwość (pole) czy metoda. Tak więc znając podstawy jakiegokolwiek języka dużo łatwiej uczy się kolejnego, ponieważ tak naprawdę wiele instrukcji czy słów kluczowych się powtarza.

Kompilowanie - najprzystępniej mówiąc: przekształcanie kodu napisanego przez programistę do kodu zrozumiałego przez komputer. Przy procesie kompilacji następuje debagowanie (sprawdzanie) poprawności kodu. Kod który został poprawnie skompilowany powinien dać gwarancję jego poprawnego uruchomienia.

Interpreter - część systemu odpowiadająca za tzw. interpretowanie kodu napisanego przez programistę. Przykładowym językiem nie ulegającym kompilacji a interpretacji może być język PHP. Na serwer przesyłane są pliki w formie tekstu a interpreter po ich wywołaniu odczytuje i odpowiednio interpretuje język PHP w czasie rzeczywistym (na bieżąco). W tym przypadku nie ma pewności, że kod napisany przez programistę zostanie bezbłędnie odczytany (zinterpretowany).

Algorytm to sposób postępowania, który prowadzi do rozwiązania określonego problemu. By to zrozumieć odejdźmy na chwilę od zagadnień dot. stricte programowania i zastanówmy się np. jaki będzie algorytm parzenia herbaty lub przygotowania ulubionej potrawy ? Zauważ, że tak naprawdę chodzi tu o podanie gotowego przepisu, wykonania kolejnych kroków prowadzących do uzyskania oczekiwanego rezultatu. Przemyślany algorytm jest następnie realizowany (implementowany) w kodzie programu. W praktyce oznacza to napisanie odpowiednich instrukcji / poleceń, które wykonają wszystkie czynności (kroki) określone w algorytmie.

Edytory, środowiska IDE.

Jak wiesz, aby "pisać" strony internetowe w HTML oraz CSS wystarczy zwykły notatnik. Jednak warto skorzystać z jednego z dostępnych edytorów kodu ponieważ one znacząco przyspieszają pracę. Zawierają odpowiednie kolorowanie i podpowiadanie składni danego języka. Środowisko IDE oprócz edytora kodu zawiera szereg dodatkowych narzędzi np. kompilator danego języka. Środowisko IDE zazwyczaj dostarcza komplet narzędzi do pracy z wybranym językiem programowania np. z Javą (edytor, kompilator, debager, serwer).

Darmowe edytory / środowiska IDE:

Visual Studio Code, Brackets, NetBeansAtom, Aptana, Eclipse.

Edytory / środowiska IDE komercyjne:

WebStorm, Sublime Text, IntelliJ IDEA

Prawdziwa siła tkwi w dodatkach (rozszerzeniach) jakie są dostępne w przedstawianych edytorach. Przykładowo dodatek emmet znacząco przyspiesza pisanie kodu HTML oraz CSS. Szczególnie polecam darmowy edytor Visual Studio Code. Temu edytorowi poświęcę odrębny artykuł w przyszłości, aby Wam wskazać jego zalety.

HTML5 (HyperText Markup Language) - język znaczników odpowiedzialny głównie z prezentację treści strony inernetowej oraz jej podstawowy układ. Jeden z najprostszych języków programowania polegający na wstawianiu odpowiednich znaczników HTML do treści znajdującej się w dokumencie HTML. Przy odczytywaniu dokumentu przeglądarka renderuje (odpowiednio formatuje) zawartość ujętą we wspomnianych znacznikach. HTML5 jest też określane jako HTML & friends gdyż niektóre funkcje można wykorzystać jedynie w połączeniu z innymi językami programowania jak JavaScript. Przykładem może być tu np. localstorage czy canvas. Bez zastosowania JavaScript te elementy ujęte w specyfikacji HTML5 nie mają racji bytu.

CSS3 (Cascading Style Sheets) - język operujący na tzw. warstwie prezentacji. W dużym skrócie odpowiada za odpowiednie formatowanie wizualne strony/aplikacji. Wszystkie kolory, ładne fonty itd. to właśnie zasługa CSS. Więcej o CSS przeczytasz na tej stronie.

RWD (Responsive Web Design). Dostosowanie aplikacji/witryn do urządzeń mobilnych (tablety, smartfony itd.). W praktyce polega na automatycznym dostosowaniu układu witryny do rozdzielczości wyświetlacza danego urządzenia. Bardzo istotne zagadnienie biorąc pod uwagę, że prawie 80% użytkowników przegląda witryny właśnie na urządzeniach mobilnych.

SASS / SCSS - SASS jest jednym z preprocesorów języka CSS. Co to oznacza w praktyce? Preprocesor służy do zamiany pseudojęzyka np. SCSS na "zwykły" CSS, który jako jedyny (na chwilę obecną) jest interpretowany (przetwarzany) przez przeglądarki. Preprocesor rozszerza możliwości danego języka np. o stosowanie zmiennych, funkcji, pętli itd., czyli konstrukcji znanych z "pełnoprawnych" języków programowania.

GIT - System kontroli wersji. Napisany przez Linusa Torvaldsa (twórcę systemu Linux). Między innymi pozwala na łatwe zarządzanie wersjami projektu oraz tworzeniem/odtwarzaniem kopii plików/katalogów wchodzących w skład projektu. Jego możliwości są potężne, a znajomość GIT-a to podstawowe wymaganie stawiane przez pracodawców (dla wszystkich programistów). Ciekawostką może być to, że systemy kontroli wersji są wykorzystywane nie tylko przez programistów, ale również w innych obszarach (np. w zespołach pracujących nad dużą ilością plików tekstowych). Więcej możesz poczytać na tej stronie: https://git-scm.com/, lub tej: https://git-scm.com/book/pl/v1/Pierwsze-kroki-Wprowadzenie-do-kontroli-wersji (w języku PL).

GitHub / Bitbucket - miejsca na hostowanie (przechowywanie) repozytoriów GIT. Aby przesłać / pobrać repozytorium dobrze posiadać lokalnie zainstalowany system kontroli wersji GIT.

JavaScript - do niedawna JavaScript był skryptowym językiem programowania działającym jedynie po stronie klienta (przeglądarki). Jednak za sprawą projektu node.js język ten jest również wykorzystywany po stronie serwera. Działanie JS po stronie przeglądarki pozwala wprowadzić interakcję z użytkownikiem aplikacji bez konieczności przeładowania (odświeżania) strony. JS często wykorzystuje się do uzyskiwania różnorodnych efektów oraz do walidacji danych np. z formularzy.

AJAX - asynchroniczny JavaScript. Asynchroniczność polega na dalszym wykonywaniu skryptu (kodu) bez czekania na zakończenie bieżącej operacji (np. przesłaniu żądania dostarczenia dodatkowych danych z serwera). Dane po dostarczeniu z serwera są zaczytywane w odpowiednie miejsce bez tzw. "przeładowania" (odświeżenia) strony. Wpływa to przede wszystkim na szybkość ładowania strony/aplikacji oraz nie wstrzymuje dalszych działań użytkownika. Użytkownik może wykonywać dalsze czynności w systemie, a w tle zostają załadowane dane odebrane z serwera. Działanie AJAX-a zobaczysz np. podczas "doładowywania" kolejnych zdjęć podczas scrollowania (przewijania) strony lub automatycznym zaczytaniu miejscowości np. po wpisaniu kodu pocztowego w pole formularza. Aktualnie ta technologia jest bardzo często wykorzystywana.

node.js - technologia która zrewolucjonizowała Back-End. Pozwala na stosowanie języka JavaScript po stronie serwera. Zauważ, że ucząc się jednego języka możesz programować Front-End jak i Back-End! Jeszcze do niedawna język JavaScript był stosowany jedynie do uzyskiwania dodatkowych efektów i przeprowadzenia interakcji z użytkownikiem tylko po stronie klienta (przeglądarki).

Framework - zestaw gotowych bibliotek do wykorzystania przez programistę. Mówiąc wprost: ktoś napisał Ci bibliotekę z której Ty możesz czerpać same profity. Nie musisz tracić czasu na pisanie powtarzalnych rzeczy, a skupisz się jedynie na głównym kodzie dotyczącym stricte Twojej aplikacji. Przykłady frameworków: Bootstrap, Angular.

jQuery - biblioteka JavaScript znacznie usprawniająca pracę z kodem JS. Jej najważniejsze udogodnienia dotyczą prostoty operowania na tzw. elementach DOM oraz wykorzystaniu efektów specjalnych. Więcej na stronie domowej projektu jQuery.

Usability to w dużym skrócie po prostu użyteczność Twojej aplikacji / strony www. Tu w grę wchodzi wiedza dot. ergonomii stron internetowych. Jak zbudować szkielet strony, gdzie zamieścić menu, gdzie wrzucić artykuł główny itd. Jest to bardzo ważne zagadnienie z uwagi na samego użytkownika. Jeśli witryna będzie „użyteczna” użytkownik zostanie zachęcony do ponownych odwiedzin.

SEO / SEM - optymalizacja witryny pod kątem zawartości dla tzw. robotów indeksujących. Celem takiego działania jest uzyskanie jak najlepszej (najwyższej) pozycji w wynikach wyszukiwania w google, yahoo itp.

Baza danych służy do przechowywania danych w profesjonalnych i złożonych aplikacjach. Najpopularniejsze: MySQL, MariaDB, PostgreSQL, MSSQL, ORACLE. Bazy danych oraz systemy zarządzania bazą danych to dość obszerny temat, który postaram się przedstawić w kolejnych artykułach.

SQL (Structured Query Language) - to strukturalny język zapytań używany m. in. do tworzenia, modyfikowania, usuwania baz danych, umieszczania oraz pobierania danych z tabel znajdujących się w bazie danych. Za pomocą odpowiednich poleceń tego języka możemy również nadawać / odbierać uprawnienia użytkownikom. Należy pamiętać, że SQL to język deklaratywny (służący do formułowania faktu dotyczącego wyniku, który chcemy otrzymać, a nie definicji ciągu poleceń dla serwera jak ten wynik otrzymać). Po samym zdefiniowaniu i wysłaniu zapytania SQL nie interesuje nas jak dane zapytanie zostanie fizycznie wykonane, my oczekujemy jedynie na jego wynik. Rolę "inteligentnego" pośrednika pełni SZBD – System Zarządzania Bazą Danych, który podejmuje decyzję np. o sposobie wykonania przekazywanych zapytań przez samą bazę danych. Język ten aktualnie jest standardem komunikacji z serwerami relacyjnych baz danych. Aktualnie jest używany przez popularne systemy baz danych, takie jak: MySQL, PostgreSQL, MS SQL Server, Oracle, DB2.

Konsola/terminal - w systemie windows "cmd" w systemach Linux terminal. Okno konsoli pozwalające na wpisywanie poleceń z klawiatury, które są odpowiednio interpretowane (wykonywane) przez Twój system operacyjny. Znajomość poleceń terminala jest wymagana ponieważ znacząco ułatwia i przyspiesza pracę programisty. Ponadto wiele technologii wykorzystuje terminal jako podstawowe środowisko do wykonywania własnych (wewnętrznych) poleceń np. GIT, Angular-cli itp.

Lista artykułów Strona główna
menu
arrow_drop_up
Front-End (30.09.2023), Full-Stack (30.09.2023), Back-End (23.09.2023) [ szczegóły ]