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 tym dziale skupimy się krótko na tym czym jest programowanie obiektowe. Tak się o
tym mówi potocznie a fachowo powiedzieli byśmy programowanie zorientowane obiektowo.
Będę chciał Ci w tej i w kilku kolejnych lekcjach pokazać z czym to się je,
bez wchodzenia w jakieś bardzo drobne szczegóły bo jest to temat trochę bardziej
zaawansowany ale bardzo zależy mi na tym żeby zobaczył z czym to się je,
tak jak wspomniałem czyli jak to po prostu wygląda
i o co w tym wszystkim chodzi.
Myślę, że będziesz mógł to całkiem nieźle zrozumieć w tej i w kilku kolejnych lekcjach.
Więc zobaczmy sobie na początek jakie są zalety OOP.
A jest to skrót od Object Orientet Programming
czyli właśnie programowanie zorientowane obiektowo.
Przede wszystkim mówimy, że w przypadku
takiego paradygmatu programowania możemy opisać świat za pomocą kodu.
Oznacza to mniej więcej tyle, że jeżeli będziemy tworzyć np.
sklep internetowy to opiszemy świat czyli
naszą rzeczywistość gdzie mamy zamówienia, produkty, atrybuty produktu itd.
za pomocą kodu gdzie będziemy mogli
stworzyć takie specjalne klasy, które reprezentują wszystkie z tych rzeczy np.
zamówienie, np.
produkt itd i za moment jeszcze o tym powiemy.
Kolejna zaleta jest to możliwość podzielenia programu na mniejsze moduły.
Możemy tworzyć klasy i dzięki temu dzielimy sobie logikę naszego programu,
w jednej takiej klasie realizujemy jedno
zadanie i możemy mieć wiele takich klas, które w całość się łączą tworząc nasz
program ale dzięki tym klasom jest on podzielony na mniejsze części.
Jeżeli dobrze napiszemy swój kod to
również będziemy mogli go używać wielokrotnie w wielu różnych miejscach.
Więc jakby w różnych konfiguracjach będzie można te klasy ze sobą łączyć.
No i to wszystko można powiedzieć, że upraszcza tworzenie programów
komputerowych bo kod źródłowy, który my piszemy ma być zrozumiały dla człowieka i
wykonywany przez maszynę. Dzięki programowaniu obiektowemu
ten kod może być naprawdę bardzo bardzo
czytelny i zrozumiały kiedy ten kod czytamy,
nawet jeżeli nie my go napisaliśmy to
możemy się domyślić co dany program robi. Teraz zobaczmy przykłady klas.
Klasa jest to swego rodzaju schemat, który opisuje jakąś rzecz. Więc wyobraź sobie, że
mamy sklep internetowy i stworzylibyśmy klasę zamówienie i teraz dzięki tej klasie
będziemy mogli potem tworzyć obiekty i już w kursie
wspominałem, że obiekty mogą mieć metody i
właściwości. To będą trochę inne obiekty niż robiliśmy je do tej pory w języku
JavaScript ale również będą mieć metodę i właściwości.
No i takie zamówienie jeżeli byśmy sobie na kartce go opisywali,
bo jak najbardziej można to robić zanim zaczniemy w ogóle programować to
zastanowili byśmy się jakie właściwości powinno to zamówienie mieć.
No i doszlibyśmy do wniosku, że potrzebujemy np.
przechowywać numer zamówienia,
datę tego zamówienia i powiedzmy produkty, które do tego zamówienia są przypisane.
Możemy również mieć metodę, która nam
będzie wyliczać wartość tego zamówienia na podstawie produktów i ich cen.
Później mielibyśmy klasę produkt i np.
niech to będzie książka
i taka klasa miałaby w sobie właściwości takie jak nazwa i np.
cena. Jeżeli teraz spojrzymy na te dwie rzeczy
to można się domyślić, że jeżeli będziemy traktować zamówienie i produkt jak swego
rodzaju szablon to będziemy mogli tworzyć wiele obiektów np.
z klasy produkt i powiedzmy, że będziemy mieli nazwę książka i cena 40 złotych a
drugi produkt utworzony dokładnie z tej samej kasy to będzie mógł być np.
zeszyt i cena 5 złotych.
Jeżeli byśmy te dwa produkty dodali do
zamówienia właśnie pod tą właściwość produkty, która jest po lewej stronie w
zamówieniu i skorzystali powiedzmy z metody wartość to możesz się domyślić, że w
zamówieniu moglibyśmy sprawdzić po kolei wszystkie produkty, które tam są.
Skoro produkt ma cenę to te ceny moglibyśmy zsumować i dzięki temu
zamówienie mogłoby wyświetlić swoją wartość.
Mniej więcej taki przykład będziemy chcieli odtworzyć w kolejnych lekcjach
więc zobaczysz jak to wszystko działa w praktyce.
Na razie zapamiętaj tyle, że za pomocą klas
możemy modelowania sobie w kodzie rzeczy z prawdziwego świata.
Oczywiście nie tylko rzeczy z realnego świata bo klasą może być powiedzmy plik.
Możemy powiedzieć, że plik ma również nazwę, datę utworzenia, date edycji itd.
Tak więc bardzo wiele rzeczy możemy
wymodelować za pomocą klas i następnie z tych klas tworzy się już konkretne obiekty.
I tak jak wspomniałem np.
produkt może mieć różne nazwy i różne ceny ale to co jest wspólne dla wszystkich tych
produktów to to, że one mają nazwę i mają cenę.
To zatem tyle teorii.
Zerknijmy jak to działa w praktyce.