dla Początkujących
6 godz. 26 min · JavaScript · Full-stack i Programowanie
Adam GospodarczykProgramowanie to szeroka dziedzina, która nieustannie się rozwija. Rozpoczynając naukę możemy opierać się głównie na wskazówkach bardziej doświadczonych osób, bądź autorach kursów i nauczycielach. W praktyce najważniejsze na początku jest dobre zrozumienie tego, czym jest programowanie, jakie możliwości daje oraz jakie możemy wybrać ścieżki rozwoju. W tym kursie spojrzymy na programowanie z szerokiej perspektywy, dając Ci solidne podstawy do dalszej nauki.
To kolejne trudne pytanie, na które nie ma jednoznacznej odpowiedzi. Dobra wiadomość jest taka że języki programowania, podobnie jak angielski, niemiecki czy hiszpański mają cechy wspólne. Nie oznacza to że nauka jednego, da Ci dostęp do wszystkich ale poznasz ogólne mechanizmy, które spotkasz w niemal wszystkich pozostałych technologiach. W tym kursie skupiamy się właśnie na takich obszarach, opierając przykłady o obecnie najpopularniejszy język jakim jest JavaScript.
Być może zastanawiasz się jak dokładnie wygląda praca programisty? Czym różni się front-end od back-endu i czy wysokie umiejętności analityczne są wymagane niezależnie od obszaru programowania, którym się zajmujemy? Dodatkowo samo zostanie programistą to tylko początek drogi. Możliwości jakie przed nami stoją nie tylko są ogromne, ale również nieustannie się rozwijają, stawiając przed nami nowe wyzwania.
Ten kurs podzielony jest na dwie części - teoretyczną, która przedstawi Ci szerokie spojrzenie na programowanie oraz praktyczną, w której samodzielnie będziesz w stanie przekonać się jak pisać programy z wykorzystaniem języka JavaScript - najpopularniejszego języka na świecie. To, że będziemy przerabiać przykłady w JavaScript, nie stanowi przeszkody a wręcz lepiej przygotuje Cię do pracy z innymi językami jak Python, C# czy C++ lub Kotlin. To wszystko ułatwi Ci podejmowanie decyzji dotyczących dalszej nauki i rozwoju jako programista.
W pierwszych lekcjach części praktycznej kursu dowiesz się jak skonfigurować środowisko pracy wraz z edytorem, w którym przyjdzie Ci pracować. Pomożemy Ci w dobraniu odpowiednich ustawień i wtyczek, które przyspieszą naukę i pomogą w lepszym zrozumieniu podstawowych koncepcji programistycznych. Krok po kroku dowiesz się jak przygotować środowisko i rozpocząć komfortową pracę.
Mimo, że będziemy pracować z JavaScript, posłuży nam on do przedstawienia najważniejszych koncepcji programowania w każdym innym języku. Nie będziemy uczyć się tworzenia stron i środowiska przeglądarki a jedynie przećwiczymy najważniejsze koncepcje języków programowania w środowisku konsolowym. Dzięki temu zdobyte umiejętności z łatwością przełożysz na inne języki jak Python, Java czy Swift, bo wszystkie posiadają identyczne konstrukcje, a poznać należy wyłącznie różnice.
OOP to jeden z najważniejszych paradygmatów programowania, który powinien poznać każdy aspirujący Programista. Dzięki temu będziesz mógł zdecydowanie lepiej zrozumieć możliwości i powiązania klas i obiektów, które tworzą programiści a także pisać kod, który jest prostszy i reużywalny. To koncepcja, którą także wyjaśnimy obrazowo w kursie. Oczywiście, poza teorią w kursie pokażemy Ci przykłady tworzenia funkcjonalnych klas w JavaScript.
Kolejną ważną koncepcją, którą musi znać każdy początkujący Programista jest praca z błędami - innymi słowy obsługa błędów lub debugowanie naszej aplikacji. To niezwykle ważne, bo oszczędzi Ci mnóstwa frustracji oraz wielu godzin rozpoznawania, co w kodzie nie działa poprawnie. Z kursu w praktyce dowiesz się, jak testować swoje aplikacje, łatwo wykrywać błędy i korzystać z narzędzi, które będą je dla nas wykrywać lub automatycznie poprawiać!
Ten kurs przygotowaliśmy tak, aby był fundamentem wiedzy o Programowaniu, którego używamy w wielu naszych ścieżkach na eduweb.pl. To znaczy, że kurs który masz przed sobą rozpoczyna ścieżkę Python, JavaScript, Ruby i wiele innych. Wiemy, że w sieci jest mnóstwo materiałów na temat podstaw programowania i chcieliśmy przygotować wyjątkowy kurs, który da Ci spokój w natłoku wielu informacji w sieci. Zaangażowaliśmy w to najlepszych autorów eduweb oraz naszym zdaniem jednych z najlepszych programistów w Polsce. To, co jest jednak najważniejsze - kurs omawia programowanie bardzo prostym językiem, dzięki czemu jest przystępny dla każdego!
Kurs przeznaczony jest dla osób początkujących, które stawiają swoje pierwsze kroki na scieżce programisty lub programistki. Jednak skorzystają z niego także te osoby, które myślą o nauce programowania w celu uzupełnienia innych umiejętności, na przykład internetowi przedsiębiorcy, freelancerzy, UI/UX i web designerzy. Jeżeli czujesz się zagubiony lub przytłoczony dużą ilością często sprzecznych informacji - ten materiał pozwoli Ci szerzej spojrzeć na programowanie. To z kolei przełoży się na lepsze decyzje, które będziesz podejmować w kontekście swojego rozwoju. W kursie znajdziesz wskazówki i porady dotyczące efektywnej nauki programowania, które pomogą Ci szybciej zdobyć nowe umiejętności i pracę w zawodzie. Najważniejszą z nich jest fakt, że programowanie to dynamicznie rozwijająca się dziedzina, która wymaga od Ciebie nieustannej nauki. Zatem wypracowanie odpowiednich nawyków i technik nauki jest niezwykle istotne, niezależnie od miejsca w którym aktualnie się znajdujesz.
Zobaczmy teraz jak tablice działają w praktyce. Więc pokażę Ci jak możemy
utworzyć swą pierwszą tablicę. Stworzymy stałą bo potrzebujemy czegoś co na tą
tablicę będzie przechowywać, nazwiemy ją numbers, pamiętaj cały czas, że te nazwy są
dowolne i będziemy chcieli utworzyć tablicę.
Przy takim zapisie otworzyliśmy właśnie
pustą tablicę, która nie ma żadnych elementów ale ja będę chciał ją uzupełnić
jakimiś liczbami bo nazwaliśmy ją numbers czyli w domyśle chcemy tutaj przechowywać
jakieś liczby. I do tablicy wystawiamy poszczególne jej
elementy po przecinku czyli mogę napisać 1, 3, 4, 5 i teraz co ważne
przed przyciskiem to co się znajduje to jest jakaś wartość a przecinek to jest tak
jakby oddzielenie takiej komórki. Możesz sobie wyobrazić, że to jest taka tabelka
w pewnym sensie i ona tutaj ma powstawiane różne elementy, przecinek po prostu oddziela.
Czyli mamy tutaj w tym przypadku cztery elementy.
Pierwszy to jest 1, 3, 4 i 5.
I co ważne tablica może przechowywać różne
wartości jakie można reprezentować w języku JavaScript więc do tej pory
widziałeś wartości liczbowe takie jak tutaj mamy np. 5
ale widziałeś też tekst taki jak np.
Jacek. To cały czas jest poprawny zapis. Po prostu
w tej tablicy na początku mamy cyfrę 1, 3, 4 a potem mamy tekst
Jacek, czyli wszystko w tablicy przechowywać można w różnej konfiguracji w
różnej kolejności. Ale na razie zostawmy sobie tutaj tylko te liczby i będę chciał
Ci pokazać jak można się do poszczególnych indeksów tej tablicy odwoływać.
Dlatego, że tablice są indeksowane a to oznacza, że jeżeli wstawiliśmy tutaj
cztery elementy to one zajmują swoje indeksy. I tablice są indeksowane od zera,
to oznacza, że pod indeksem 0 w tej
tablicy znajduje się jedynka pod indeksem 1 znajduje się trójka pod indeksem 2
czwórka i pod indeksem 3 znajduje się piątka.
Czyli zaczynamy po prostu od zera.
Natomiast teraz żeby dostać się do tych
poszczególnych indeksów to musimy się odwołać do tej tablicy no i żeby to
wyświetlić oczywiście to skorzystamy z console.log ale ważne jest to co tutaj wstawimy.
Napiszemy numbers czyli odwołujemy się do naszej stałej, ona kieruje na tablicę i za
pomocą takiego zapisu podajemy indeks, który chcemy odczytać. Więc jak podamy 0
to oznacza, że chcemy odczytać indeks zero. Czyli tak naprawdę pierwszy pod indeksem
zero znajduje się jedynka. Tu już nam Quokka podpowiada, że będzie to 1 jeżeli
zapisze faktycznie po wykonaniu tego programu jest to jedynka. Więc tu jest 0, 1,
2, 3 a więc jeżeli podamy indeks trzeci to pod nim znajduje się piątka.
Jeżeli byśmy podali indeks czwarty a widzimy, że tutaj nic więcej w tej tablicy
nie ma to zostanie nam zwrócona ta magiczna wartość and undefined.
Ta sama, która była w przypadku zmiennej,
którą jeżeli utworzyliśmy na przykład zmienna i nie podaliśmy jej żadnej wartości,
ona też miała wartość undefined. Więc w ten
sposób to wygląda. Natomiast pod indeksem trzecim znajduje się piątka,
tutaj jest wszystko OK.
Jeżeli natomiast chcielibyśmy sprawdzić ile jest elementów tablicy czyli np.
czy tablica jest pusta czy nie, służy do tego specjalna właściwość length.
Natomiast zanim to zrobimy policzmy sobie ile ta tablica ma elementów raz, dwa, trzy,
cztery czyli ta tablica ma cztery elementy.
Możemy to sprawdzić w kodzie żeby wiedzieć ile tablica ma elementów. Zróbmy sobie znowu
console.log odwołujemy się do tej tablicy poprzez numbers.length.
To jest odwołanie się do właściwości,
więcej jeszcze o właściwościach powiemy w przypadku obiektów,
natomiast to jest taka dynamiczna właściwość, która nam zwraca cyfrę w tym
przypadku 4. Czyli operujemy tutaj ciągle na tych typach danych, o których mówiliśmy,
że my możemy używać albo na przykład liczb, czyli to jest
typ danych liczba albo możemy używać stringów itd.
I co ciekawe również można powiedzieć, że język nam to zwraca w wielu miejscach. Jeżeli
się odwiedzamy numbers.length to nam pokazało, że jest to czwórka
ale gdybyśmy to przechwycili w zmiennej czyli byśmy napisali coś takiego np.
const length= numbers.length to
teraz pod zmienną length, w tym przypadku jest to stała, pod tą stałą length będziemy mieli
czwórkę i na tej czwórce można wykonywać oczywiście takie same operacje jak na
każdej innej wartości liczbowej. To tylko warto żebyś jakby zauważał tutaj, że to wszystko
się ze sobą łączy, że kiedy pytamy ile elementów jest w tablicy otrzymujemy czwórkę ale ta
czwórka, która jest zwrócona jest to po prostu wartość liczbowa,
nie jest to jakiś tam tekst, który nas tylko
informuje o tym ile tych elementów w tablicy jest.
OK. Teraz jeszcze będę chciał Ci pokazać, że w
tablicy możemy zapisywać również inne tablice.
To jest coś co wygląda dziwnie ale już na początku wspomniałem, że w tej tablicy
moglibyśmy zapisać jakieś cyfry i na przykład słowo Jacek. Czyli każda wartość,
każdy typ danych, który w języku JavaScript jest reprezentowany można w takiej tablicy
zapisać a to oznacza, że również inne tablice można tam zapisywać.
Więc utworzyć taką tablicę, którą nazwiemy arrays, bo arry to oznacza tablica więc nazwijmy to
tablice bo będziemy tam przechowywać kilka tablic.
I teraz utworzyliśmy pustą tablicę.
Swoją drogą jeżeli podejrzymy jej arrays.length
czyli jej długość, zauważ, że zwraca nam 0 bo nic z tej tablicy nie ma.
I teraz będę chciał do tej tablicy wstawić sobie jeszcze inne tablice.
Czyli jeżeli zrobię coś takiego,
znowu to może wyglądać dziwnie ale jest to poprawny zapis,
to oznacza, że pierwszym elementem tej
zewnętrznej tablicy jest inna pusta tablica.
Jeżeli byśmy się odwołali do arrays 0,
czyli mówimy pokaż mi jaki jest pierwszy element w tej tablicy,
to nam pokazało, że jest to inna tablica.
Ok.
Więc uzupełniamy ją sobie i tutaj wpiszemy np.
1, 2, 3
i zauważ, że ja tutaj mam też kolorowanie
tych nawiasów więc dobrze to widać ale teraz zaznaczę to co zaznaczyłem jest to tablica,
która znajduje się pod pierwszym indeksem tej drugiej tablicy.
Następnie moglibyśmy sobie wstawić słowo Jacek.
To by było pod indeksem drugim.
Czyli tak naprawdę jeden bo pamiętaj, że to jest od zera czyli 0, 1
a potem byśmy mogli wstawić jeszcze inną tablicę.
Natomiast może zróbmy tak, że stworzymy tablicę, która ma jeden element Jacek
a tutaj stworzymy jeszcze jedną tablicę, która będzie miała np.
5, 6, 7. Bardzo dziwnie to wygląda jestem tego świadom,
natomiast cały czas jeżeli się temu
przyjrzeć z bliska i rozbijać na czynniki pierwsze, nie ma tutaj nic skomplikowanego.
Ta z żółtymi nawiasami to jest jedna tablica
i ona ma trzy elementy. To jest pierwszy jej element, to jest drugi jej element,
jest to też tablica, która ma w środku jeden element i to jest trzeci element
więc jeżeli teraz byśmy się odwołali do arrays 0 to nam zwróci 1, 2, 4. Czyli to
jest pierwsza rzecz, która się znajduje w tej tablicy.
Jeżeli byśmy się teraz odwołali do
0 to zwróciło nam jedynkę i to już może być skomplikowane
ale Ci to tłumaczę. Skoro ten zapis arrays 0
i wróćmy może do niego, zwrócił nam pierwszy element tej
głównej tablicy to skoro pierwszym elementem tej głównej
tablicy jest taka tablica to na tej tablicy.
Gdybyśmy się odwołali znowu takimi
nawiasami i to właśnie robimy tutaj i powiedzieli zwróć mi to co jest w niej pod
indeksem 0, no to tutaj jest jedynka. Dlatego nam pokazało 1.
Jeżeli pod indeksem pierwszym czyli 0 1 to zwróci nam dwójkę.
Myślę, że nie ma tutaj nic bardzo
skomplikowanego ale na pierwszy rzut oka może to dziwnie wyglądać.
Natomiast jeżeli tutaj na tej głównej
tablicy arrays powiemy zwróci mi to co masz pod indeksem pierwszym to będzie to Jacek.
Więc zobaczmy, zwróciło mi Jacek ale nie
bezpośrednio wartość tylko tablicę, bo zapisałem to jako tablicę.
Natomiast gdybym to zapisał jako wartość to byśmy bezpośrednio dostali Jacka.
Więc to warto mieć na uwadze, że w takiej tablicy możesz przechowywać wszystko to co
można przechowywać, to co można reprezentować w języku
JavaScript. Może to być tak jak tutaj mogą to być cztery cyfry
ale równie dobrze może to być jakaś inna tablica, kolejna tablica i kolejna tablica
i do nich się właśnie w ten sposób odwołuje,
że jeżeli arrays jeden zwróci mi
taką tablicę Jacek to od tego momentu jak pisze takie
nawiasem to zachowuję się tak jakbym się odwoływał już do tej tablicy Jacek i mogę
powiedzieć, zwróć mi jej pierwszy element i zwróci mi to już wartość tekstową
Jacek.
Ok.To by było na tyle jeżeli chodzi o tablice.
Jeszcze w tym kursie będziemy z nich korzystać.
Tutaj pokazałem Ci w zasadzie wszystko co jest najistotniejsze.
No i pamiętaj, że takie tablice dostępne są praktycznie w każdym języku programowania
i będzie to tam działać podobnie aczkolwiek są takie języki programowania gdzie w tablicy
można przechowywać tylko dane jednego typu a więc np.
można stworzyć tablicę gdzie będą same
liczby ale nie można do takiej tablicy wtedy dodać na przykład ciągu znaków albo
można stworzyć tablicę gdzie będą same ciągi znaków itd.
Więc to warto również mieć na uwadze. W języku JavaScript można w takiej tablicy
przechowywać wszystko w dowolnej kolejności w dowolnej konfiguracji.