IT

Od czego zacząć naukę programowania – cz. 2. – moje story

Być może myślałaś kiedyś nad nauką programowania, ale ten pomysł z jakiegoś powodu porzuciłaś? A może spróbowałaś już kilku rzeczy i wydaje Ci się, że to nie dla Ciebie? Jeśli tak jest, to być może udowodnię Ci dzisiaj, że nie potrzebujesz błyskotliwego startu, z góry ułożonego planu na siebie i śmiało możesz zaliczyć kilka potknięć, a i tak masz szansę na osiągnięcie czegoś fajnego. 🙂

Moja przygoda z programowaniem nie jest zbyt długa, ale zdecydowanie bardzo kolorowa. Na studia informatyczne trafiłam trochę z przypadku i początkowo zupełnie nie umiałam określić, czym tak naprawdę chciałabym się zająć. Programowanie było zbyt trudne i zbyt nudne. Dopiero dobrze zdany egzamin na studiach dał mi wiarę we własne siły, co pociągnęło mnie do zainteresowania się tym tematem. Po mniej więcej półtorej roku zupełnego błądzenia i czytania o wszystkim, próbując różnych rzeczy, mając niewielką wiedzę techniczną uznałam, że szczytem moich marzeń jest zostanie programistą Java i nie będę z tego rezygnować. I jedyne, czego teraz żałuje, to to, że dużo czasu straciłam, nim do tego doszłam.

Jeśli zależy Ci na czysto technicznych radach to ten wpis Cię nie zainteresuje (odsyłam wtedy do pierwszej części – LINK). W tej części chcę przytoczyć moją kolorową drogę, jaką przeszłam, nim znalazłam to, czym zajmuje się obecnie.

#HelloWorld w C#

Zacznijmy od tego, że wybierając się na studia nie umiałam programować i nie miałam wcześniej z tym nic wspólnego. Mało tego – nie chciałam się w ogóle tego uczyć. Niestety program na studiach trochę mnie zaskoczył i zajęcia z programowania spotkałam już na pierwszym semestrze. Wtedy moja wiedza ograniczała się do jednej książki (z tego wpisu). Ponieważ wzięłam sobie do serca to, że nie będzie łatwo, czytałam kawałkami tę książkę przez cały semestr. Miałam to szczęście, że mój brat jest programistą. Była krew, pot i łzy bo kazał mi się uczyć podstaw bardzo dokładnie. Tak by być w 100% pewnym, jak dana rzecz działa. 🙁 Wtedy się kłóciłam, że nie chcę, ale opłaciło się zacisnąć zęby i solidnie uczyć bo cały przedmiot, ostatecznie zaliczyłam śpiewająco.

Będąc na pierwszym semestrze moim jedynym, jak mi się wydawało, najrozsądniejszym pomysłem było zostać analitykiem danych. I myślę, że podtrzymywałabym ten pomysł, gdyby nie to, że zasadnicza większość osób na roku, programowania nie zaliczyła. Dało mi to do myślenia. Uznałam, że skoro tak dużo osób tego nie rozumie lub nie chce rozumieć, to nauka programowania będzie dobrze zainwestowanym czasem i zaowocuje w przyszłości.

Wtedy tego nie widziałam, ale teraz wiem, że programowanie zniechęcało mnie nie dlatego, że mnie nie interesowało, ale dlatego, że jest bardzo obszerną dziedziną, która na dodatek była mi wtedy zupełnie obca. Wyjście poza moją ówczesną strefę komfortu, poświęcenie odpowiednio dużej ilości czasu, żeby poznać totalnie nowe rzeczy, poskutkowało tym, że mam zawód, którego za nic nie chciałabym zmienić. 🙂 

#Moja miłość PHP <3

No ale co dalej? Zaliczyłam programowanie, przyszedł kolejny semestr, a ja porzuciłam naukę na jakieś pół roku. Potem zafascynowałam się aplikacjami internetowymi, pisanymi w PHP. PHP poznałam znając tylko podstawowe konstrukcje (pętle, instrukcje warunkowe, nawet klasy były mi mniej znane). Ale dzięki niemu poziom mojego programowania skoczył. Głównie dlatego, że PHP jest po prostu łatwy, konfiguracja żadnego środowiska nie była mi potrzebna bo świetnie nadawał się notepad++, a efekty mojej pracy mogłam szybko zobaczyć na ekranie, i to w postaci (wow!) strony internetowej. Do tego doszły projekty na studia, które idealnie nadawały się na aplikacje internetowe. Pisałam więc jedną za drugą. I chociaż teraz byłoby mi wstyd to komuś pokazać, to nauczyłam się dużo, w szczególności rozwiązywania prostych problemów, za pomocą kodu.

hello-world-php

#Krótki romans z front-endem

PHP było fajne, ale ja czułam niedosyt. Wiedziałam też, że jeśli chcę pracować w przyszłości przy bardziej ambitnych projektach, niż strona internetowa lokalnej parafii (trafiłam na takie zadanie na dniu próbnym, który miał zdecydować o przyjęciu mnie na praktyki – stronę zrobiłam, ale z praktyk zrezygnowałam ;p) to będę musiała ogarnąć coś jeszcze lub zmienić technologię. Zainteresowałam się wtedy front-endem. W połączeniu z moją wiedzą z PHP, widziałam siebie wtedy jako Web Developera. 8) Dodatkowo, zawsze lubiłam graficzno – artystyczne tematy. Robienie stron od A do Z, razem z całą grafiką brzmiało fajnie, ale front-end ostatecznie mnie pokonał. Podczas nauki wszystko wydawało mi się proste, do czasu, aż nie próbowałam zaprojektować czegoś sama. Ostatecznie, nie wiem dlaczego tak szybko się poddałam, ale widok kompletnie rozjeżdżającej się strony, z nachodzącymi na siebie elementami, tak bardzo mnie denerwował, że temat dość szybko porzuciłam. (i do tej pory denerwuje, jak sobie to przypominam) 🙂

#Witaj w domu, Javo

Technologią, którą zawsze była na szczycie moich marzeń była Java. Na studiach gdzieś się przewijała, ale zawsze wydawała mi się czymś nieosiągalnym (= zbyt trudnym). Najbardziej marzyło mi się pisanie w niej aplikacji internetowych. Mimo, że oczami wyobraźni widziałam się jako Java Developer, to cały czas (aż do dostania się na praktyki) zastanawiałam się czy nie porywam się z motyką na księżyc. Nie zliczę książek jakie przeszły przez moje ręce, ani godzin, które w zasadzie straciłam na bezsensownych tutorialach z Internetu (typu “First webapp Java” w 30 min.. -__-). Co było problemem? Obszerność tematów jakie wydawało mi się, że muszę ogarnąć. Java SE, EE, Spring, EJB, Maven, JPA, Hibernate, JSF – chciałam to wszystko umieć, najlepiej jak najszybciej. A internetowe tutoriale tylko utwierdzały mnie w przekonaniu, że bez znajomości tego nie ruszę. I to był błąd.

Odkryłam go, gdy na jednym forum trafiłam na radę kogoś, żeby zacząć od czystej Javy, bez żadnych dodatków. Radzono, by skonfigurować sobie proste środowisko lub pisać nawet w notatniku. Nauczyć się jak działa maszyna Javy, poczytać o kolekcjach, standardowych bibliotekach, wykonać proste operacje odczytu i zapisu do pliku. Nałożyło się to w czasie z moim projektem na studia, którym była “gra” – Mistrz klawiatury. Upchnęłam tam właśnie odczyt i zapis do pliku, odliczanie czasu, prostą grafikę, kilka klas. Nie było żadnego frameworka, nie używałam Mavena. Mój Mistrz klawiatury był przeze mnie ulepszany, aż w końcu poszedł ze mną na rozmowę o praktyki. I był wtedy w zupełności wystarczającym programem. 🙂

W międzyczasie zaznajomiłam się z podstawami Javy EE. Wiedziałam, że będzie mi potrzebna, ale w czystej postaci nie potrzebuję jej w zbyt dużym zakresie. Napisałam w domowym zaciszu coś prostego, coś byle zobaczyć, jak to faktycznie działa (przechodząc jednocześnie przez ścieżkę konfiguracji serwera aplikacji i środowiska pracy – chyba dopiero wtedy zdecydowałam się na Eclipsa). Potem sięgnęłam po książkę o Springu. Czytałam i rozumiałam, ale przełom nastąpił dopiero, jak zobaczyłam rzeczywisty, duży projekt w nim napisany.

#Dalszy happy flow

I to oczywiście nie koniec, ale dalej szło już gładko. Wchodziłam coraz głębiej w technologie “Javowe”. Po około roku nauki dojrzałam do książki “Thinking in Java”, o czym już kiedyś wspominałam (i bardzo polecam, jeśli interesujesz się Javą), która pokazała mi czego jeszcze nie wiem jeśli chodzi o podstawy tego języka. Zaczęłam interesować się wzorcami projektowymi, testami, dobrymi praktykami. Wymienione na początku Spring/EJB poznawałam na bieżąco i wedle potrzeb bo wiedziałam, że większą wartość dla mnie będzie miała gruntowna wiedza z programowania, niż szczegółowa znajomość frameworka. I teraz, kształcę się już tylko według własnego wyczucia.

Technologia zmienia się bardzo szybko i jeśli zdecydujesz się na programowanie, będziesz musiała się na bieżąco kształcić. To jeden z uroków tej pracy. Ale jeśli raz uda Ci się samej poskromić dany temat, nie będzie dla Ciebie problemem zmieniająca się technologia i rynek pracy.

Nie wskazuję też jedynej słusznej drogi do nauki programowania i nie chodzi o zaprzestanie oglądania jakichkolwiek tutoriali. Radzę po prostu nie starać się opanować zbyt wiele na początek. Im więcej będziesz próbowała wziąć na siebie, tym szybciej się zniechęcisz, a to wytrwałość będzie Ci na tej pięknej drodze potrzebna. :))