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 pomówimy trochę o zakresie zmiennych w funkcjach. To można przedstawić
na wiele sposobów ja będę się starał to zrobić w sposób jak najprostszy,
więc chciałbym utworzyć pewną funkcję, którą nazwiemy init.
Nazwa oczywiście jak pamiętasz dowolna. Nie przyjmuje żadnych parametrów ale ona nam
pogrupuje jakąś logikę, która by inicjowała nasz program.
Można tak powiedzieć chociaż nic tutaj skomplikowanego nie będzie.
I teraz będę chciał w tej funkcji utworzyć sobie jakąś stałą np.
firstName równa się Maciej.
Ok i teraz chcę Ci§ pokazać jedną bardzo ważną rzecz.
Jeżeli tylko to zapiszemy oczywiście nic się nie dzieje ale mógłbyś pomyśleć, że skoro
utworzyła stałą firstName to mogę się do niej odwołać. Gdybym tutaj chciał zrobić console.log firstName
okaże się, że mam błąd.
Zobacz cały program się wysypał, ja go tutaj wyczyszczę żeby za chwilkę mieć tutaj
poprawne komunikaty, że taka zmienna lub stała lub np.
funkcja o takiej nazwie nie istnieje. Bo okazuje się, że zmienne w języku JavaScript
i stałe są ograniczone poprzez zakres funkcji lub bloków takich jak np.
instrukcja if.
Już Ci to będę chciał pokazać.
Czyli ta stała firstName będzie widoczna wyłącznie w tej funkcji a
więc do niej się mogę odwołać tylko pomiędzy tymi nawiasami.
Na zewnątrz nie będzie ona już dostępna.
I to tak naprawdę jest dobre bo jeżeli
mamy jakieś rzeczy w funkcji takie stałe czy zmienne, to one są lokalne bo są nam do
czegoś potrzebne w takiej funkcji i nie powinny one nam zaśmiecać tego globalnego
można powiedzieć zakresu, nie powinny być widoczne gdzieś indziej.
Natomiast gdybyśmy zrobili inaczej i ta stała byłaby tutaj to oczywiście ona wtedy
tu jest dostępna i jest co ciekawe też dostępna wewnątrz takiej funkcji.
Czyli jeżeli funkcja została zdefiniowana
w tym miejscu to można powiedzieć, że ona widzi taką stałą firstName, która jest u góry.
Gdybyśmy w niej chcieli zrobić console.log(firstName),
nie ma problemu również nam to zadziała.
Oczywiście teraz się wyświetla Maciej tylko
z tego console.loga bo funkcji nigdzie nie wywołaliśmy
ale gdybyśmy ją wywołali init, zapisze, to będziemy dwa razy mieć tutaj
Maciej. Natomiast co ciekawe można taką zmienną czy stałą nadpisać jeżeli w środku
bym sobie utworzył firstName i powiedział, że to jest Piotr nie jest to błędem.
I teraz to działa tak, jeszcze tutaj
wyczyszczę żeby mieć pewność co się dzieje, zapisuje,
program się uruchomił zobaczyliśmy Piotr i Maciej. Dlatego, że ta funkcja teraz
kiedy będzie szukać odwołania do firstName to znajdzie to we własnym zakresie.
Jeżeli by nie znalazła to szukała by tego
w zakresie wyżej tak jak było przed momentem.
Natomiast to przypisanie nie sprawi w
żaden sposób, że zmienna czy stała, która jest tutaj zostanie jakoś zmieniona.
Dlatego jeżeli wywołujemy funkcje to ona w środku ma u siebie taką stałą
zrobiła console.log Piotr a poniżej robimy console.log firstName,
no i wiemy, że na tym poziomie jakby mamy
dostęp tylko do tej stałej. Gdybym ją wykomentował czyli tak jak bym usunął to
znowu będzie błąd bo w tym zakresie jej po prostu nie ma.
W przypadku języka JavaScript taki zakres
jest tworzony również przy instrukcji typu np.
if
więc jeżeli byśmy sobie zrobili coś
takiego może tutaj poniżej, że zrobię if jeżeli jakiś warunek czyli np.
jeżeli firstName w ogóle jest podane w ten sposób to
sprawdzimy, to będę chciał sobie utworzyć jakąś np.
stałą lastName
i napiszemy tutaj Kowalski, zróbmy to w ten sposób to okazuje się, że
jeżeli poza tym blokiem if chciałbym zrobić console.log(lastName)
to również będziemy mieli błąd, że lastName nie został zdefiniowany. Dlatego, że taki blok w
przypadku if ogranicza nam również czy tworzy nam nowy zakres zmiennych i stałych.
Jeżeli tutaj byśmy jeszcze utworzyli sobie przez let jakąś np.
zmienną to one są widoczne jakby tylko w
tym bloku a poza tym blokiem ich już nie ma.
W przypadku języka JavaScript jeżeli chodzi o ten zakres zmiennych to potrafi
to być jeszcze dużo bardziej skomplikowane ale nie chcę Ci teraz tym zaprzątać głowy
bo nie jestem na tym etapie aż tak bardzo istotne,
a poza tym w tym kursie staramy się bardziej skupić na różnych koncepcjach
programistycznych, które są podobne lub takie same w wielu językach programowania.
Jeżeli chodzi o zakres zmiennych to tutaj
w każdym z języków programowania trzeba będzie na to zwracać uwagę bo
niekoniecznie będzie to działać tak samo jak tutaj, że np.
taka funkcja będzie miała dostęp do
zmiennych utworzonych jakby poza nią. Nie w każdym języku tak będzie ale chciałem Ci w
tej lekcji po prostu powiedzieć o tym czym jest zakres zmiennych. A więc chodzi o to,
że gdzieś te zmienne lub stałe tworzymy i w innym miejscu
one mogą już nie być dostępne tak jak mogą się te lekcje zobaczyć.