Po satysfakcjonującym mnie starcie bloga i ilości do tej pory opublikowanych wpisów na temat prowadzenia własnej działalności gospodarczej, blogowanie spodobało mi się na tyle, że postanowiłem rozszerzyć poruszane tutaj zagadnienia o część programistyczną.

Tematykę programistyczną rozpocznę pierwszym wpisem z cyklu Vademecum Juniora. Jak pewnie się domyślasz jest on kierowany głównie do młodych adeptów programowania i będzie zbiorem krótkich porad, wskazówek i przykładów z życia opisujących moje doświadczenia z pracy jako programista. Jeśli nie jesteś już juniorem, to nie uciekaj od razu. Zapoznaj się z poniższym tekstem i podziel się swoimi przemyśleniami w komentarzu. Chętnie dowiem się, co Ty o tym myślisz.

Cykl artykułów "Vademecum Juniora"

Ten wpis jest częścią cyklu, w ramach którego opisuję moje doświadczenia i spostrzeżenia na temat programistycznego rzemiosła. Cykl jest dedykowany osobom rozpoczynającym swoją przygodę z zawodowym programowaniem lub planują taki krok w przyszłości.

Artykuły składające się na Vademecum Juniora zawierają różne porady, wskazówki i przykłady z pracy jako programista. Nie są one ani uporządkowane chronologicznie, ani mocno ze sobą powiązane. Możesz je więc czytać niezależnie od siebie i w dowolnej kolejności. Polecam jednak zapoznać się z treścią wszystkich wpisów, gdyż wierzę, że z każdego możesz dowiedzieć się czegoś wartościowego.

Studium przypadku

Opowiem Ci krótką historię. Kilka lat temu, po dłuższym okresie milczenia, odezwał się do mnie Adam, kolega z gimnazjum. W tamtym czasie ja byłem na starcie mojej kariery programistycznej i miałem coś około roku doświadczenia w pracy na część etatu, a on kończył studia medyczne. Zapytał, czy nie mógłbym napisać mu małego programu, który obliczałby odległość Levenshteina pomiędzy dwoma ciągami DNA. Był on mu potrzebny do jakiejś pracy naukowej. To, że to było akurat DNA nie miało tutaj dużego znaczenia. Po prostu potrzebny był program obliczający odległość Levenshteina pomiędzy dwoma ciągami znaków pobranymi z pliku. Dodatkowo ważne było, żeby był to program wyposażony w GUI, bo był przeznaczony dla osób nietechnicznych, więc tłumaczenie jak odpalić to z linii poleceń nie wchodziło w grę. Z entuzjazmem podjąłem „wyzwanie”, gdyż było ono fajną odskocznią od bieżących projektów.

Od razu zabrałem się za kodowanie. Bez namysłu wybrałem Javę. GUI poszło całkiem sprawnie. Napisałem je w Swingu, bo akurat byłem z nim w miarę obeznany po kilku uczelnianych projektach . W końcu zabrałem się za implementacje właściwego algorytmu. Pisałem, pisałem, dopieszczałem, napisałem nawet kilka testów (co nie było jeszcze wtedy takie oczywiste). W sumie na sam algorytm zeszło pewnie kilka godzin. Z finalnego efektu byłem zadowolony, Adam (oraz osoby współtworzące jego pracę naukową) jeszcze bardziej, co było dla mnie fajną gratyfikacją.

Czas mijał, ja uczyłem się nowych rzeczy i zdobywałem kolejne doświadczenia na etacie. Coraz bardziej zapoznawałem się z projektem Apache Commons, który spotykałem praktycznie w każdym projekcie, z którym miałem styczność. Kilka tygodni, a może nawet miesięcy po tym jak wysłałem Adamowi ostateczną wersję projektu, trafiłem na metodę:

org.apache.commons.lang3.StringUtils#getLevenshteinDistance(CharSequence, CharSequence)

Nazwa metody jest chyba wystarczająco wymowna. Zainteresowanych szczegółami zapraszam do dokumentacji.

W żadnym znanym mi języku świata nie ma słów, które potrafiłyby wyrazić jak się wtedy poczułem 🙂 Myślę, że najlepiej wyrazi to kapitan Picard:

Picard's facepalm

Wniosek

Morał z tej historii jest taki – zanim zaczniesz odkrywać koło na nowo (lub wyważać otwarte drzwi, jeśli wolisz to powiedzenie) upewnij się, czy rozwiązanie Twojego problemu nie zostało już ładnie opakowane w bibliotekę/moduł/pakiet i udostępnione publicznie. Istnieje spore prawdopodobieństwo, że już tak się stało. Co więcej, jeśli Twoim zadaniem jest utrzymywanie lub rozwijanie istniejącego projektu, to sprawdź, czy przypadkiem dana biblioteka nie została już tam dołączona przez Twoich poprzedników lub czy podobne rozwiązanie nie zostało już przez któregoś z nich napisane. Tutaj również masz spore szanse, że właśnie tak się stało.

Bądź na bieżąco!

Podobają Ci się treści publikowane na moim blogu? Nie chcesz niczego pominąć? Zachęcam Cię do subskrybowania kanału RSS, polubienia fanpage na Facebooku, zapisania się na listę mailingową (spokojnie, nie rozsyłam spamu):



Uwaga: Jeżeli w ciągu 24-godzin od zapisania się na listę mailingową nie otrzymasz wybranego przez siebie prezentu to skontaktuj się ze mną.

lub śledzenia mnie na Twitterze. Generalnie polecam wykonanie wszystkich tych czynności, bo często zdarza się tak, że daną treść wrzucam tylko w jedno miejsce. Zawsze możesz zrobić to na próbę, a jeśli Ci się nie spodoba – zrezygnować :)

Chcesz więcej? W takim razie zapraszam Cię do dołączenia do powiązanych grup na Facebooku, gdzie znajdziesz dodatkowe informacje na poruszane tutaj tematy, możesz podzielić się własnymi doświadczeniami i przemyśleniami, a przede wszystkim poznasz ludzi interesujących się tą samą tematyką co Ty.

W grupie Programista Na Swoim znajdziesz wiele doświadczonych osób chętnych do porozmawiania na tematy krążące wokół samozatrudnienia i prowadzenia programistycznej działalności gospodarczej. Vademecum Juniora przeznaczone jest zaś do wymiany wiedzy i doświadczeń na temat życia, kariery i problemów (nie koniecznie młodego) programisty.

1 000 000 zł

Milion złotych. Tak, milion złotych. Milion złotych to cel, który sobie postawiłem jakiś czas temu. Chcę zarobić milion złotych na tym blogu. Do tej pory zebrało się 6259,56 zł, więc jak widzisz jeszcze trochę brakuje. Jeszcze nie wiem do końca jak, ale to zrobię. Na pewno nigdy nie będę pobierał żadnych opłat za dostęp do treści, bo tymi chcę się po prostu dzielić.

Wysoko ponad ten milion stawiam na szerzenie wiedzy i dotarcie do jak największej liczby osób. I tu mam prośbę do Ciebie: jeśli uważasz, ten artykuł za wartościowy, to udostępnij go proszę swoim znajomym. Przy lewej lub dolnej (na małych wyświetlaczach) krawędzi ekranu znajdziesz przyciski, które Ci to ułatwią. Jeżeli ich nie widzisz, to najprawdopodobniej zostały zablokowane przez Twój program do blokowania reklam. Niezależnie od tego, czy prześlesz ten wpis dalej, czy nie, to ja i tak dziękuję Ci serdecznie za doczytanie do tego miejsca! Do przeczytania niebawem.

PS. Jeśli mój blog przypadł Ci do gustu tak bardzo, że chciał(a)byś mi się w jakiś sposób odwdzięczyć, to mam dla Ciebie kilka ciekawych propozycji, z których możesz skorzystać. Szczególnie gorąco zachęcam do wsparcia poprzez serwis Patronite, ale jeżeli zdecydujesz się na którąkolwiek z wymienionych opcji, to serdecznie Ci za to DZIĘKUJĘ!

Picture Credits