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 napiszemy swój pierwszy kod,
który będzie wykorzystywał koncepcję zmiennych.
Natomiast zanim to zrobimy to chciałbym na początku utworzyć sobie tutaj w naszym
projekcie katalog 01 i plik. Więc robię to w ten sposób: nazwiemy katalog 01 a plik
index.js. I teraz o ile zakończenie tego pliku, czyli rozszerzenie to powinno
być zawsze js o tyle nazwa pliku nie ma znaczenia.
Możesz go sobie nazywać Script.js albo main.js, nie ma to większego
znaczenia ja będę te pliki nazywał po prostu jako index.
Więc utworzymy sobie taki pierwszy katalog i zrobię to tylko teraz w kolejnych
lekcjach już tutaj będę taki katalog i plik miał żeby nie marnować czasu.
I jeszcze jedna rzecz, którą będę chciał
uruchomić to jest ten dodatek Quokka, który wcześniej zainstalowaliśmy więc Command
Shift P lub Control Shift P na Windowsie i wpiszemy Quokka Start on Current File.
Dzięki temu będziemy mieli fajne
podpowiedzi, gdzie będziemy widzieli wynik naszego kodu.
I teraz jeszcze przejdziemy do terminala.
Jestem w tym katalogu kurs, musimy przejść
do katalogu 01, czyli wpisać cd 01, po utworzeniu tego katalogu.
Jeżeli wpisze ls to nam pokaże, że plik index się w tym katalogu znajduje.
I teraz będziemy chcieli ten plik po prostu uruchomić, ale za pomocą nodemona
jak już ci wcześniej pokazałem po to, aby za każdym razem kiedy zapiszemy ten plik był
on od nowa wykonywany i abyśmy wynik tego wykonania widzieli tutaj.
Więc tak sobie to uruchomimy.
I co ważne w kolejnych lekcjach ja już to
będę robił przed rozpoczęciem takiej lekcji, więc nie będę tego za każdym razem
pokazywał na ekranie. Pamiętaj żeby to zrobić u siebie.
Przechodzimy zatem do pliku i tutaj będę chciał utworzyć pierwszą zmienną. I teraz w
różnych językach programowania są różne zapisy do tworzenia zmiennych. W
przypadku JavaScriptu można to zrobić na kilka sposobów np.
z użyciem słowa kluczowego let. Więc
piszemy let i potem wpisujemy dowolną nazwę np.
let zmienna, ale ja będę chciał tutaj napisać imię.
Można również użyć polskich znaków, ale nie
jest to dobra praktyka więc napiszmy coś takiego let imię równa się i napiszę tutaj
Jan. Na końcu linijkę zakończę średnikiem
i już tłumaczę co tutaj się wydarzyło.
A więc słowo kluczowe let określa, że będziemy tworzyć zmienną.
Następnie podajemy nazwę takiej zmiennej,
następnie podajemy znak równości i tak naprawdę jest to znak przypisania,
a konkretnie operator przypisania i później podajemy wartość. W tym przypadku w
cudzysłowach podałem wartość tekstową, która jest o wartości Jan.
Jest to można powiedzieć typ tekstowy, o
których jeszcze będziemy mówić w kolejnych lekcjach a wartość
tego tekstu jest to Jan.
Na końcu zakańczamy linijkę średnikiem. Więc
tak to wygląda i teraz słów kilka na temat nazewnictwa zmiennych.
Otóż zmienne w języku JavaScript konkretnie możemy nazywać prawie dowolnie,
ale muszą się one zaczynać zawsze albo od dolara albo od podkreślnika albo od liter
od A do Z wielkich lub małych. Więc nie może się zmienna zaczynać od cyfry np.
nie może być tutaj 3,
ale gdybym tutaj zrobił 3 już w porządku.
Taka zmienna też będzie w porządku.
Nie ma problemu, podobnie z dolarami. Mogę
tutaj użyć dolara czy podkreślnika w środku również jest to poprawna nazwa.
Natomiast na początku nie może być cyfry.
Może być dolar, podkreślnik lub litera wielka lub mała
i co ważne później mogą być również te same znaki i dodatkowo cyfry.
Natomiast nie może być tutaj znaków takich jak np.#.
Czyli ważne żeby te zmienne nazywać zazwyczaj po prostu literami od a do z no i
cyframi, ale nie na początku takiej zmiennej.
OK no i teraz utworzyliśmy taką zmienną i
jeżeli tutaj napiszemy tylko imię czyli jakby odwołamy się do tej zmiennej to Quokka
czyli ten dodatek, który uruchomiliśmy nam podpowiada że jest to Jan.
Natomiast jeżeli zapisze tam plik i nodemon tak
naprawdę go tutaj wykonał z użyciem środowiska node, nic się nie wyświetliło.
No bo tak naprawdę nic nie zrobiliśmy
czyli nasz program komputerowy kiedy się wykonywał zapisał sobie w pamięci
operacyjnej taką wartość jak Jan, no i następnie zakończył się usuwając te dane z
pamięci, bo nic z tymi danymi nie zrobiliśmy.
I teraz jeżeli chcemy coś wyświetlić na
ekranie tutaj lub gdybyśmy taki skrypt JavaScript uruchamiali
na stronie internetowej, to byśmy to zobaczyli w specjalnej konsoli przeglądarki, to
możemy wpisać coś takiego jak console.log tutaj nawiasy
i w nawiasach podajemy wartość czyli to co chcemy wypisać.
Tak naprawdę log to jest pewnego rodzaju
funkcja, o funkcjach jeszcze bardzo dokładnie będziemy mówić później.
Na razie warto wiedzieć tyle, że to wypisze taką zmienną na ekranie,
tutaj Quokka znowu bez uruchamiania tego programu już pokazuje że będzie to Jan,
jeżeli zapisze, tym razem pojawia się to tutaj.
Jak zatem widzisz zmienne pozwalają nam
przypisać do nazwanej przez nas zmiennej jakąś wartość. I z tej zmiennej możemy
korzystać później przekazując ją w różne miejsca.
Natomiast z tym przekazywaniem to stanie się
bardziej jasne wtedy, kiedy będziemy korzystać np.
z funkcji. Utwórzmy sobie kolejną zmienną którą nazwiemy nazwisko,
I przypiszę jej również wartość tekstową
Kowalski. W ten sposób i teraz mamy dwie takie zmienne. Oczywiście również mógłbym ją tutaj
wypisać, ale nie będę tego w tym momencie robił.
Zrobimy za to rzecz inną. Mianowicie tutaj wypiszemy sobie imię
a pod spodem pokażę Ci jak można wartość zmiennej zmienić. Bo właśnie tutaj
sama jej nazwa, czyli zmienna, to jest taka struktura, której wartość może się zmieniać.
Więc napiszmy imię równa się i napiszemy Marcin. I teraz już nie podajemy tutaj
słowa let bo taka zmienna została już wcześniej utworzona.
Zauważ, że nawet edytor mi tutaj od razu podświetla, że nie możemy zadeklarować
ponownie zmiennej, która jest już zadeklarowana.
Jeżeli zapisze, zauważ że nodemon wykonał nasz program i zwrócił nam błąd.
O błędach jeszcze powiemy sobie później, natomiast widzimy, że nasz program nie
działa poprawnie dlatego, że źle skorzystaliśmy z zapisów języka, a więc nie
możemy drugi raz utworzyć zmiennej o tej samej nazwie.
Ale jeżeli zrobimy to w ten sposób to nie
tworzymy jej od nowa tylko po prostu przypisujemy jej inną wartość.
I teraz jeżeli byśmy zrobili console.log(imię) tutaj nam Quokka od razu pokazuje, że będzie
to Marcin. Jeżeli zapisze dokładnie tak samo stało się tutaj.
A więc ten program jest wykonywany z góry na dół można powiedzieć linijka po linijce.
Tworzymy zmienną imię, zapisujemy taką wartość w pamięci operacyjnej, tworzymy
kolejną zmienną nazwisko jest taka wartość. Wypisujemy wartość zmiennej imię na ekranie
jest to Jan. Następnie zmieniamy tę wartość i wypisujemy i
teraz ta wartość jest inna. Więc na tym
etapie, można powiedzieć, że w tym momencie w kodzie, w tej linijce nie wiemy już, że
wcześniej ta zmienna miała wartość Jan. Ta wartość w pamięci operacyjnej komputera
została po prostu nadpisana. Pokażę Ci teraz, że możemy tworzyć również
zmienne, które są tak naprawdę stałymi. Często zamiennie się o tym mówi, że jest to
utworzenie zmiennej, ale tak naprawdę jest to stała i pokażę Ci czym się różni.
Możemy napisać const zamiast let i stworzyć taką jakby zmienną nazwisko, ale
poprawnie powinniśmy mówić że jest to stała.
Ona działa dokładnie tak samo. Moglibyśmy ją wypisać tutaj w konsoli itd.
Natomiast ma jedną bardzo ważną cechę. Otóż takiej zmiennej stałej czyli stałej tak
naprawdę nie możemy nadpisać. Jeżeli zrobimy nazwisko równa się np.
Nowak zauważ że nawet bez uruchamiania tego programu Quokka, czyli ten nasz dodatek od
razu nam podpowiad,a że nie możemy przypisywać do stałych.
I tutaj edytor również nam mówi, że nie możemy tego zrobić. Znowu byłby to błąd i
nasz program nie działałby poprawnie. Bo taka jest idea deklarowania stałych.
W tym kurs jeszcze zobaczysz bardzo często będziemy takie stałe deklarować.
Zawsze wtedy kiedy my z góry wiemy, że chcemy tam przechowywać jakąś wartość i
chcemy mieć pewność, że nigdzie się ona nie zmieniła. Jeżeli przez przypadek w naszym
programie gdzieś będziemy próbowali napisać to program nie będzie działał i
będziemy wiedzieć, że coś zrobiliśmy nie tak.
Natomiast zmienne tworzymy wtedy kiedy wiemy, że taką wartość chcemy zmieniać.
Tutaj wydaje się, że nie jest to najlepszy przykład.
Po co zmieniać takie imię.
Ale w tym kursie jeszcze wielokrotnie zobaczysz przykłady, gdzie te zmienne
będą musiały być zmieniane, na przykład wyobraź sobie, że mamy jakąś zmienną gdzie
wstawimy wartość zero, o czym powiemy jeszcze później, a potem będziemy chcieli
ją zwiększać stawiając tam kolejne wartości kiedy będziemy wykonywać np.
jakieś operacje dodawania itd.
Na koniec pokażę Ci jeszcze jedną rzecz, otóż moglibyśmy sobie utworzyć zmienną
kopiaImię i zauważ że napisałem to tak że tutaj mam wielką literę.
To jest tak zwana notacja camelCase. Żeby nie pisać w ten sposób, żeby to było
bardziej czytelne to robimy tak w niektórych językach programowania,
niektórzy programiści tworzą np.
zmianę w ten sposób. W JavaScript również byłoby to poprawne, ale nie jest to
można powiedzieć taka praktyka, która jest w tym języku przyjęta.
Tutaj piszemy w notacji camelCase, a więc tak i dlaczego powiedziałem kopiaImię? Dlatego, że chciałbym tutaj przypisać imię.
Zauważ, że nie zrobiłem tego w cudzysłowach, a
więc nie pisałem literalnie wartości imię tylko odwołałem się do innej zmiennej.
Podobnie jak tutaj tą zmienną przekazaliśmy, tak samo przypisałam ją tutaj.
I to oznacza tylko tyle, że utworzyłem nową
zmienną o nazwie kopiaImię, która przechowuje dokładnie taką samą wartość
jak imię, czyli w tym przypadku będzie to Marcin.
Jeżeli wypiszemy to w konsoli,
zapisze,
OK tutaj mamy cały czas błąd bo nie powinniśmy
tutaj nadpisywać wartości stałej, więc pokażę Ci jedną rzecz.
Możemy na początku takiej linijki napisać
takie dwa // i to tworzy nam komentarz, a więc w takim komentarzu możemy wpisywać
sobie dowolne rzeczy na przykład jakieś podpowiedzi dla nas, albo możemy wykomentować
jakiś kod i ten kod wtedy nie będzie w ogóle brany pod uwagę,
więc nie będzie nam generował błędu. Ok.
No i teraz widzimy, że wypisaliśmy Jan, Marcin oraz Marcin. Z tego właśnie powodu, że do
tej zmiennej przypisaliśmy aktualną wartość poprzedniej zmiennej czyli zmiennej imię.
Wiem, że na początku te koncepcje mogą się
wydawać zamawiane, ale nie chcę w tej lekcji zbyt dużo czasu poświęcać zmiennym
i stałym bo będziemy je cały czas wykorzystywać jeszcze w tym kursie i
będziesz miał mnóstwo okazji żeby zobaczyć jak to wszystko wygląda w praktyce.
W tej lekcji chciałem po prostu pokazać
jak w przypadku języka JavaScript tworzymy zmienne.
Pamiętaj, że jest to konstrukcja, która w
każdym języku programowania jest dostępna natomiast w innych językach
tworzenie zmiennych może wyglądać trochę
inaczej niekoniecznie ze słowami let czy const.
Czasami nawet tworzymy zmienne tak jak w
języku PHP nie używając żadnego słowa kluczowego, tylko tam nazywamy
zmienną poprzez dolar i piszemy zmienna i od razu przypisujemy jej jakąś wartość.
Także sposoby tworzenia zmiennych w
różnych językach mogą być różne ale jak wiesz czym są i jak działają zmienne
odnajdzie się bez problemu w każdym języku programowania.