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 poznasz operatory porównania
i zobaczysz do czego one mogą być przydatne.
Więc nie przedłużając utworzyły sobie stałą o nazwie number, która będzie przechowywała
wartość liczbową 20. Ok i teraz będę chciał porównać sobie tę
wartość i zapisać wynik takiego porównania w innej stałej. Więc stworzymy stałą, którą
nazwę res jak rezultat i będę chciał jej przypisać
pewną wartość, jaka to będzie wartość załamać się okaże. Ale odwołam się do
zmiennej number u góry, gdybym zrobił coś takiego to oczywiście pod zmienną res
mielibyśmy nic innego jak 20. Ale tutaj dopisze sobie dwa razy znak równości bo
taki znak równości to jest operator przypisania,
natomiast jeżeli mamy podwójny znak równości jest to operator porównania.
I co ja będę chciał zrobić.
Otóż będę chciał porównać czy wartość, która jest pod zmienną w tym
przypadku jest stała 20 i jest równa wartości 20.
To jest dokładnie tak samo jakbyśmy tutaj wpisali coś takiego bo wiesz, że zmienna po
prostu będzie podstawiona, czyli jej wartość.
Więc chcemy zapytać czy 20 jest równe 20.
I teraz ten kod jak się będzie wykonywał to najpierw to wyrażenie zostanie wykonane i
ono coś zwróci, to co zostanie zwrócone będzie zapisane pod stałą o nazwie res.
Więc nie pozostało nic innego jak podejrzeć w konsoli poprzez console.log
co zawiera stała res. Tu już nam Quokka
podpowiada, że jest to true. Zapiszmy dla pewności żeby Node wykonało ten plik.
Zgadza się jest to true. A więc mówiłem Ci już o wartościach
prawdziwych i fałszywych i o prawdzie i fałszu.
Mamy taką wartość jak po prostu true,
w ten sposób i okazuje się, że operator
porównania zwrócił nam tę wartość. Czyli teraz ta stała res,
ona przechowuje w sobie true
tak jakbyśmy literalnie tu wpisali true. Przechowuje wartość prawdziwą true.
Czyli to jest operator, który nam porównuje dwie rzeczy to co jest tzw.
operandy czyli to co jest po jego lewej i prawej stronie i zwraca nam true lub false
czy te rzeczy są równe.
Więc jeżeli porównamy czy number, który wiemy, że przechowuje 20 jest równy 30 to
okazuje się, że to nam zwraca false. I w tym przypadku
pod zmienną res mamy już wartość false, a to oznacza, że te dwie wartości nie są
równe. I to co należy zapamiętać to wszelkie operatory porównania, o których
mówimy w tej lekcji zawsze nam zwracają true lub false. Czyli wynikiem
jakby całego takiego wyrażenia jest true lub false. Tutaj nic innego nam się pojawić nie
może. I to zostanie przypisane oczywiście do takiej stałej.
Możemy również taki operator zamienić na
potrójny znak równości i mógłbyś się zapytać co to oznacza.
Wyniki będą w tym przypadku dokładnie takie same.
Natomiast potrójny znak równości oznacza,
że będziemy tutaj porównywać dokładnie również typy.
To będzie najlepiej pokazać swoją drogą tutaj nam podkreśla na czerwono,
nie martw się tym bo to nie jest błąd to jedynie taka podpowiedź.
Jeżeli zrobimy tak,
że będziemy chcieli porównać operatorem porównania czy 20, która jest liczbą
jest równe dwudziestce, która jest tekstem zauważ, że również nam zwróciło true.
Jeżeli chciałbym zapytać czy 20 jest równe Jan
to zwróci nam false. Nie jest równe. Ale z jakiegoś powodu
wartość liczbowe jaką jest 20 jest równa wartości tekstowej 20 i mamy tutaj true.
To jest rzecz, którą zrozumiesz później
jak będziesz trochę więcej programował ale wyobraź sobie, że mamy formularz na stronie
internetowej i w tym formularzu ktoś może wpisać jakąś wartość np.
może wpisać imię, nazwisko i powiedzmy wiek.
I strony internetowe czy w zasadzie przeglądarki działają tak, że zawsze jak
ktoś wpisze coś w takim polu to my to dostajemy czyli odczytując w kodzie
wartość takiego pola dostajemy jako ciąg znaków.
Czyli jeżeli nawet ktoś pisze wartość 20 w
takim polu czyli ma 20 lat to my to zawsze otrzymamy jako wartość tekstową np. tak,
. więc jeżeli w kodzie będziemy chcieli
porównać czy to jest równe 20 to możemy to zrobić
takim oto operatorem.
Natomiast jeżeli tutaj postawimy trzeci znak równa się to
to oznacza, że jest to operator tzw.
Strict Equality Operator i on już sprawdza wtedy dokładnie
również typy. A więc nie zwrócił nam tutaj true tylko zwrócił false bo wartość
liczbowe 20 to nie jest to samo co wartość testowa 20. Więc jeżeli chcemy dokładnie
porównać jakieś dwie wartości w tym sprawdzając ich typy pamiętaj to jest typ
tekst, typ liczba to używamy operatora takiego potrójnego porównania.
On znowu zwraca true lub false i to zostanie tutaj podstawione,
natomiast w tym przypadku zwrócił false ale gdybyśmy tutaj mieli dwudziestkę to po
pierwsze te wartości są równe a po drugie są tego samego typu czyli liczbowego
dlatego wtedy zwróci nam tutaj true.
Mamy jeszcze wiele innych operatorów, które
teraz mówię ale nie będę ich zapisywał w formie takiego wyrażenia tylko w formie
instrukcji warunkowej. O instrukcjach jeszcze będziemy mówić
ale tak czy siak już w tym kursie pokazałem bo niestety niektórych koncepcji
nie da się omówić nie korzystając z innych koncepcji. Więc napiszę tutaj if
i to co podamy w nawiasach to musi być wartość prawdziwa lub fałszywa
żeby to co jest pod spodem czyli tutaj się wykonało.
Więc będę chciał wpisać tutaj najpierw jedną
rzecz a za moment uzupełnimy warunek i wpisze tutaj liczba nie jest równa 20.
I teraz piszemy warunek, w którym pokaże Ci inny operator.
Swoją drogą to tutaj zwróciło nam true lub
false. To już wiesz, że te operatory zwracają true lub false.
W instrukcji if podstawiamy tak naprawdę true lub false albo wartość prawdziwą lub fałszywą.
Więc to samo można wstawić po prostu w tym miejscu i będzie to tak samo działać ale
chciałem Ci to najpierw pokazać w formie takiego wyrażenia.
Tutaj natomiast skorzystam z operatora, który mówi nam czy wartości nie są równe.
Więc możemy zapytać czy number nie jest równe 20
to wtedy wyświetli się ta linijka.
Zauważ, że nie wyświetlił się ten tekst dlatego, że number jest równy 20. I podobnie
jak przy tym operatorze, który w tym przypadku sprawdza wartości ale nie
porównuje typów a w tym przypadku porównaj również typy
to kiedy sprawdzamy czy wartości nie są równe to możemy użyć tutaj wykrzyknik
jeden znak równości albo wykrzyknik i dwa znaki równości. I zauważ, że teraz nam już
wyświetliło liczba nie jest równa 20 bo porównywało również typy.
Więc ten operator to jest odwrotność tego
operatora i mówi nam on czy w zasadzie zwraca true lub false
jeżeli tutaj number nie będzie równy 20.
Inne operatory porównania, które mamy to są
takie jak większa od lub mniejsza od więc możemy sprawdzić jeżeli number jest np.
większe od 30 to możemy wtedy wpisać console.log
liczba jest większa od 30.
Zauważ, że nie wyświetliło nam się to nigdzie dlatego, że ta liczba nie jest większa od
30 ale jeżeli zrobimy większa od 10 to już ten tekst wyświetli.
Więc to jest kolejny operator.
Znowu przyjmuje dwa operandy czyli po lewej stronie coś i po prawej
i on też zwraca true lub false.
Gdybyśmy go użyli w tym miejscu to by nam powiedział czy number jest większa od 20,
nie bo 20 jest równe 20 więc tutaj by postawił false.
Więc to zapamiętaj, że wszystkie te operatory, one w wyniku jakby swojego działania
zwracają true, które tu jest podstawione lub false.
Czyli to jest operator większy od.
Możesz się domyślić, że mamy jeszcze operatory takie jak mniejsze od
ja je tutaj po prostu wypisze może sprawdzać czy coś jest mniejsze
natomiast możemy jeszcze sprawdzać coś co chce Ci pokazać większe lub równe czyli
możemy powiedzieć jeżeli number jest większy lub równy 20 to możemy wypisać
ciąg.
Liczba jest większa lub równa 20.
I zauważ, że to nam się wyświetla dlatego,
że number nie jest większa od 20 ale jest równe.
W ten sposób można zapisać większa lub równa.
Możemy również skorzystać z operatora zapisanego w ten sposób.
To oznacza mniejsze lub równe gdybyśmy z niego skorzystali nie będę już tutaj wstawiał.
I na koniec będę chciał Ci pokazać jeszcze jedną rzecz, która połączy już kilka
koncepcji, które poznałeś. Utworzę sobie zmienną
czy w zasadzie stałą number 2 piszę jej wartość 6.
I teraz będziemy chcieli określić czy
wartość kryjąca się pod tą stałą jest liczbą parzystą czy nie.
Pokażę ci jak to zrobić.
Możemy sobie napisać const.isEven czyli czy parzyste.
Pamiętaj, że te nazwy są absolutnie dowolne to jest tylko nazwa stałej.
I teraz zastosujemy takie oto wyrażenie. A więc będziemy chcieli napisać number 2
modulo 2 i teraz możesz sobie przypomnieć to co mówiłem w poprzednich
lekcjach jak pokazywały ten operator Modulo, że on zwraca resztę z dzielenia.
Czyli jeżeli 6 podzielimy przez dwa to jaka jest reszta?
Nie ma żadnej reszty czyli jest to 0 a więc ten operator nam tutaj zwróci 0.
Ale zostawmy sobie to w ten sposób i teraz będziemy chcieli porównać czy to zero,
które tutaj zostało zwrócone jest równe zero.
żeby to lepiej wyglądało,
możemy sobie również to zgrupować. Nie jest to błędem,
a wtedy będziemy widzieli jak to dokładnie
działa chociaż tutaj ta kolejność porównywania tak czy siak zadziałaby
identycznie ale jak dodamy nawiasy to wydaje mi się, że trochę lepiej to wygląda.
Czyli sprawdzamy czy 6 Modulo 2 a więc czy reszta z dzielenia 6 przez 2 to jest 0
i porównujemy to z zerem.
Wiemy że operator porównania zwraca nam
true lub false dlatego w tej zmiennej będziemy mieli true lub false.
Więc jeszcze raz number 2 Modulo2 to nam
zwróci 0 a więc nasz kod się zachowa tak jakbyśmy pytali czy zero jest równe zero.
A ten operator zwraca true lub false skoro 0 jest równe zero podstawi true. I teraz po
prostu gdzieś niżej w naszym programie moglibyśmy sprawdzić co jest stałej isEven
i moglibyśmy na tej podstawie coś wyświetlić coś zrobić i tak dalej.
Więc zostawmy sobie to w ten sposób i
myślę, że już widzisz jak te koncepcje się ze sobą łączą. Mamy operator, który nam
zwraca tutaj liczbę porównujemy czy ta liczba jest równa innej liczbie ten
operator porównania tak jak wszystkie inne, które się tutaj znajdują zwraca nam true lu false
i to właśnie zostanie zapisane w tej stałej.