Programista to zawód jednocześnie podziwiany i wyśmiewany. Stereotypowo to zazwyczaj kolesie we flanelowych koszulach, zgarbieni, w okularach ze szkłami jak denka od butelek. Jednak ta sytuacja się zmienia. Wraz z nadejściem startupów obraz programisty zmienia się z bojących się własnego cienia absolwentów politechnik na niemal gwiazdy rocka. Uważasz, że programowanie to czarna magia i to nie dla Ciebie? Może jednak chciałbyś spróbować? Postaram się Cię do tego zachęcić.

Bez komputerów w chwili obecnej nie jesteśmy w stanie żyć. Wielka skrzynka jeszcze parę lat temu zamieniła się w miniaturowy prostopadłościan, który jesteśmy w stanie zmieścić we własnej kieszeni. Czy wiecie, że w tej chwili w postaci telefonu nosicie przy sobie komputer, który tysiące razy przewyższa moc obliczeniową tego co mieli amerykańscy astronauci lądując na księżycu? Komputery stają się coraz bardziej dostępne, coraz więcej ludzi z nich korzysta, a co za tym idzie rośnie zapotrzebowanie na oprogramowanie. Wraz z pojawieniem się smartfonów pojawiły się sklepy z oprogramowaniem, które puchną w zastraszającym tempie.

Postęp technologiczny zdecydowanie wyprzedza wzrost ilości ludzi, którzy są w stanie go napędzić. Narzędzia dostępne dla ludzi tworzących oprogramowanie są coraz bardziej zaawansowane i pomagają wykonać więcej pracy w mniejszym czasie, ale nadal to za mało. Na pewno kiedyś będziemy w stanie powiedzieć komputerowi co chcemy, żeby zrobił, a on to wykona. Jednak cały czas będą potrzebne osoby, które umożliwią tej magicznej skrzynce zrozumienie naszej mowy.

Jeśli zastanawiałeś się czy kariera programisty jest dla Ciebie, to nie ma lepszego momentu, aby się o tym przekonać. Masz zapewne komputer pod ręką. Wystarczy edytor tekstu jak notatnik i zwykła przeglądarka internetowa. Nie musisz również od razu zatrudniać się jako programista. Może umiejętność napisania prostego skryptu choć trochę ułatwi Ci pracę zawodową jaką wykonujesz lub pozwoli ułatwić jakąś czynność związaną z Twoim hobby.

Pewnie się zastanawiasz co ja właściwie wiem o tym co mam zamiar napisać? Otóż zawodowo zajmuję się programowaniem już blisko 10 lat. Komputery fascynowały mnie od zawsze. Właściwie wszystko co wiem w tej materii poznałem sam lub z pomocą kolegów i koleżanek z pracy. Uczyłem się na błędach. Uczyłem się za każdym razem kiedy próbowałem zrobić coś nowego. Jako programista nigdy nie kończysz się uczyć. Postęp jest w tej chwili tak szybki, że ciężko za nim nadążyć. Ale nie martw się. Póki nie zajmujesz się tym zawodowo, to nie musisz. Programowanie to świetna zabawa, której wyniki zobaczysz bardzo szybko.

Co może dać mi programowanie?

Oprócz oczywistej rzeczy jaką są nowe umiejętności programowanie pozwala wykształcić pewne nawyki czy zdolności, które mogą bardzo przydać się w codziennym życiu. To co najbardziej według mnie jest cenne to umiejętność logicznego myślenia i rozbicia każdego problemu na czynniki pierwsze. Tworzenie programu to tak na prawdę łamigłówka. Pisząc program co chwila musisz się zastanawiać, jak podejść do kolejnego problemu jaki napotykasz. Co zrobić, żeby osiągnąć dany efekt szybciej przy mniejszym wysiłku. To doskonałe ćwiczenie dla umysłu.

Tworząc program nauczysz się również uczyć się na błędach. Będziesz wiedzieć, że przypadkowa pomyłka to nic strasznego. Nie ma osoby, która wie wszystko i od razu robi wszystko idealnie. Każdy programista popełnia błędy. Jest to wpisane w ten rodzaj pracy. Nie myli się tylko ten co nic nie robi.

Ok, to od czego zacząć?

Na początek proponowałbym zdefiniować sobie cel. Znajdź sobie coś co chciałbyś stworzyć. Nie musi być to nic skomplikowanego. Może to być prosta strona internetowa, na której pokażesz swoje zdjęcia z ostatniej wycieczki swoim znajomym. Strona poświęcona Twojemu hobby. To bardzo dobry początek. Tworzenie witryny internetowej pozwala na pierwsze spojrzenie na to co tak na prawdę kryje się po tym co widzisz każdego dnia. Najpierw można stworzyć prosty szablon, potem sprawić, żeby ładnie wyglądał, a na końcu dodać elementy interakcji jak na przykład animacje czy formularze. To jest dobry początek.

Jak stworzysz swoją pierwszą stronę będziesz mądrzejszy niż 92% Amerykanów… ;)

Innym bardzo dobrym pomysłem, na rozpoczęcie zabawy z programowaniem jest próba automatyzacji jakiejś uciążliwej czynności, jaką wykonujemy każdego dnia. Jeśli często dzielisz się zdjęciami ze znajomymi, to może chcesz stworzyć skrypt, który po wrzuceniu zdjęć do jakiego folderu automatycznie je zmniejszy i wyśle mailem do stałej grupy odbiorców? Jeśli masz bałagan na pulpicie, to może stworzysz jakiś zestaw reguł, który oczyści Ci biurko i pokaże tą piękną tapetę jaką masz ustawioną? Bałagan na biurku to zło.

Pewnie pamiętasz lub widziałeś w internecie stare komputery, które na ekranie nie miały nic oprócz miejsca na wprowadzanie tekstu. Czy wiesz, że każdy komputer w tej chwili nadal pozwala na taka interakcję z komputerem? Jest to bardzo szybki sposób na wykonanie pewnych czynności. Dużo szybszy niż “wyklikanie”. Dowiedz się jak tam dostać się w Twoim systemie. Google i hasło “linia poleceń” lub “command line”Ļ na pewno pomoże. Potem dowiesz się jak tworzyć swoje pierwsze skrypty.

Jaki język programowania wybrać?

To zależy od czego chcesz zacząć. Nie polecałbym na początek porywania się na tworzenie aplikacji na telefony jeśli nic do tej pory nie mieliście wspólnego z programowaniem. Jeśli chcecie zacząć od tworzenia strony to HTML i CSS będą bardzo dobrym rozwiązaniem. Kolejnym krokiem będzie nauka JavaScriptu. Za pomocą tego języka w chwili obecnej można tworzyć nawet bardzo poważne aplikacje internetowe (Node.js) i umieszczać je za darmo w internecie.

Automatyzacja w dużej mierze zależy od systemu z jakiego korzystacie. Spodziewam się, że to Windows, więc możecie poszukać czegoś na temat PowerShella. Jeśli korzystacie z Mac OSX lub Linux’a to bash będzie Waszym przyjacielem,

Na poważniejsze języki programowania jak Java czy C# lub wszelkie odmiany języka C* z C++ i Objective-C na czele przyjdzie jeszcze pora.

Uczyć się z książek czy wybrać coś innego?

Na początek na pewno wystarczy to co jest dostępne w internecie. W tej chwili mamy tak luksusową sytuację, że jest mnóstwo darmowych źródeł, z których możemy czerpać wiedzę. Wykorzystajcie Googla, żeby wskazał Wam właściwe miejsce.

Książki? Osobiście nie lubię się z nich uczyć. Długie ciągu kodu, jakie się w nich znajdują działają na mnie usypiająco. Dodatkowo denerwuje mnie to, że prosta rzecz, którą można by streścić na 10 stronach musi być rozwleczona na 100. To dla mnie strata czasu. Wyjątkiem są książki o metodykach, ale to inna bajka. Może dla Ciebie to będzie dobra metoda – spróbuj. Część publikacji o programowaniu trzeba przeczytać, chociażby po to, żeby się przekonać, że Ci nie pasują. ;) Jeśli jesteś początkujący to polecam książki z cyklu Headfirst. W bardzo przystępny sposób przedstawiają skomplikowane zagadnienia.

Przy nauce programowania najważniejsza jest praktyka. Jeśli coś przeczytasz i nie wypróbujesz tego od razu, to po dwóch dniach na pewno nie będziesz tego pamiętać. Praktyka, praktyka, praktyka.

W tej chwili dostępne są serwisy, które umożliwiają naukę poprzez praktykowanie tego ci się przed chwilą zobaczyło. Jednym z takich serwisów jest Codeschool. Jest to usługa płatna, ale kursy jakie są tam dostępne są bardzo wysokiej jakości. Dodatkowo nauka okraszona jest sporą dawką humoru i ciężko się przy nich nudzić.

Co jest mi potrzebne?

Komputer. To na początek ;)

Do nauki programowania strony nie jest potrzebne nic więcej niż systemowy notatnik i przeglądarka internetowa. Jak wcześniej wspominałem dostępne są narzędzia, które ułatwiają pracę programistom, ale na początek nic one nie pomogą, a nawet mogą zaszkodzić. Nic nie nauczy szybciej niż napisanie samodzielnie prostej pętli kilka razy własnoręcznie. Na zawsze będziesz pamiętać jak wygląda pętla.

Kiedy będę programistą?

Jak napiszesz swój pierwszy własny program. Serio. Programista to osoba, która pisze programy. Napiszesz program – będziesz programistą. Tak samo jak fotograf to osoba, która robi zdjęcia. Nie powinien być Ci potrzebny znaczek z napisem “Programista” przypięty do piersi. Satysfakcja z własnoręcznie napisanego programu z pewnością wystarczy. Uczucie, kiedy tych kilka napisanych linijek zaczyna działać zgodnie z założeniem jest na prawdę fantastyczne. Kto wie – może jak się wciągniesz to zaczniesz robić to profesjonalnie?

Zatem na co czekasz? Do roboty!

Jeśli chciałbyś o coś zapytać drogi czytelniku, to możesz odezwać się do mnie na twitterze lub mailowo na adres pawel (małpka) pawelwojciechowski.com. W miarę wiedzy i możliwości doradzę i skieruję Cię na we właściwym kierunku.