partner serwisu

Jak programować? Poradnik dla absolutnie początkujących

Jak programować? Poradnik dla absolutnie początkujących
Autor:
Marek Kowalski
Data publikacji:
24 grudnia 2014, 03:19
Średnia ocena:
Twoja ocena:
Tagi:
algorytm, code.org, kodu, microsoft, minecraft, podstawy programowania, programowanie, programowanie od podstaw, scratch, touchdevelop

Dla wielu, słowo "programowanie" kojarzy się z jakąś tajemną wiedzą, dostępną jedynie uzdolnionym matematycznie, wiecznie pochylonym nad klawiaturą pasjonatom komputerów. Nic z tych rzeczy. Nie musisz śpiewająco wykonywać rachunku różniczkowego w pamięci o trzeciej nad ranem, bądź być geniuszem fizyki teoretycznej. Programować może naprawdę każdy! Sześcioletnie dziecko, jak i ambitny, nie chcący społecznego odrzucenia emeryt! Programista to nie odludek, to normalny człowiek, jak ja i Ty, który na dodatek ma pełną swobodę działania (programować można wszędzie). Pamiętaj, programowanie to branża, w której nikomu nie grozi bezrobocie - czy uważasz, że komputerów i wszelkich programowalnych urządzeń będzie mniej? No właśnie. Jak zatem zacząć? 

Programowanie to jedna z niewielu dziedzin, w której masz absolutnie gwarantowany rozwój. Wielu zawodom towarzyszy niepewność jutra, ale komputerów, smartfonów, tabletów, programowalnych układów, urządzeń czy interfejsów - nie zabraknie. Ilość programowalnych urządzeń zdolnych do przetwarzania danych i komunikacji przez Internet przekroczyła już liczebność populacji homo sapiens na Ziemi. Według zamieszczonego przez korporację Cisco licznika Internet of Everything liczba podłączonych do Sieci urządzeń (zarówno tych bezpośrednio kontrolowanych przez człowieka, jak i autonomicznych) sięga 13 miliardów. Jest co oprogramowywać. 

Od czego zacząć?

Wielu potencjalnych kandydatów na adeptów sztuki programowania (a miało nie być "wiedzy tajemnej", co? ;-)), swoje zainteresowania w tym kierunku wyraża skierowanym do bardziej doświadczonych w danej materii koleżanek i kolegów pytaniem: "Jaką książkę mam przeczytać?".

Istotnie, półki wielu księgarń prowadzących działy "dla informatyków" wręcz uginają się od pozycji przeznaczonych dla programistów na dowolnym poziomie zaawansowania - również "dla początkujących". Od której zatem powinieneś/powinnaś zacząć?

Od żadnej.

Czy ucząc się jazdy na rowerze, czytaliście książkę? Czy nauka pływania była poprzedzona wielogodzinną lekturą (żeby nie było, takie książki naprawdę istnieją :) )? A może wiązanie sznurowadeł wymagało od Was nadszarpnięcia budżetu przeznaczonego na powiększenie biblioteki? Już widzę te uśmiechy - oczywiście że nie. Co więcej, wszyscy nauczyliście się chodzić, nie umiejąc jeszcze czytać :), a każda z tych czynności - jazda na rowerze, pływanie czy chodzenie, wymaga wykonywania określonych działań w odpowiedniej kolejności. Po prostu chcąc uzyskać jakikolwiek efekt, musisz postępować według określonych reguł. I uwierz, to nie lektura jest tym, od czego trzeba zacząć.

Oczywiście nie oznacza to, że książki "są be" i będą zupełnie zbędne. Wręcz przeciwnie, wiele pozycji z pewnością okaże się przydatnych w rozwijaniu programistycznych umiejętności, ale właśnie - w rozwijaniu. Tymczasem z założenia, Ty nie masz jeszcze żadnych umiejętności programistycznych. Nie masz pojęcia czym jest programowanie, nigdy nie napisałeś/aś jeszcze choćby linijki kodu, to jak masz zacząć?

Po prostu, zacznij programować. Pamiętaj, nauka programowania, a nauka konkretnego języka programowania to dwie różne rzeczy! Dziecko uczące się mowy, nie analizuje czy w jego otoczeniu funkcjonuje język angielski, polski, hiszpański czy suahili, ono uczy się kontaktu z otoczeniem. Tak samo Ty, chcąc programować, musisz się przede wszystkim nauczyć kontaktu z maszyną.

Dawniej wielu chętnych do nauki programowania musiało orientować się nieźle w matematyce, a także żmudnie poznawać reguły składniowe wybranego języka programowania. Dziś początkujący mają ułatwione zadanie. Na początek wystarczy sama chęć nauki.

Scratch - od lat 8 do 108.

Ten sympatyczny kotek, to logo pomocnego w nauce programowania narzędzia przeznaczonego dla absolutnie początkujących - mowa o projekcie Scratch. Scratch to nic innego jak język programowania. Dodajmy: wizualny język programowania. Zaprojektował go Mitchel Resnick. Jeżeli ktokolwiek był/jest wielbicielem zabawek-łamigłówek z serii Lego Mindstorms być może spotkał się już z tym nazwiskiem - to właśnie Resnick jest ich pomysłodawcą. Krótko mówiąc w kwestii wizualnego pobudzania kreatywności poprzez zabawę Resnick jest ekspertem. W istocie Scratch nie wygląda jak "typowy" język programowania. Korzystanie ze Scratcha przypomina raczej zabawę wirtualnymi klockami, z których każdy ma jakieś konkretne znaczenie. "Budowla" w Scratchu to właśnie program.

Teoretycznie aby rozpocząć programowanie w Scratchu wystarczy odwiedzić witrynę domową projektu, a następnie wybrać w menu głównym ikonę Wypróbuj. Mamy jednak lepszy pomysł. Weź udział w projekcie o nazwie Godzina Kodowania.

To zestaw prostych, programistycznych łamigłówek opartych m.in. na języku Scratch i wykorzystujących np. postaci z kreskówek Disneya, czy znane chyba na całym świecie ptaki z serii gier Angry Birds. Po prostu odwiedź witrynę code.org i kliknij Rozpocznij. Następnie kliknij przycisk Idź widoczny przy jednym z przykładowych zadań. 

Tak prezentuje się interfejs przykładowego zadania w Godzinie Kodowania. Po lewej stronie widoczna jest treść zadania (tu: utworzenie linii), w centralnej części widoczne są dostępne obiekty (klocki), po prawej tworzysz program realizujący postawione przed Tobą zadanie. Obsługa jest banalnie prosta - po ułożeniu z klocków programu, który twoim zdaniem wykona zadanie kliknij Uruchom. Całość ma raczej formy zabawy dla dzieci, ale jesteśmy pewni, że dostarczy ona również frajdy i starszym.

Po udanym zakończeniu zadania, zobaczysz komunikat podobny po powyższego. Zwróć uwagę na przycisk Pokaż kod

Po jego kliknięciu wyświetlony zostanie kod wykonujący zadanie, które właśnie zrealizowałeś za pomocą modułów - "klocków" - Scratcha.

Dodatkową zaletą Godziny Kodowania jest to, że w trakcie wykonywania kolejnych zadań, pomiędzy niektórymi z nich wyświetlane są krótkie klipy wideo, poprzez które poznajesz nowe istotne pojęcia programistyczne, takie jak na przykład pętle czy funkcje.

Na witrynie Code.org znajdziesz naprawdę dużo przykładów i lekcji programowania wykorzystujących język Scratch. To doskonały sposób na twórczą zabawę z dziećmi, które dzięki kolorowym blokom możesz oderwać od gier i nauczyć się wraz z nimi ich tworzenia. Na powyższej ilustracji jedno z licznych ćwiczeń w Scratchu - klon popularnej na platformy mobilne gry Flappy Bird. Jej autor zarzeka się, że już nigdy nie opublikuje jej w żadnym sklepie z aplikacjami - możesz zatem samemu pokusić się o jej utworzenie właśnie w Scratchu.

Kodu - lubisz gry? Zrób je sam

Kolejnym narzędziem pomocnym w nauce programowania i kształceniu kreatywnego myślenia jest Kodu Game Lab (w wersji polskiej Laboratorium Gier Kodu). Jest to udostępniany bezpłatnie program tworzący kompletne środowisko projektowania naprawdę efektownych gier 3D, które można później uruchomić zarówno na każdym PC z systemem Windows, a także na konsoli Xbox. Niektórzy określają kodu jako program do budowania gier, ale właśnie - jak się tworzy gry na komputerze? Oczywiście programując je! Zatem Kodu jest jak najbardziej pełnowartościowym, wizualnym językiem programowania. A fakt, że zamiast linii kodu i skomplikowanych (dla laika) poleceń wstukiwanych na klawiaturze posługujesz się myszką i obiektami graficznymi nie zmienia sedna działań - programujesz!

Pracę z Kodu zacznij może nie od tworzenia zupełnie nowego świata gry. Podstawy programowania gier w Kodu znacznie lepiej poznasz korzystając z dostarczanych wraz z programem gier przykładowych. Wybierz Wczytaj grę.

Z górnego menu upewnij się, że wybrana jest pozycja Lekcje lub Wszystko. Wtedy w centralnej części okna Kodu powinieneś zobaczyć poziomą listę miniatur. Każda z nich to odrębna gra-lekcja programowania w Kodu. Zacznij oczywiście od pierwszej pozycji na tej liście.

Po prostu wskaż miniaturę, kliknij ją myszką (lub puknij w ekran jeżeli masz komputer z dotykowym ekranem) i z rozwiniętego automatycznie menu wybierz Graj.

Wyświetlony zostanie interfejs wczytanej gry-lekcji Kodu. Zwracaj uwagę na wszystkie widoczne na ekranie elementy, każdy z nich przekazuje jaką informację i ma jakieś znaczenie. Na samej górze widoczne są wskazówki wirtualnego nauczyciela Kodu (niestety w języku angielskim - dotyczy to również polskojęzycznej wersji programu Kodu), ale dzięki wzbogaceniu poleceń tekstowych elementami graficznymi, które należy kliknąć, użytkownik łatwo może odnaleźć właściwe obiekty w interfejsie wczytanej lekcji. Gros "poleceń" języka Kodu umieszczonych jest w postaci ikonek widocznych w poziomym menu wyświetlonym w dolnej części okna, ale to oczywiście nie wszystko. 

Tak wygląda - można powiedzieć - kod programu w Kodu. Zamiast poleceń tekstowych, choćby i w postaci kolorowych pasków (jak we wcześniej wspomnianym Scratchu) tutaj mamy ikonki obrazujące obiekty i zdarzenia ułożone w odpowiednie sekwencje. Na powyższej ilustracji widoczne jest pierwsze zadanie z przykładowej lekcji - użytkownik ma dodać obsługę klawiatury, bo obsługa pada (wiersz 1) oraz ekranu dotykowego (wiersz 2) została już wstępnie dodana. Na użytkownika czeka wiersz 3, w którym widoczne są dwa symbole: Kiedy oraz Wykonaj.

Zgodnie z widocznym w górnej części okna zaleceniem wirtualnego instruktora, należy kliknąć polecenie Kiedy, co spowoduje rozwinięcie kołowej palety parametrów. Z tej palety należy wybrać odpowiednią pozycję (tu: klawiatura).

Postępując według zaleceń komputerowego przewodnika dodasz obsługę klawiatury do wczytanej gry-lekcji. Na powyższej ilustracji widoczny jest dodany trzeci wiersz "kodu" gry w Kodu, który należałoby interpretować następująco: Kiedy gracz użyje klawiatury, a dokładniej klawiszy ze strzałkami, wtedy wykonaj ruch obiektu gracza w grze. Warto polecenie sprawdzić w praktyce uruchamiając grę z wzbogaconym kodem. Klawiszem Esc wracasz z ekranu poleceń do ekranu edycji świata gry, następnie wystarczy kliknąć przycisk Play i rozpocząć rozgrywkę sprawdzając czy faktycznie działa obsługa klawiszy ze strzałkami. Skuteczne użycie tych klawiszy inicjuje kolejne zadanie, którego wykonanie premiowane jest dalszymi etapami nauki - choć raczej należałoby w tym przypadku użyć słowa: zabawa. Bo Kodu, to w istocie zabawa, dodajmy: twórcza i rozwijająca kreatywność - dla dzieci i dla starszych. 

TouchDevelop - programuj smartfony i tablety

Ostatnim narzędziem wartym użycia gdy potrzebujemy czegoś w rodzaju elementarza programisty jest kolejny wizualny język programowania opracowany przez Microsoft Research. TouchDevelop pozwala tworzyć gry i aplikacje na smartfony i tablety, ale oczywiście działa również na komputerze PC z systemem Windows. Aby skorzystać z TouchDevelop nie musisz niczego instalować - wystarczy zwykła przeglądarka WWW. Nie ma też znaczenia jaka to będzie przeglądarka - do działania TouchDevelop wymagana jest obsługa JavaScriptu, a ten wymóg spełniają wszystkie współczesne przeglądarki internetowe.

Zacznij od odwiedzenia witryny Hour of Code with TouchDevelop, czyli "godziny kodowania z TouchDevelop". Znajdziesz tam krótki film wprowadzający do TouchDevelop i możesz uruchomić pierwszą z lekcji klikając Let's get started. Nie przejmuj się też anglojęzycznością strony powitalnej witryny Hour of Code with TouchDevelop. Szkolenie, które uruchomisz klikając wspomniany przycisk jest prowadzone również po polsku (klipy wideo mają polskie napisy)

Zadanie stawiane początkującemu programiście jest dość proste. Otrzymujesz prawie gotowy projekt gry z sympatycznym robotem wyposażonym w plecak rakietowy. Słowo prawie jest tutaj kluczem, bo kod wejściowy nie jest taki jak powinien - gra teoretycznie jest gotowa, ale nie da się w nią grać. Zadaniem początkującego programisty jest poprawienie tego projektu, tak by stał się on użyteczny. Całość można uznać za specyficzną łamigłówkę, jeżeli tak to właśnie potraktujesz - jak łamigłówkę, a nie "programowanie", to zapewniamy, że godzina spędzona z TouchDevelop na pewno nie będzie stratą czasu :)

Szczegóły dotyczące poszczególnych zadań stawianych przed użytkownikiem zawarte są w wideoklipach wprowadzających do kolejnych etapów. Nie będziemy tutaj zdradzać szczegółów, zachęcamy do odwiedzenia wspomnianej witryny.

Tak wygląda kod przykładowej gry, którą już na pierwszej lekcji kursant języka TouchDevelop powinien poprawić. Początkowo osobom, które nigdy nie programowały, całość może wydawać się zbyt skomplikowana - te wszystkie linie, dziwne polecenia, jakieś liczby... Spokojnie, panika złym doradcą. O ile Scratch czy Kodu są wizualnymi językami programowania pobudzającymi kreatywność i kształcącymi myślenie algorytmiczne - niezbędne w fachu programisty - o tyle TouchDevelop jest językiem, który stanowi swego rodzaju pomost pomiędzy prostymi lekcjami dla początkujących, a rozwiązaniami stosowanymi już przez tych, którzy na słowo "programowanie" przynajmniej nie chowają nerwowo głowy w ramionach ;-).

Na początek pamiętaj o jednej prostej zasadzie, trzymaj się podpowiedzi wyświetlanych na każdym kroku w niebieskim "dymku". Całe zadanie to interaktywna prezentacja, w której - w miarę postępów użytkownika - wymagania względem kursanta stopniowo rosną. Na początku kurs ma charakter mimetycznej instrukcji, ale z każdym kolejnym etapem poznajesz istotne pojęcia i ich znaczenie w programowaniu, co pozwala wirtualnemu instruktorowi wymagać więcej. 

Wszystkie przedstawione przez nas narzędzia do nauki programowania charakteryzują się jedną, bardzo istotną, bo warunkującą skuteczne zdobywanie wiedzy, cechą - nie są nudne! Zwróć uwagę, że nie polecaliśmy żadnej książki. W zasadzie każde z trzech proponowanych przez nas środowisk programistycznych (trudne słowo, ale jak najbardziej pasujące do opisywanych narzędzi), czyli Scratch, Kodu oraz TouchDevelop, możesz potraktować jako swoiste, kreatywne gry, które z jednej strony wymagają odrobiny umysłowego wysiłku, ale odwdzięczają się elastycznością w działaniu i swobodą w zakresie kreowania własnych gier i aplikacji.

Wiele podręczników traktujących o językach programowania zaczyna się od sugestii stworzenia aplikacji Hello World! - programu, którego jedynym zadaniem jest wyświetlenie na ekranie komputera (czy innego programowanego urządzenia) komunikatu powitalnego. W dobie internetu i powszechnej globalnej łączności to anachronizm. Dziś dzięki dostępnym online narzędziom i bezpłatnie udostępnianym kursom (wszystkie opisane przez nas narzędzia o towarzyszące im szkolenia są dostępne za darmo) już w krótkim czasie możesz stworzyć działający program, który po pierwsze: robi znacznie więcej niż tylko Hello world, a po drugie, może być natychmiast udostępniony wszystkim twoim znajomym. Jak zatem kodować? Po prostu: zacznij.

2015.12.23, 13:49
Ehhh jak dla mnie to jest dobre dla dzieci w podstawówce.. Jeżeli jesteś dorosły to tak możesz się jedynie pobawić. Najlepiej zapisać się na jakiś kurs gdzie będziesz mógł zacząć od podstaw a więcej się dowiesz z niego niż z kursów online. Na dodatek wiele z takich kursów oferuje np. założenie własnego portfolio.. wtedy pracodawca od razu wie co potrafisz. Tak jak np. w kursach geekfactory.pl tania cena i wiesz za co płacisz osobiście skończyłem i polecam :) nawet czasem trafi mi się u nich jakieś zlecenie bo mają stronę dla absolwentów kursu gdzie mogę sobie wybrać projekt i wykonać go oczywiście za fajne wynagrodzenie.