luq techblog

o tworzeniu słów kilka…

Dlaczego potrzebujesz swojego mistrza Jedi? 6 marca 2012

Filed under: PHP — Łukasz @ 13:15

Jedi

Tak jak każdy Padawan i świecie Gwiezdnych Wojen, tak i programista potrzebuje swojego Yody na swojej drodze do zdobycia mistrza Jedi.

 

Wydaje mi się, że hierarchia jak i systemu zdobywania wiedzy przestawiony w Gwiezdnych Wojnach idealnie pasuje do programistów. Czasami przeglądając oferty pracy znajduje takie kwiatki jak:

 

Senior programista

Wymagania:
* przynajmniej 6-miesięczne doświadczenie w pracy nad komercyjnym projektem

 

Wtedy naprawdę nie wiem czy płakać czy się śmiać… Jeśli ktoś daje tytuł Senior programisty osobie która ma zaledwie 6 miesięczne doświadczenie to jest to co najmniej niepoważne. 6 mc to bardzo mało czasu żeby mieć doświadczenia na takim poziome aby potrafić rozwiązać każdy napotkany problem, bo chyba takie wymagania stawiamy seniorowi, prawda?

 

Sam czas pracy na stanowisku programisty jest całkiem niezłym wyznacznikiem tego na ile dana osoba jest dobra. Co jakiś czas spotykamy się z problemami które są nam nieodzowne i dzięki temu zdobywamy wiedzę, oraz doświadczenie, które jest bezcenne. Głównie nie chodzi nawet o znajomość języka/technologii. Podam przykład z własnego życia, problem któremu nie podołałem a problem rozwiązał jakiś nieznany mi Yoda :)

 

Dawno, dawno temu, moim zadaniem było utworzenie na mapie Polski punktów oznaczających miasta, coś jak poniżej, tyle że punkty było divami pozycjonowanymi absolutnie na grafice konturu, ale w sumie niczego to nie zmienia.

Generalnie chodziło o to że jeśli mamy Warszawę to punkt go oznaczający powinien być jak najbardziej zbliżony do realnej pozycji. Jako że tych miast-punktów było ~150, ręczne pozycjonowanie tego byłoby katorgą a i pewno nie wyszło by tak jak trzeba.

 

A więc wymyśliłem żeby znaleźć odpowiednie współrzędne na grafice za pomocą pozycji GPS tych miast. Po intensywnych poszukiwaniach znalazłem informacje nt. tego jak najprościej do tego podejść, dałem zapotrzebowanie żeby ktoś przepisał mi pozycje wszystkich tych miast (niestety nie znalazłem żadnej przydatnej usługi która wygenerowałaby mi takie dane – trzeba było przepisywać ze strony) no i zacząłem walkę.

 

Po podstawieniu do wzoru i znalezieniu moich stałych, mapa została wygenerowana tyle że niektóre miasta wyjeżdżały poza kontur mapy. Pozmieniałem nieco stałe i znów wygenerowałem jednak znów się gdzieś wszystko rozlazło. Sprawdziłem dokładnie czy czegoś nie pokręciłem w zaimplementowanym wzorze, pomierzyłem grafikę ustalając z dużą dokładnością południk przechodzący przez środek mapy, ciągle nic. Po kilku godzinach walki, przejrzeniu wszystkiego wzdłuż i wszerz, milionom testów i eksperymentów byłem zmuszony wywiesić białą flagę. Nie miałem pojęcia dlaczego to nie działa…

 

Problem został przedstawiony komuś innemu. Zagadka została rozwikłana a ja dostałem odpowiedź gdzie tkwił błąd. Okazało się że mój kod był w 100% prawidłowy. Błędy były 2.

 

1) Dane zapisane w bazie były błędne. 52* 30′ to nie 52.3 a 52.5 bo 1* = 60′. Niby oczywiste ale nawet tego nie sprawdziłem.

2) Grafika konturu mapy była zniekształcona – tzn była rozciągnięta w taki sposób nie odzwierciedlała realiów.

 

Skupiony na debugowaniu kodu nie pomyślałem o tym. Dzięki temu nauczyłem się, że jeśli coś nie działa a kod wygląda prawidłowo, sprawdź dane i materiały które zostały podesłane Ci przez inne osoby (w tym przypadku dane w bazie, grafikę). I takich lekcji jest mnóstwo – jak debugować kod, że czasami warto 1h poświęcić na przemyślenie by potem zaoszczędzić na pisaniu 1 dzień, jak planować, jak wyceniać czasowo funkcjonalności, jak komentować, jak pracować w grupie i jeszcze cała masa innych bardzo, bardzo ważnych spraw.

 

Wcześniej pracowałem jako freelancer (dalej czasami tak zdarza mi się pracować) i teraz mogę śmiało powiedzieć, że pracując z o wiele bardziej doświadczonymi programistami od siebie nauczyłem się dużo więcej rzeczy w dużo mniejszym czasie.

 

No one can kill a Jedi!

Reklamy
 

One Response to “Dlaczego potrzebujesz swojego mistrza Jedi?”

  1. Rinz Says:

    Dobrze prawisz, sam jakis czas temu doznalem szoku gdy starszy kolega z zespolu debugujac zrodlo dojo framework odnalazl bug w moim kodzie – a wlasciwie brakuajca wlasciwosc elementu…


Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s