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.
Skoro wiesz już mniej więcej czym są zmienne to teraz w kilku kolejnych lekcjach
porozmawiamy o tym, co zmienne mogą przechowywać, a więc jakie typy danych są
dostępne we wszystkich językach programowania.
Oczywiście znowu robimy to na przykładzie
języka JavaScript, ale te typy znajdziesz w każdym z języków programowania, a w
niektórych językach nawet będzie tych typów trochę więcej.
Więc w tej lekcji chciałbym żebyśmy omówili typ, który jest tekstowym typem
danych. A więc możemy jakiegoś rodzaju tekst przechowywać w zmiennych, będziemy go
mogli przekazywać w wiele miejsc i tak dalej.
Więc będę chciał na początku utworzyć
sobie, tym razem nie zmienną, ale stałą bo dobrą praktyką jest tworzenie stałych
zawsze wtedy kiedy nie chcesz zmieniać ich
wartości, tak jak pokazywałem w lekcji poprzedniej.
Poza tym nie będzie to miało jakiegoś
szczególnego znaczenia. Więc napiszmy sobie const
i co ważne w tej lekcji będę już wykorzystywał angielskie nazwy zmiennych,
bo jest to dobra praktyka. W lekcji poprzedniej pokazałem
zmienne po polsku czyli napisałam imię czy nazwisko, żebyś wyraźnie widział gdzie ta
zmienna jest a co jest częścią jakby języka,
natomiast teraz już będziemy te zmienne czy stałe tworzyć w języku angielskim tak
jak powinno się to robić w przypadku programowania, chociaż z punktu widzenia
programu oczywiście to nie ma żadnego znaczenia.
Dlatego zamiast pisać imię napiszę firstName w takiej notacji camelCase czyli tutaj ta litera wielka, żeby to było bardzo
czytelne i napiszemy tutaj Jan. Znowu coś co mieliśmy w lekcji poprzedniej,
ale właśnie teraz skupimy się na tym, czym są te cudzysłowy i co tak naprawdę tutaj
się znajduje. Otóż mamy tutaj zapis w cudzysłowach i w
języku JavaScript to jest tekstowy typ danych. Tutaj możemy wpisać dowolny tekst
jaki tylko chcemy i tak naprawdę też tekst dowolnej długości.
To jest jeden ze sposobów jak zapisywać tekstowy typ danych.
Drugim sposobem w przypadku języka
JavaScript, tak nie musi być we wszystkich językach,
więc pamiętaj, że
w danym języku może to wyglądać inaczej, zrobimy zmienną lastName czyli nazwisko i
zapiszemy w apostrofach, napiszemy Kowalski.
W przypadku języka JavaScript to działa dokładnie tak samo. Tutaj nie ma żadnych różnic.
Tak naprawdę jeżeli chodzi o te dwa zapisy, więc często możesz się spotkać, że ktoś po
prostu preferuje apostrofy zamiast cudzysłowów i
w ten sposób zapisuje wartości tekstowe, które z angielskiego nazywają się string.
I tak jak mówię nie ma to tutaj żadnej różnicy.
Możesz to zapisywać tak lub tak. Ja
osobiście preferuję w przypadku języka JavaScript takie zapisy czyli cudzysłowy.
Co ważne w niektórych językach programowania takich jak np.
PHP też są dozwolone te dwa zapisy, ale ten
zapis zachowuje się w pewnych sytuacjach troszeczkę inaczej niż ten więc jest to
istotne, w przypadku języka JavaScript nie ma to znaczenia.
OK i teraz mógłbyś zapytać kiedy z którego zapisu korzystać?
Oczywiście tak jak wspomniałem to w zasadzie nie ma znaczenia.
Ale wyobraź sobie taką sytuację, że chcesz utworzyć zmienną, która przechowuje nazwę
jakiejś książki, tytuł książki i napiszemy że jest to bookTitle.
Tak nazywamy zmienną i będziemy chcieli tam przechowywać
wartość powiedzmy Władca Pierścieni.
No i teraz jeżeli zrobimy coś takiego
to wydaje się że jest OK.
Wypiszmy sobie to w konsoli. bookTitle, jeżeli zapisze to tutaj automatycznie nam się to pokaże.
Tylko, że my tutaj w cudzysłowach zapisaliśmy literalnie dokładnie taką
wartość, a ja chciałbym żeby ta wartość zawierała w sobie również cudzysłowy.
Tak jak piszemy w tekście po prostu jakiś tytuł jakieś książki tak?
Więc jeżeli zrobimy coś takiego od razu nam edytor podświetla że jest to błąd.
Nie możemy tego zapisać w taki sposób. Więc
w takiej sytuacji możemy zrobić tak, że te cudzysłowy będą częścią tego ciągu,
ale żeby powiedzieć można powiedzieć językowi programowania, że
to jest wartość tekstowa w tej zmiennej, to możemy ją zapisać właśnie w apostrofach.
Czyli tak jak tutaj w apostrofach zapisałem Kowalski,
tak tutaj w apostrofach zapisuje całą taką wartość i
wtedy te cudzysłowy wewnątrz, one nie mają już szczególnego znaczenia dla języka tak jak
miały tutaj, gdzie określały, że to co jest wewnątrz to jest wartość tekstowa. Tutaj
one już nic językowi nie mówią dlatego że wcześniej zostały użyte apostrofy
i tak naprawdę mówimy wtedy językowi programowania, że to co jest pomiędzy tymi
apostrofami to jest wartość testowa i tyle.
I język nic szczególnego z tym po prostu nie robi.
Jeżeli teraz zapiszę zauważ, że wartość
testowa zawiera w sobie już te cudzysłowy. Więc tak mogliśmy to zrobić.
Jest jeszcze jeden inny sposób np.
możemy to zapisać tak jak wcześniej,
że mamy te cudzysłowy, wiemy że to nie jest poprawne, jeszcze tutaj musi być taki cudzysłów
ok i możemy wewnątrz takiego ciągu znaków zrobić taki znak tzw.
ucieczki czyli Escape to jest taki back
slash. Jeżeli go umieścimy przed takim cudzysłowem, to wtedy zapiszmy,
zobaczmy, również będzie to działać poprawnie.
Czyli jeżeli tutaj rozpoczynamy ten ciąg tutaj go zakończamy
i środku znowu znalazłyby się takie cudzysłowy, widzieliśmy że to nie jest
poprawne, to możemy jakby od nich uciec w ten oto sposób i wtedy język
programowania można powiedzieć że usunie te backslashe,
ale też nie będzie zgłaszał błędu z tytułu
tych podwójnych cudzysłów. Będzie to działać dokładnie tak samo.
Nie jest to aż tak istotne
na samym początku przygody z
programowaniem, ale myślę że warto również o tym wiedzieć.
Zapiszmy sobie to tak jak wcześniej czyli
wycofam te zmiany w apostrofach to zostawimy
i będę chciał Ci pokazać jeszcze jeden zapis, ale zanim to zrobię to pokażę Ci w
zasadzie dlaczego on istnieje w przypadku języka JavaScript. Wyobraź sobie, że
chcielibyśmy zrobić sobie taką stałą, którą nazwę multiLine.
Chodzi o to, że chciałbym zapisać tutaj
jakiś tekst, który będzie miał wiele linijek np.
linia pierwsza zrobiłbym Enter linia druga
i już widzimy tutaj po kolorowaniu tej składni, że coś jest nie tak.
Otóż nie możemy,
jeżeli tworzymy tekst w takich cudzysłowach lub apostrofach zapisać go na wiele linijek.
Gdybyśmy chcieli to zrobić to musielibyśmy zapisać to w jednej linijce i w środku użyć
takiego specjalnego znaku jak BackSlash i n.
To oznacza, że w tym miejscu wstawiamy nową linię.
To wszystko jest w jednej linii, ale sygnalizujemy że tutaj będzie ta linia przełamana.
Jeżeli to zapisze i tutaj będziemy chcieli
wyświetlić multiLine, zauważ, że wyświetliło nam to dokładnie tak jak
chcieliśmy czyli w dwóch linijkach. Linia pierwsza,
potem taki niewidzialny znak nowej linii i linia druga. Tak musielibyśmy to zrobić.
Natomiast możemy wykomentować sobie to, najpierw kopiuje, w ten sposób.
Czyli teraz już nie będzie dla nas ta stała dostępna bo ją wykomentowałem. Stworzyłem
taki komentarz, więc to już nie jest częścią
można powiedzieć kodu źródłowego i stworzę sobie taką zmienną multiLine
jeszcze raz, ale z użyciem z kolei takiego zapisu.
Mamy takie backticki, to jest specyficzne dla języka
JavaScript i te backticki pozwalają nam tworzyć wartości tekstowe w wielu liniach.Czyli
tutaj mógłby napisać linia pierwsza postawić Enter i napisać linia druga.
I jak widzisz tutaj nie ma żadnego błędu, to będzie poprawnie działać i wygląda
dokładnie tak samo, więc tutaj możemy to zapisywać właśnie w taki oto sposób.
I jeszcze jedną cechą takiego zapisu w języku JavaScript jest to, że można tutaj
interpolować zmienne, więc mogę Ci to przy okazji pokazać np.
napiszmy sobie tutaj tytuł książki,
zrobimy dwukropek i pod spodem będę chciał ten tytuł wyświetlić, więc
interpolacja polega na tym, może zrobię to na razie w jednej linijce żeby to lepiej
wyglądało, że można napisać dolar, postawić takie nawiasy i wstawić tutaj bookTitle,
czyli odwołaliśmy się do stałej utworzonej wcześniej, wewnątrz takiego ciągu. To nie
działało by ani w apostrofach ani w cudzysłowach.
Tylko w tym specjalnym zapisie z backtickami, który po pierwsze pozwala nam
tworzyć jak widziałeś wiele linii a po drugie pozwala nam interpolować zmienne.
Jeżeli to zapisze to mamy coś takiego
tytuł książki Władca Pierścieni właśnie z tymi cudzysłowami. Jeżeli tutaj byśmy to zmienili w
ten sposób oczywiście zmieni się to również tutaj.
Czyli otworzyliśmy sobie stałą i do niej
się odwołali. Gdybyśmy to utworzyli ze słowem let oczywiście by to działało
dokładnie tak samo, ale moglibyśmy później zmienić wartość takiej zmiennej.
To zatem tyle jeżeli chodzi o tekstowy typ danych. Jak widzisz możemy w takim
tekstowym typie danych po prostu przechowywać dowolny tekst.
I tutaj oczywiście wszystko można wpisać
hash, dolar cokolwiek chcemy tutaj nie ma żadnych ograniczeń takich jak np.
przy nazwach zmiennych.
To jest dowolny tekst, taki jak moglibyśmy wpisać np.
w notatniku.