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 chciałbym Ci pokazać, że oprócz tego, że obiekty mogą mieć właściwości i
mówiliśmy o nich wtedy kiedy w takim obiekcie mieliśmy klucz i jego wartość
i jeżeli ta wartość była wartością, która nie jest funkcją zaraz o tym jeszcze powiemy,
natomiast obiekty również mogą mieć metody tak jak np.
wcześniej korzystaliśmy z metod na tablicach np.
arr.push, ja mówiłem, że to jest jakaś metoda bo była
to funkcja dostępna na obiekcie. I chociaż jeszcze nie rozmawialiśmy o funkcjach
jeżeli to co teraz pokaże nie będzie
całkiem jasne proszę wróć do tej lekcji po tym jak obejrzysz lekcje o funkcjach,
ale chcę Ci mimo wszystko to pokazać,
chciałem to zawrzeć w dziele o obiektach.
Więc będę chciał utworzyć tak jak wcześniej obiekt, który nazwę person
i wewnątrz utworzymy mu klucz firstName czyli pod firstName chcemy mieć Jacek,
pod lastName czyli nazwisko chcemy mieć Kowalski i możemy wtedy powiedzieć, że jak
się odwołamy do person.firstName to odwołaliśmy się do właściwości firstName.
Tutaj może być tak jak już wspominałem
przechowywana dowolna wartość, tu mógłaby być np.
tablica
gdybyśmy chcieli powiedzieć, że Jacek ma np.
jakieś hobby to moglibyśmy tutaj zrobić hobbies i zrobić tablicę i np.
powiedzieć sport
i motoryzacja
i zauważ, że nie ma problemu jest to tablica wtedy jak się odwołać do person.hobbies
to się odwołaliśmy do tablicy no i na tej tablicy mielibyśmy
takie metody jak push i wszystkie inne, które Ci wcześniej pokazywałem.
Natomiast mamy również coś takiego jak metody i o metodach mówimy wtedy kiedy w
jakimś obiekcie właściwość jest funkcją. To wtedy nie mówimy, że jest właściwością,
z angielskiego swoją drogą właściwość to property tylko mówimy, że taka
wtedy taka właściwość jest metodą. Ok.
No to ja Ci po prostu pokażę jak to dodać.
Znowu dodajemy sobie jakiś klucz
dokładnie tak samo jak byśmy chcieli
nazywamy go np. sayHello czyli
powiedz cześć tylko, że zamiast przypisywać tutaj jakiejś wartości tekstowej, liczbowej
itd to przypisujemy funkcję. Bo w języku JavaScript w takim obiekcie
możesz tutaj po prawej stronie przypisać wszystko.
Może to być tablica, string, number,
wszystko co jest reprezentowane w języku JavaScript.
No i skoro funkcje w języku JavaScript też są
dostępne można je tutaj bez problemu przypisać.
Natomiast w kontekście obiektów mają one
specyficzne znaczenie, o którym krótko powiem ale później będziemy również w tym
kursie mówić o programowaniu obiektowym, gdzie może to się stanie bardziej jasne.
Na początek w takiej funkcji
wpisze kod, który chciałbym żeby się wykonał kiedy wywołany taką funkcję.
Więc chcę tutaj powiedzieć cześć. I teraz jeżeli się odwołamy do person.sayHello
to tak naprawdę odwołałem się do tej funkcji.
Czyli można powiedzieć, że mam tutaj już tę
funkcję. I funkcję można wywoływać za pomocą pary nawiasów okrągłych. Tak jak na
tablicy wcześniej mieliśmy taką tablicę arr wywoływaliśmy metodę push, to tak samo jak
mam funkcję od sayHello to ją wywołuje w ten sposób. Co oznacza, że wywołuje?
A to oznacza tylko tyle, że kod, który
zawarłem wewnątrz tej funkcji chcę żeby się wykonał dokładnie teraz.
Więc jeżeli to zapisze to zobaczymy tutaj, że console.log wyświetlił nam cześć. A więc
możemy powiedzieć, że nasz obiekt person ma metodę sayHello.
Natomiast jeszcze jedną ciekawą rzeczą jest fakt, że możemy wewnątrz tej funkcji
odwołać się do tych właściwości obiektu, które tutaj mamy. Czyli
gdybym chciał tutaj powiedzieć Cześć jestem Jacek to mogę zrobić coś takiego,
cześć jestem i tutaj chciałbym dokleić do tego
Jacek. Natomiast nie mogę się odwołać do firstName
niestety to tak nie zadziała bo gdybym tak
zrobił to oczekiwali byśmy, że gdzieś wcześniej była taka zmienna lub stała firstName.
To nie będzie tak, że zostanie to wyszukane tutaj wewnątrz tego obiektu.
Niestety tak to nie działa. Ale możemy się
odwołać do tego obiektu, w którym jakby jesteśmy bo zauważ, że ta funkcja jest
wewnątrz tego obiektu poprzez takie specjalne słówko this.
This będzie nam w tym kontekście kierowało dokładnie na ten obiekt.
Czyli tutaj wewnątrz this to jest to samo co poza tym obiektem person.
Czyli ja mogę powiedzieć person.firstName
to wyobraź sobie, że w środku this to jest to samo co person,
a to oznacza, że mogę powiedzieć
this.firstName
Mogę to zrobić dokładnie w taki sposób.
I this.firstName zwróci mi taki string Jacek, który plusem zostanie połączony z
cześć jestem i zostanie to wyświetlone w
console.logu w momencie kiedy wywołujemy tę funkcję.
Czyli gdybym tego wywołania nie miał, wykomentuje go, nic się nie wydarzyło.
Natomiast kiedy wywołuje tę funkcję mamy Cześć jestem Jacek.
Jak widzisz działa to poprawnie.
Co ważne gdybyśmy na jakimś etapie zmienili to co jest tutaj pod firstName
czyli zanim wywołamy tę funkcję jeżeli bym powiedział person.firstName równa się Piotr
to potem jeżeli wywołany sayHello to ta funkcja weźmie sobie this.firstName, które
już nie będzie miało wartości Jacek ale wartość Piotr. Jeżeli zapiszę Cześć jestem
Piotr. No i to by było na tyle jeżeli chodzi o funkcje w obiektach.
Nie chcę tutaj się za bardzo rozgadywać
chciałem Ci tylko pokazać, że możemy mieć właściwości kiedy mamy klucz i jakąś
wartość, która nie jest funkcją to mówimy, że jest to właściwość czyli property,
natomiast jeżeli mamy klucz a jego wartość jest to funkcja to mówimy, że jest to wtedy
metoda i możemy ją tak jak każdą inną funkcję
w ten sposób wywołać a przy okazji w takim obiekcie możemy się odwoływać do jego
właściwości poprzez słowo this, to nam kieruje ten obiekt i po kropce już
normalnie do wszystkich rzeczy, które w nim się znajdują.