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.
Kolejnym nieodłącznym elementem języków
programowania są funkcje. Możesz je również kojarzyć z lekcji matematyki
i §w zasadzie powiązanie pomiędzy jednymi a drugimi jest całkiem zasadne.
Chodzi o to, że funkcje w językach
programowania, czy też w momencie gdy piszemy programy, umożliwiają nam
wykonywanie różnego rodzaju operacji na przekazanych do nich danych.
W wyniku ich działania otrzymujemy nowe dane. Patrząc na schemat, i
tutaj dodam tylko że znowu stosujemy
pudełko, natomiast w tym momencie nie jest to zmienna, natomiast zmienną mamy tutaj a
konkretnie mamy wartość Adam i przekazujemy ją do funkcji toUpperCase().
Funkcja ta, jak sama nazwa wskazuje z języka angielskiego, pozwala nam na
przekształcenie określonej wartości w taki sposób, aby była pisana z wielkiej litery.
Więc wynikiem działania takiej funkcji jest po prostu napisane moje imię
tym razem z wielkiej litery.
To co jest istotne, to w momencie gdybyśmy
przekazali tutaj wartość, która już by się rozpoczynała z wielkiej litery
to efekt działania tej funkcji byłby dokładnie taki sam.
Poza wskazanym przeze mnie przykładzie
funkcje w językach programowania zajmują się nie tylko transformacją danych, ale
umożliwiają nam również wykonywanie określonego kodu, który jest w nich zawarty
wiele razy bez konieczności jego powtarzania.
Konkretnie chodzi o to, że funkcja toUpperCase()
wewnątrz siebie posiada określony fragment kodu, który zajmuje się
transformacją danych i my w ramach naszego programu nie musimy bezpośrednio odwoływać
się do tego konkretnego kodu, natomiast wystarczy że odwołujemy się do tzw.
referencji czyli po prostu po nazwie wywołuje naszą funkcję przekazując do niej
odpowiednie dane. Dzięki czemu jesteśmy w stanie rozwijać
nasze programy zdecydowanie prościej ponieważ powtarzalne jego elementy możemy
po prostu pozamykać w funkcjach a następnie po prostu przekazywać do nich
dane i pracować wyłącznie na zwróconych wartościach.
Czyli można powiedzieć, że funkcje w programowaniu przyjmują i zwracają
określone wartości wykonując na nich określone operacje.
Inaczej mówiąc chodzi o to, że funkcje
pełnią ogromną rolę w kontekście strukturyzowania kodu naszego programu
ponieważ jesteśmy w stanie rozwiązać jakiś problem tylko raz, a następnie po prostu po
nazwie funkcji odwoływać się do tego rozwiązania.
Proponuję abyśmy zobaczyli jak to wygląda na przykładzie. Mamy tutaj fragment kodu
zapisany w języku JavaScript w którym definiujemy funkcję o nazwie sayHello.
Funkcja ta przyjmuje jeden argument w postaci imienia, które następnie przekazuje
do metody console.log wyświetlając powitanie.
Oczywiście nic nie stoi na przeszkodzie, aby wykorzystać wewnątrz tej funkcji
przykład z poprzedniej lekcji uwzględniający określone warunki. Czyli
jeżeli imię nie zostanie podane to po prostu wyświetlimy komunikat
"cześć", w przeciwnym razie użyjemy również imię.
W każdym razie chodzi tutaj o korzyści, które niesie ze sobą wykorzystanie funkcji
ponieważ teraz wystarczy, że wywołam funkcję sayHello() odwołując się do jej imienia, a
następnie przekaże do niej wartość, która mnie interesuje. Dzięki czemu jestem w
stanie wywołać tą funkcję wiele razy i nie muszę zastanawiać się nad tym w jaki
sposób to powitanie zostanie konkretnie wyświetlone.
Oczywiście w tym konkretnym przypadku mamy
bardzo prosty przykład wykorzystania funkcji.
Natomiast wyobraź sobie sytuację, w której
ta funkcja rozwiązuje nieco bardziej skomplikowany problem a my aby skorzystać
z tego rozwiązania wystarczy że odwołamy się do jej nazwy a następnie podamy
interesujące ją informacje. Dzięki czemu pracujemy wyłącznie na wyniku.
Coś takiego jest elementem, z którym
niejednokrotnie będziesz się spotykał zarówno wykorzystując funkcje, które
napisałeś samodzielnie jak i funkcje napisane przez innych programistów.