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.
Kolejną grupą operatorów, które poznamy są operatory
logiczne.I przejdźmy od razu do kodu, utworzę dwie stałe.
Jedna to będzie firstName czyli imię napiszemy
Maciej druga to będzie lastName czyli nazwisko napiszemy Kowalski.
I teraz będziemy chcieli sprawdzić w pewnej instrukcji czy imię równa się
Maciej i czy nazwisko równa się Kowalski. Więc będziemy mieli dwa warunki i
oba muszą być spełnione żebyśmy mogli coś
wyświetlić. Więc będę chciał stworzyć taką instrukcję warunkową, napiszemy if, za moment
ją uzupełniamy oczywiście tu musimy podać jakiś warunek i o instrukcjach warunkowych
już wspominałem, będzie jeszcze o nich dedykowana lekcja ale niestety czasami jest tak, że
nie da się wytłumaczyć pewnych koncepcji nie korzystając z innych
i musiałem tak ułożyć ten kurs, że one będą znajdować się trochę później ale mam
nadzieję, że na tym etapie widzisz jak one działają.
Więc jeżeli warunek tutaj, który za moment
podam będzie prawdziwy to wykona się ta linijka kodu więc tutaj będę chciał
napisać, że imię to Maciej nazwisko to Kowalski.
Jeżeli ten warunek będzie prawdziwy.
I tutaj będę chciał operatorem porównania, o których mówiliśmy w lekcji poprzedniej
sprawdzić czy w firstName a więc odwołuje się do zmiennej równa się Maciej.
Ok.
Jak to zapiszemy to widzimy imię to Maciej nazwisko to Kowalski chociaż nigdzie
jeszcze nie sprawdzaliśmy tego nazwiska no ale taki komunikat chcieliśmy wypisać.
Na sekundę jak się tutaj zatrzymamy to przypomnę, że taki operator zawsze zwraca
true lub false czyli jeżeli ją porównał, że to co jest pod firstName to jest Maciej to
jest równe ciągowi znaków Maciej no to tutaj nam postawił true.
A if jeżeli widzi wartość prawdziwą to wyświetla to co jest poniżej czyli
wykonuje kod, który się znajduje pomiędzy takimi nawiasami klamrowymi.
Natomiast ja chcę tutaj dodać jeszcze
jeden warunek i powiedzieć, że nazwisko musi być równe
Kowalski. I możemy to zrobić w ten sposób, że podajemy takie dwa ampersandy,
czyli to jest koniunkcja z angielskiego taki operator nazywa się And czyli i.
I tu możemy podać kolejne wyrażenie.
Napiszemy lastName równa się Kowalski. I teraz sprawdzamy dwie rzeczy czy firstName
równa się Maciej i czy lastName równa się Kowalski. Tylko wtedy wykonaj tę linijkę.
Zobacz, że ona się znowu wykonała,
ale jeżeli nazwisko byśmy zmienili na Nowak,
zobacz to teraz nic się tutaj nie stało po zapisaniu. Nie udało nam się tego
już wykonać dlatego, że nie zostały spełnione oba te warunki.
Teraz jak się nad tym zastanowimy i rozbijemy
sobie to na czynniki pierwsze to każdy operator operuje na jakichś
operandach. No i tak jak do tej pory Ci pokazałem na przykład operator porównania
ma dwa operandy. Po lewej stronie i po prawej.
I najpierw się na tym należy skupić patrząc na taki kod co się tutaj stanie.
Otóż najpierw ten operator porówna czy firstName jest równe Maciej i wiemy, że taki operator
zawsze zwraca true lub false. Więc tu zostanie podstawione true
i to staje się operandem po lewej stronie
dla tego operatora. Następnie po prawej stronie byłoby sprawdzone czy lastName równa
się Kowalski w tym przypadku tak, więc też zostanie podstawione true.
Czyli można powiedzieć, że zredukowali byśmy się do takiej postaci.
I teraz co robi operator and. On jeżeli to co ma po swojej lewej stronie
uzna, że to jest wartość fałszywa to po prostu ją zwróci.
Czyli jeżeli tutaj nie byłoby true tylko np. false
to całe takie wyrażenie zostałoby zredukowane do false i wtedy if
. nieprawda,
czyli jeżeli fałsz nie wykonaj tej linijki.
Natomiast jeżeli ten operator po lewej stronie to co ma uzna, że jest to prawda to
przechodzi na swoją prawą stronę i przetwarza to co jest tutaj. Czyli tak
naprawdę to sprawdzenie byłoby dopiero wykonywane wtedy jeżeli tutaj zostałby
uznane, że jest true, przechodzimy na prawą stronę, wykonujemy to co jest tutaj,
to też się zredukuje do true
i wtedy zwróci nam to co jest po prawej stronie w taki oto sposób. I if true
wykona tę linijkę. Ale co ważne jeżeli to wyrażenie jeżeli tu byśmy postawili Nowak
zwróciło by nam false czyli to już wiemy, że jest true więc ten operator przechodzi na
swoją prawą stronę wykonuje to co jest tutaj czy lastName równa się Nowak,
nie, więc to zostanie zwrócone jako fals i cały ten operator zwróci to co jest po
prawej stronie. Dla niego już jest nieistotne czy to jest true lub false.
Jeżeli pierwsza wartość tutaj była
prawdziwa przechodzi na prawą stronę wykonuje to co tam jest i to zwraca.
A więc jeżeli zwraca to zostałoby to podstawione tutaj i nasza instrukcja if
teraz już wygląda klarownie mówimy jeżeli fałsz
no to wiemy, że ta linijka się nie wykona.
Ona się wykona tylko jeżeli tutaj jest prawda. Więc cofnę to do tej pierwotnej postaci,
ale zauważ, że jeżeli to rozbijemy na czynniki pierwsze to staje się to dużo
prostsze a więc najpierw ten operator podstawia tu true lub false,
ten operator bierze sobie tutaj to co jest z tej strony jeżeli jest w false to od
razu zwraca false jeżeli jest true przeskakuje na swoją prawą stronę,
wykonuje wyrażenie, które jest tutaj i zwraca to co ono
zwróciło czyli nieważne czy true lub false. I dopiero to zostaje podstawione do instrukcji if.
Kolejnym operatorem logicznym bardzo
ważnym jest operator OR czyli lub. Tutaj powiedzieliśmy, że
imię musi być równe Maciej i nazwisko musi być równe Kowalski.
Natomiast teraz chciałbym zrobić inny warunek,
zaraz go uzupełniamy, który nam wyświetli imię to Maciej lub nazwisko to Kowalski.
Czyli teraz chcemy sprawdzić tylko jeden warunek. Ta linijka ma się wyświetlić jeżeli
albo imię to będzie Maciej albo nazwisko to będzie Kowalski.
Możemy to zrobić w ten sposób. I teraz znowu będziemy korzystać z operatorów
porównania, które tutaj mieliśmy czyli napiszemy firstName
równa się Maciej ale zamiast tego and
skorzystamy z dwóch takich kresek pionowych czyli operator lub. Napiszemy lastName
równa się Kowalski. I już to będę dokładnie tłumaczył.
Sprawdzimy tylko jak to się wykona to widzimy że imię to Maciej lub nazwisko to
Kowalski i teraz jeżeli imię zmienimy na Jan
to już nam się, ja tu może w ogóle wyczyszcze prawym
przyciskiem Clear żeby po napisaniu od nowa się wykonało.
Zauważ, że ta linijka się nie wykonała. Nie
mamy imię Maciej nazwisko to Kowalski bo to się już nie zgadza.
Natomiast ta linijka owszem.
Imię to Maciej lub nazwisko Kowalski więc może być tutaj nawet Jan.
Teraz jak działa ten operator.
W przeciwieństwie do operatora And
jest to po prostu lub, więc sprawdzamy sobie tutaj czy firstName równa się Maciej.
W tym przypadku nie bo to jest Jan czyli ten
operator tak naprawdę podstawi nam tutaj false.
I teraz jak mówiłem przed momentem operator And jeżeli po swojej lewej
stronie widzi false to on po prostu to false zwróci i kończy, nie
przechodzi na swoją prawą stronę dlatego, że u niego dwa warunki muszą być prawdziwe.
Czyli musi być tutaj true żeby mógł przejść dalej. Natomiast operator or czyli
lub różni się tym, że jak on po swojej lewej stronie widzi false
to tak czy siak przechodzi na swoją prawą
stronę i zwróci nam to co tutaj będzie podobnie jak było wcześniej.
Więc jeszcze raz,
firstName równa się Maciej wiemy, że nie bo to jest Jan, tu zostaje zwrócone false
lub i tutaj sprawdzamy czy lastName równa się Kowalski,
tutaj zostaje zwrócone true bo lastName
równa się Kowalski więc cały ten
operator zwraca nam true i dlatego ta linijka nam się wyświetla.
Ok.Mam nadzieję, że to jest jasne czyli tym
operatorem możemy postawić dwa warunki, że i ten i ten musi być prawdziwy,
natomiast tym operatorem mówimy, że jak coś
jest tutaj nieprawdziwe to sprawdź jeszcze to.
Oczywiście gdyby tutaj lastName nie było równe Kowalski tylko np.
Nowak, no to ta linia w ogóle się nie wykona bo firstName nie jest równy Maciej,
podstawiamy false,
sprawdzamy po prawej stronie czy lastName jest równe Kowalski,
nie, bo to jest równe Nowak więc podstawiamy też false
no i całe to zostanie zamiana na false bo to jest z prawej strony zostanie zwrócone.
Ok.
Na koniec jeszcze chcę Ci pokazać jeden operator logiczny a jest to operator
zaprzeczenia czyli wykrzyknik i możemy go użyć np.
w takim kontekście, utworzyły sobie taką
stałą, którą nazwiemy Name i przypisze tutaj wartość np.
Piotr. I teraz w instrukcji warunkowej
ja będę chciał spytać czy Name
nie zostało podane jeżeli nie zostało podane to chcę zaraz to Ci tutaj uzupełnię
pokażę Ci jak to zrobić, to chcę napisać imię nie zostało podane.
I znowu my tutaj jakby ręcznie tworzymy tą stałą ale taką wartość możemy otrzymać np.
z formularza na stronie internetowej.
My nie wiemy czy ktoś coś wpisał czy nie
w momencie kiedy tworzymy program więc musimy to na którymś etapie sprawdzić.
Ok.
No i możemy tutaj zaprzeczyć operatorem wykrzyknika
w ten sposób. Teraz samo takie zaprzeczenie co robi, ono nam odwraca wartość.
Jeżeli wartość była prawdziwa czyli np.
Piotr jeszcze zapisze to tutaj, Piotr jest to wartość prawdziwa
to jeżeli zrobimy wykrzyknik Piotr to zamieni to na false.
I to się może wydawać skomplikowane ale on nam odwraca wartość.
Natomiast jak odwrócić wartość Piotr?
Musimy uznać, że jest to wartość prawdziwa i odwrócić ją na false.
Natomiast jeżeli byśmy mieli true, zrobili not true !true
on całe to zamienia na false.
Natomiast jeżeli nie ma true tylko po prostu
wartość prawdziwa jaką jest ciąg znaków też to zamieni na false.
I teraz
dlaczego możemy to zapisać w ten sposób.
Bo chce wyświetlić, że imię nie zostało
podane tylko jeżeli ta wartość jest fałszywa. Zapisze, nic się nie stało.
Ale jeżeli tu nie będzie podane imię,
zauważ imię nie zostało podane. I teraz ci to wytłumaczę jeszcze raz.
Wartość pusta jest traktowana jako fałszywa.
Not odwraca nam wartość czyli jak nam odwrócić wartość fałszywą to całe to przyjmie true.
No i if jeżeli prawda no to wyświetl imię nie zostało podane .
Natomiast przeciwnym wypadku jeżeli tutaj
będzie Piotr jest to uznawane za wartość prawdziwą więc jeżeli prawdę odwrócimy
za pomocą wykrzyknika to całe to przyjmie postać false.
Więc jeżeli fałsz no to ta linijka się nie wyświetli.
Mam nadzieję, że to jest jasne i tutaj
pokazałem Ci trzy operatory logiczne operator And, operator Or oraz operator Not
czyli operator zaprzeczenia, który odwraca nam wartość.