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 ten oto sposób przeszliśmy już do
ostatniej rzeczy, o której chciałbym Ci jeszcze powiedzieć i tak naprawdę już
wielokrotnie o niej wspominałem, natomiast postanowiłem poświęcić na nią oddzielną
lekcję ze względu na to, że w mojej opinii jest to najważniejsza rzecz, o którą
powinieneś zawsze dbać jako programista czyli o to, aby pozostawać na bieżąco.
Przede wszystkim musisz zrozumieć
doskonale fakt, że programowania nie da się nauczyć. To znaczy tego wszystkiego jest
tak dużo, że nie ma możliwości abyś pewnego dnia obudził się i powiedział, że nauczyłeś
się programowania. Oczywiście programowania możesz się po prostu uczyć i chodzi o to,
że ten proces ma początek ale nigdy nie ma końca.
I właśnie tak długo gdy będziesz funkcjonował w takim nastawieniu będziesz
mógł pozostawać na bieżąco stosując odpowiednie zasady i triki, o których
powiem Ci za chwilę. Oprócz tego, że na tym etapie wiemy już, że programowania nie
można się nauczyć i trzeba rozwijać się nieustannie, to
trzeba też pamiętać o tym, że technologia zmienia się niesamowicie szybko.
Obserwujemy to w zasadzie każdego dnia,
natomiast jako programiści doświadczamy tego zdecydowanie mocniej.
Każdego dnia pojawiają się nowe narzędzia
nowe Framework i prawdopodobnie nawet w trakcie oglądania tego kursu pojawiły się
nowe narzędzia, które czekają na wykorzystanie.
Naturalnie Twoje zadanie nie polega na tym aby opanować je wszystkie, tylko na tym, aby
zdawać sobie z tego sprawę i sięgać po nowości tak często jak to jest możliwe.
Jest to o tyle ważne, że nowe narzędzia i
nowe technologie dają Ci po prostu nowe możliwości.
Z jednej strony możesz czuć się trochę
niekomfortowo, no bo zdecydowanie łatwiej jest korzystać z narzędzi, które już doskonale
znasz i w których jesteś w stanie swobodnie się poruszać,
natomiast za każdym razem, gdy sięgasz po
coś nowego no to jesteś tak naprawdę nowicjuszem.
Prawda jest jednak taka, że wraz z upływem
doświadczenia, odkrywanie nowych narzędzi jest zdecydowanie prostsze i mało tego, gdy
wyrobisz sobie taki nawyk sięgania po nowe narzędzia,
to ja proponuję abyś przełączał się w
takiej chwili w Tryb Eksploracji. To znaczy, że jak małe dziecko po prostu ciekawy
świata sprawdzasz co nowe narzędzia mają do zaoferowania bez posiadania w głowie
presji dotyczącej tego, że wszystko musi stać się dla ciebie jasne i że musisz
opanować wszystkie elementy tego narzędzia.
Mi osobiście często zdarza się korzystać z
jakichś narzędzi bądź języków programowania, których absolutnie nie mogę
powiedzieć że poznałem i doskonale rozumiem tylko sięgam po ich niektóre
elementy, aby stosować je w rozwiązaniach moich problemów.
W tym wszystkim najważniejsze jest to, abyś opracował pewnego rodzaju system
zdobywania wiedzy, który będziesz realizował każdego dnia. Tzn.
możesz inspirować się tutaj systemem wiedzy, który posiadają inni czyli
przykładowo ja w momencie gdy sięgam po jakieś nowe narzędzia i rozwiązania często
sięgamy również po kursy online, które szybko wprowadzają mnie w wybrany temat,
natomiast nie mam pewności czy tak samo to
zadziała u Ciebie. Tak naprawdę powinieneś sprawdzić, zobaczyć czy to działa i
jeżeli tak to zostawić i w ten sposób
zbudujesz system, który będzie działał najlepiej dla Ciebie. W budowie tego
systemu powinieneś zadbać również o to, aby zadbać o jakość źródeł wiedzy.
Inaczej mówiąc chodzi o to, że nieważne jaki system będziesz posiadał, ale jeżeli
będziesz czerpał wiedzę ze źródeł, które będą zawierały błędy albo będą wymagały
niesamowicie dużo energii od Ciebie do tego, aby opanować jakieś wybrane
zagadnienia, no to zdecydowanie na tym stracisz.
W moim przypadku taką ogólną zasadą którą
się kieruje jest to, aby czerpać wiedzę u źródła czyli np.
jeżeli mamy Framework NetJS, który przygotował Kamil Myśliwiec, no to bardzo
chętnie sięgam po wszystkie materiały, które udostępnia na blogu i jego kursy
online ze względu na to, że zdecydowanie lepiej jest posłuchać na temat tego
framework'a od niego niż od jakiejkolwiek innej osoby.
Oczywiście nie jest to jakaś sztywna zasada ponieważ może zdarzyć się że np.
Piotrek Palarz przygotuje na ten temat
lepszy kurs, który lepiej zadziała dla mnie. Lepszy w kontekście tego, że lepiej
zadziała dla mnie, pozwoli mi zrozumieć więcej rzeczy,
ale z drugiej strony może zdarzyć się tak, że np.
w Twoim przypadku lepiej zadziała jakaś książka.
Z tego powodu raz jeszcze chciałbym podkreślić, że warto zadbać o to, aby
korzystać wyłącznie z jakościowych źródeł wiedzy.
Poza tym musisz pamiętać o tym, że w
zdobywaniu wiedzy nie ma nic złego i zdecydowanie warto o to zadbać,
natomiast najważniejsza jest praktyka i to w jaki sposób zdobywasz doświadczenie
właśnie realizując i rozwiązując różnego rodzaju problemy.
To akurat możesz spotkać szczególnie na etapie początkowym nauki programowania,
kiedy to zostajesz zalewany różnego rodzaju materiałami, które obiecują Ci to,
że nauczysz się programować w bardzo krótkim czasie, a w praktyce w większości
przypadków najważniejsze jest to, abyś po prostu sam zaczął programować, spotkał
pewne problemy, które sam rozwiążesz i w ten sposób rozwijał swoje umiejętności.
Gdybym miał Ci tutaj coś poradzić, to w
praktyce ograniczy się to do dwóch słów dobrych nawyków.
to w praktyce ograniczy się do dwóch rzeczy: dobrych nawyków i Twojego otoczenia.
Czyli z jednej strony musisz zadbać o to, aby wyrobić sobie dobre nawyki czyli
wspomniany system nauki i system zdobywania wiedzy, który będziesz realizował
i wykorzystywał codziennie pozwoli Ci pozostawać na bieżąco i to wszystko nie
będzie wymagało od Ciebie zbyt dużo energii. W końcu poświęcenie kilku,
kilkunastu minut na to, aby przeczytać kilka artykułów nie brzmi jakoś strasznie.
Natomiast uwierz mi, że to w zupełności
wystarcza do tego, aby na pewnym etapie pozostawać na bieżąco.
Naturalnie w momencie gdy jesteś na etapie
początkowym nauki, bądź też potrzebujesz w krótkim czasie opanować jakiś większy
materiał, no to oczywiście tej nauki powinno być więcej.
Natomiast ogólna zasada jest taka, aby nie porywać się z motyką na słońce
i raczej rozwijać się jako programista, traktując to bardziej jako maraton a nie
sprint. Poza samymi nawykami, w tym wszystkim bardzo pomoże ci również Twoje otoczenie.
Czyli jeżeli w twoim otoczeniu,
mam tutaj na myśli np.:
pokój, będzie np. Stała konsola,
która ciągle będzie cię kusić do tego aby sięgnąć po nową grę,
to szansa na to że wykorzystać te 30 minut na naukę zdecydowanie spada.
Natomiast jeżeli już będziesz w pokoju, w
którym będą otaczać cię książki i różnego rodzaju materiały, które będą wspierać
proces nauki, no to efekt końcowy będzie tutaj zdecydowanie lepszy.
Jednocześnie zadbaj o jakość swoich relacji z osobami, które np.
posiadają większe doświadczenie w
kontekście programowania, bądź też podobnie jak Ty są na etapie nauki.
W ten sposób razem wzajemnie będziecie się
motywować i przełamywać kolejne bariery, które z pewnością się pojawią.
I w tym wszystkim ostatnia rada ode mnie jest taka, aby czytać książki. I mam tutaj
na myśli mądre książki, które będą cię rozwijać w tematach programistycznych,
marketingowych, w tematach dotyczących rozwoju produktu, czy np.
psychologii, która jest niesamowicie istotna nie tylko w kontekście relacji
międzyludzkich, ale również projektowania systemów ponieważ tak jak wiesz,
my jako programiści jesteśmy odpowiedzialni za komunikację pomiędzy
ludźmi a komputerami i poznając języki programowania rozumiemy komputery,
natomiast czytając książki np.:
psychologiczne jesteśmy w stanie lepiej
zrozumieć ludzi, co też sprawia że będziemy lepszymi programistami.