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.
W tej lekcji pokażę Ci ostatnią związaną z
pętlami istotną rzecz a mianowicie jak kontynuować lub przerywać pętlę.
Na początek będziemy chcieli sobie
stworzyć taką pętlę, która wyświetli nam wszystkie liczby od zera do dwudziestu ale
wyłącznie liczby nieparzyste. I zrobimy to z użyciem pętli for.
Na początku tutaj inicjujemy zmienną, którą
nazwiemy i tak jak robiliśmy to do tej pory ale możesz ją nazwać dowolnie.
Będzie to zero. Chcemy tę pętle wykonywać tak długo jak i
jest mniejsze lub równe 20 i będziemy zwiększać wartość i.
Czyli jeżeli teraz bym wyświetlił i, to zostaną wyświetlone liczby od zera do
20. Ale teraz chciałbym pomijać te liczby, które są liczbami parzystymi.
Jak możemy sprawdzić czy liczba jest parzysta.
Zrobimy to z użyciem operatora Modulo,
który już Ci w tym kursie pokazywałem i instrukcji warunkowej if.
Czyli jeżeli i dzielone przez dwa równa się zero to wiemy, że i jest liczbą
parzystą dlatego, że reszta z dzielenia jeżeli jest zero jak
dzielimy przez 2 to jest to liczba parzysta. Czyli np.
2 dzielone przez 2 to jest jeden i reszta zdania zero ale jak 3 podzielimy przez 2
to jest jeden i reszta z dzielenia 1. Czyli wtedy tutaj będzie czy 1 równa się zero?
Nie.
Więc ten warunek czy ten kod, który tutaj podamy się nie wykona.
A więc co będziemy chcieli zrobić jeżeli i
na tym etapie to już wiemy jest liczbą nieparzystą.
Otóż będziemy chcieli skorzystać z takiego
słowa kluczowego a w zasadzie to jest instrukcja continue,
w ten sposób się to zapisuje i tego słowa
można używać wyłącznie w pętlach czyli w dowolnym innym miejscu w programie
gdybyś to wpisał to nie będzie to poprawne ale wewnątrz pętli już tak.
A więc jeżeli teraz zapiszemy, ja może tutaj sobie kliknę prawym przyciskiem
wybiorę Clear, zapisze jeszcze raz, zauważ, że wyświetliliśmy wyłącznie liczby nieparzyste.
Z kolei gdybyśmy tutaj chcieli wyświetlić
liczby parzyste to musielibyśmy ten warunek odwrócić.
Wtedy wyświetli byśmy wyłącznie liczby parzyste. A więc możesz zobaczyć, że continue
pozwala nam nie przerwać pętli ale powiedzieć kontynuuj.
I co dokładnie się stało to jeszcze sobie omówmy bo jest to dosyć ważne.
Otóż wchodzimy do takiej pętli standardowo
sprawdzamy czy i jest mniejsze lub równe 20 0 jest mniejsze lub równe 20 więc
zaczynamy wykonywanie tego bloku kodu i zaczynamy sprawdzać czy 0
dzielone przez 2 czy reszta z dzielenia
jest zero. W tym przypadku tak będzie a więc można powiedzieć, że nasz warunek jest
prawdziwy czyli 0 jest liczbą parzystą i wykonamy continue. Co robi continue?
Otóż przechodzi do kolejnej iteracji
pętli. Czyli wszystko co jest poniżej instrukcji continue już się nie wykona.
Dlatego jeżeli robiliśmy console.log(i) wiemy, że na tym etapie i ma wartość 0 ale z jakiegoś
powodu ten console.log nie wyświetlał nam zero. Bo ta linijka nigdy się nie wykonała.
Czyli w momencie kiedy
platforma, która wykonuje nam kod zobaczy instrukcję continue nie robi już
nic co jest pod spodem tej pętli i oczywiście nie mówimy o rzeczach, które są
tutaj poza tą pętlą ale tylko o tym co jest wewnątrz tej pętli a więc w tym bloku
kodu. Robimy continue czyli kontynuuj a więc przechodzimy do kolejnej iteracji a
to oznacza, że zwiększymy wartość i, i znowu sprawdzimy warunek.
Później i będzie miało 1 a więc ten warunek
zwróci false, continue się nie wykona dlatego po prostu wyświetlimy jeden.
Znowu przejdziemy tutaj zwiększymy do dwójki.
Znowu tutaj będzie, że jest to liczba parzysta a
więc continue się wykona i to się nie wykona z kolei ale wrócimy tutaj.
No i tak aż do samego końca.
Jak widzimy w ten sposób wyświetliliśmy tylko liczby nieparzyste.
Kolejną rzeczą bardzo istotną jest przerywanie pętli. Dlatego, że continue nie
przerwało pętli ale tylko powiedziało kontynuuj,
a więc nie rób niczego co jest pod spodem tylko przejść do kolejnej iteracji.
Natomiast możemy również przerywać pętlę i żeby pokazać Ci jak to zrobić to napiszemy sobie
tutaj taki skrypt, który pozwoli nam sprawdzić czy w danej tablicy znajduje się
liczba 0. Więc utworzę sobie tablicę numbers
i tutaj będę chciał podać jakieś cyfry,
jakieś liczby po prostu 2, 3, 20, 8, 50, 0 i powiedzmy 17 i teraz będziemy chcieli się
dowiedzieć czy w tej tablicy numbers znajduje się zero czy nie.
Żeby to zrobić będziemy musieli po kolei sprawdzać wszystkie elementy i przyrównywać
je do zera oraz mieć jakąś zmienną, która będzie w stanie nam przechowywać tą
wartość. Więc utworzę zmienną, którą nazwę containsZero i przypiszę jej wartość false.
Więc ja ją sobie tak po prostu nazwałem żebym wiedział o co chodzi, ona
tłumacząc na polski mówi czy zawiera 0 powiedziałem, że nie.
Na początku ustawiam to na wartość nie i dopiero potem będę sprawdzał.
Jeżeli znajdziemy 0 to będziemy chcieli
zmienić wartość tej zmiennej na true żebyśmy mieli containsZero true,
czyli prawda.
Wykonamy sobie pętlę for tak jak do tej pory a więc utworzę zmienną i równą 0,
będę chciał wykonywać pętle tak długo jak i jest mniejsze od numbers.length.
Dokładnie to co już robiliśmy wcześniej i będę zwiększał wartość i. Czyli
dzięki temu będziemy mogli przeiterować po całej tej tablicy.
Na początek oczywiście mogę wyświetlić
sobie to co znajduje się pod i a to co mieliśmy tutaj u góry może
wykomentuje żeby na razie się nie pojawiało, zapisze,
no i zauważ, że to nam wypisało całą naszą
tablicę. A więc skoro pod numbers i dostaje kolejno 2, 3, 28 czy 0 to będę mógł
sprawdzić czy ta wartość to jest zero czy nie.
Zatem będę chciał tutaj zrobić coś takiego if numbers i
równa się zero, to będę chciał przypisać wartość tej zmiennej czyli containsZero
na true. Tylko w takim wypadku. I teraz jak ta pętla się już zakończy
to w tej zmiennej containsZero albo
będziemy mieli false, które na początku przypisaliśmy
albo jeżeli faktycznie któraś z tych
wartości to było zero to zostanie to zamieniony na true.
Dlatego będziemy mogli tutaj to wyświetlić w ten sposób
i swoją drogą możemy tutaj skorzystać z tego skróconego zapisu if czyli Ternary Operator
pokaże Ci jak można warunkowo w jednej linijce sobie coś wyświetlić.
Otóż chciałbym wyświetlić czy ta tablica zawiera zero czy nie w formie
czytelnego dla człowieka komunikatu więc powiemy tak, i w containsZero
jeżeli ta wartość jest prawdziwa jeżeli
tu będzie true to chcemy wstawić tutaj tekst i napisać
tablica zawiera zero.
W przeciwnym wypadku czyli po dwukropku tablica nie zawiera zera.
Zrobimy to tak,
jeżeli nie pamiętasz jak działa ten operator wróć do lekcji o skróconym
zapisie if, generalnie jeżeli ta wartość tutaj jest prawdziwa to wstawiamy to co
było po znaku zapytania jeżeli jest fałszywa czyli będzie false
to to co jest po dwukropku. I to zostanie przekazane do console.loga. OK.
Jeżeli teraz zapisze to widzimy tablica zawiera zero. Jeżeli tu tego zera by nie było
to będziemy mieli tablica nie zawiera zera.
Ale przejdźmy wreszcie do sedna czyli do przerywania pętli.
Dlaczego?
Będę chciał tutaj wyświetlać za każdym razem wartość jaką mamy pod numbers i,
i to 0, które tutaj mieliśmy może go wystawimy troszeczkę wcześniej czyli np.
tutaj.
Zapisuje jeszcze raz i widzimy, że
wyświetliliśmy 2, 3, 20, 0 i wszystkie pozostałe liczby i mamy, że tablica zawiera zero.
Ale pomyślmy nad tym chwilę, skoro szukamy czy tablica zawiera zero, to jeżeli
doszliśmy do momentu gdzie to 0 znaleźliśmy to bez sensu jest już
sprawdzać kolejne wartości i marnować czas pracy procesora. No bo skoro zero
znaleźliśmy, ustawiliśmy zmienną containsZero na true to naprawdę już nie ma sensu
sprawdzać w kolejnej iteracji czy to co jest po 0 czyli 8 czy to jest równe zero.
Nie ma znaczenia nawet jak tu będzie
kolejne zero też nas to nie obchodzi bo już wiemy, że jakieś 0 się tutaj znajduje
i jesteśmy tym usatysfakcjonowani. Dlatego to co możemy zrobić, tutaj najpierw wyczyszczę,
to użyć instrukcji break w tym momencie. A
więc mieliśmy tutaj u góry instrukcję continue, która mówiła nie wykonuj już tego
co jest pod spodem tylko przejść do kolejnej iteracji,
natomiast jest również instrukcja break,
która też mówi nie wykonuj niczego co mogłoby tutaj być gdzieś pod spodem np.
tutaj ale również nie przechodź do
kolejnej iteracji tylko zakończ tę pętlę,
a skoro zakończ to znaczy wyskocz do kolejnej linijki i wykonuj ten kod.
Jeżeli teraz zapisze zauważ, że mamy tutaj wyświetlone tylko 2, 3, 20 i 0. Bo w
momencie jak doszliśmy do zera, ono się tutaj wyświetliło, sprawdziliśmy czy to
jest zero, przypisaliśmy sobie wartość tej zmiennej i powiedzieliśmy break, zakończ
pętlę. A to oznacza, że już nie sprawdzaliśmy tych kolejnych wartości i że
ten warunek już tutaj przestał być sprawdzany po prostu pętla zakończyła swoje działanie.
Dzięki temu troszkę lepiej zoptymalizowaliśmy nasz program bo nie będziemy przeszukiwać
takiej bardzo długiej tablicy załóżmy, że to byłoby bardzo, bardzo dużo różnych liczb
nie ma sensu sprawdzać jeżeli już jesteśmy usatysfakcjonowani.
Możemy w ten sposób pętle przerwać.
Jak zatem widzisz dwie bardzo potrzebne instrukcje czyli continue i break,
natomiast jak je wykorzystywać w praktyce w jakich przypadkach
to tak jak z wszystkimi innymi rzeczami
uwierz mi, że to wyjdzie w praktyce. Czy wyjdzie w praniu.
Kiedyś po prostu będziesz wiedział, że chcesz z tego korzystać,
natomiast w tym kursie a także wielu innych naszych kursach wielokrotnie
będziesz widział jak autorzy takiego kursu korzystają z tych instrukcji więc
najważniejsze jest żebyś wiedział jak one działają a kiedy mogą być przydatne to na
pewno wszystko wyjdzie tak jak wspomniałem w praniu. Więc tym na razie się nie martw,
po prostu zapamiętaj co te instrukcje dla nas robią.