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 porządku, no to nadszedł czas aby wybrać
technologię, w ramach której będziemy się poruszać oraz
generalnie ścieżkę programowania, która
interesuje nas najbardziej. Jak wiesz
możliwości są nieograniczone, a w zasadzie są niesamowicie duże i czeka cię wiele
różnych decyzji, które trzeba będzie podjąć prędzej czy później,
natomiast dobra wiadomość jest taka, że nie musisz podejmować ich wszystkich od razu i
jednocześnie też nie musisz uczyć się tego wszystkiego,
natomiast możesz zacząć po prostu małymi
krokami i z czasem będziesz stawał się po prostu lepszym programistą,
będziesz bardziej świadomie podejmować
kolejne decyzje, natomiast nie zmienia to jednak faktu, że od czegoś trzeba zacząć.
Bez obaw nie zostawię cię tutaj z niczym mi nie powiem
wybierz sam i zaufaj sobie itd.
Chodzi o to, że przejdziemy sobie teraz przez
kilka takich dość ciekawych i ogólnych pytań, które powinny nakierować Cię w pewien
sposób na to, która dziedzina programowania jest Ci najbliższa.
Pierwsze takie pytanie i może nie łączy
się w ogóle z programowaniem, natomiast chciałbym żebyś odpowiedział sobie na
pytanie czy wolisz rysować czy rozwiązywać np.
złożone problemy matematyczne.
Chodzi o to, że to mniej więcej pozycjonuje Cię w obszarze programowania.
Bo jeżeli lepiej sprawdzasz się w dziedzinach takich artystycznych np.
dotyczących czy to rysowania
i tu nie chodzi o to, że lubisz rysować, bądź potrafisz, masz jakiś
artystyczny talent, natomiast bardziej chodzi o to, że nie wiem np.
jak grasz w gry komputerowe albo oglądasz
jakiś film to doceniasz bardziej tą kwestię wizualną niż kwestię techniczną.
Jeżeli tak faktycznie jest, no to jest duża
szansa na to, że lepiej odnajdziesz się w dziedzinach dotyczących front-end
developmentu czy też w dziedzinach, które są zbliżone do tej wizualnej części aplikacji
ponieważ tam jest wiele pracy nad takimi szczegółami wizualnymi, które po prostu
trzeba dopracować i trzeba mieć do tego oko.
No i ten obszar dotyczący front-end developmentu i projektowania interfejsów
jest zdecydowanie mniej wymagający technicznie niż obszar dotyczący
back-endu i wykonywania jakichś zaawansowanych obliczeń,
implementowania bardzo zaawansowanych algorytmów. Dlatego też jeżeli z drugiej
strony lubisz rozwiązywać złożone problemy,
uwielbiasz matematykę, fizykę itd. to
być może lepiej odnajdziesz się, w zasadzie
jest większa szansa na to, że odnajdziesz się np.
jako programista silników, które są wykorzystywane w grach i symulują np.
fizykę. Natomiast znowu najważniejsze jest to, abyś
odpowiedział sobie na to pytanie i mniej więcej zorientował się, w którym obszarze
możesz się znajdować. To na pewno Cię w jakimś stopniu nakieruje i pomoże iść dalej.
Kolejne pytanie, które może pomóc Ci w
podejmowaniu decyzji dotyczących rozwoju jako programista,
dotyczy tego co w ogóle chcesz tworzyć tzn.
Ja od razu wiedziałem, że chcę projektować strony internetowe,
potem to rozwinęło się w ramach różnych, nawet bardziej zaawansowanych aplikacji,
natomiast zdecydowanie daleko mi było od jakichś korporacyjnych systemów, które co
prawda stanowią ogromne wyzwanie, często tam mamy do czynienia np.
z koniecznością utrzymania
ogromnej wydajności w kontekście dużego obciążenia,
natomiast mnie nie do końca to interesowało.
Zdecydowanie bliżej mi było do designu i na to poprzednie pytanie zdecydowanie
odpowiadam, że lubię bardziej rysować niż rozwiązywać złożone problemy, aczkolwiek
oczywiście to jedno drugiego nie wyklucza.
I w momencie gdy odpowiesz sobie na
pytanie co chcesz tworzyć i powiedzmy że odpowiedzią będą tutaj aplikacje mobilne,
no to taka odpowiedź bardzo konkretnie zawęża obszar w ramach którego się
poruszasz oraz jednocześnie zawęża listę technologii które możesz wybrać do tego
aby rozwijać się jako programista aplikacji mobilnych.
Kolejne pytanie, które być może pojawia Ci się już teraz w głowie dotyczy tego, jaki
język programowania jest dobry na początek? Czyli niezależnie od tego jaką ścieżkę
programowania wybierzesz później, zależy ci najbardziej na tym aby po prostu zacząć
programować ponieważ chcesz zobaczyć jak to jest.
Prawda jest taka, że odpowiedzi na to pytanie nie ma do końca takiej
jednoznacznej i z pewnością jeżeli pójdziesz do programisty JavaScript on
powie Ci że JavaScript jest najlepszy na początek.
Z kolei jeżeli pójdziesz do programisty, który od wielu lat programuje w języku PHP
poleci Ci język PHP jako ten od którego powinieneś zacząć.
Prawda jest jednak taka, że w obliczu tego co powiedziałem na przestrzeni poprzednich
lekcji, języki programowania co prawda różnią się od siebie natomiast posiadają
pewne cechy wspólne, które tak naprawdę przede wszystkim musisz zrozumieć.
Czyli niezależnie od tego jaki język programowania wybierzesz,
najważniejsze jest to, aby po prostu zacząć
programować i przekonać się czy w ogóle Ci się to podoba. No bo po co spędzać wiele czasu
nad tym, aby zastanawiać się który język programowania będzie dla ciebie najlepszy,
jeżeli okaże się, że zaczniesz programować w jakimkolwiek i
zobaczysz, że to po prostu nie jest dla ciebie.
Z drugiej strony może okazać się, że od razu będziesz
wiedział że programowanie Ci się bardzo podoba,
no to wtedy nic nie stoi na przeszkodzie,
aby po prostu spróbować kilku języków, zobaczyć, poczytać sobie
jakie możliwości Ci one dają i dopiero wtedy podjąć decyzję o tym, że np.
uczysz się JavaScriptu i chcesz zostać web-deweloperem.
Kolejne pytanie, które może pomóc Ci w
kontekście wyboru technologii oraz ścieżki programowania,
jest odpowiedź na pytanie w jakiej w ogóle firmie chcesz pracować?
I tutaj do dyspozycji masz kategorie firm
takie jak startupy, software house'y, korporacje czy np.
chcesz otworzyć własny biznes. Bo to też
jest ścieżka którą możesz obrać jako programista.
Chociaż w tym konkretnym przypadku polecał bym najpierw popracować chwilę jako
programista, zobaczyć w jaki sposób rozwijane są aplikacje i w jaki sposób w
ogóle pracuje się w firmie i dopiero wtedy myśleć o własnym biznesie.
W każdym razie praca w startupie czy korporacji zasadniczo różni się od siebie.
Przykładowo w startupie zespół, w którym
pracujesz jest zdecydowanie mniejszy niż w korporacji, ale z drugiej strony masz też
większy wpływ na to w jaki sposób ta firma w ogóle się rozwija.
Także znowu warto się tutaj zastanowić w
jakiej kategorii firm chcesz pracować, a być może już teraz masz nawet konkretną
nazwę firmy w której chciałbyś kiedyś pracować
więc nie pozostaje nic innego jak po
prostu wejść na ich stronę zobaczyć jakąś zakładkę kariera bądź też odnaleźć
ogłoszenia o pracę i zobaczyć w jakich technologiach pracują.
W dodatku nic nie stoi na przeszkodzie
abyś po prostu do nich bezpośrednio napisał i powiedział, że
zaczynasz naukę jako programista, chciałbyś tam kiedyś pracować i po prostu chcesz się
dowiedzieć więcej na temat wykorzystywanych tam technologii.
To zdecydowanie pomoże Ci obrać konkretny kierunek i zrealizować Twój cel.
Ostatecznie pamiętaj o tym, że
najważniejsze w tej całej układance nie jest odpowiadanie sobie na pytania na które
trudno jest znaleźć odpowiedź, ale najważniejsze jest to abyś zaczął działać.
To znaczy programistą staniesz się w momencie gdy zaczniesz pisać kod i
zaczniesz rozwiązywać kolejne problemy i zdobywać w ten sposób doświadczenie.
W ten sposób zdobędziesz wystarczające doświadczenie, które pozwoli ci znaleźć
pierwszą pracę no a Ty zostaniesz programistą.