Skarb piratów

Skarb piratów. Coś o czym marzył prawie każdy z nas będąc dzieckiem. Ja oczywiście także, wyobrażałem sobie że gdzieś na plaży w Ustroniu Morskim odnajdę skrzynię, a w niej dawno zakopane zdobycze jegomościa, który miał drewnianą nogę, przepaskę na oku, hak zamiast dłoni, a na ramieniu nieodłączną papugę. Sama zaś skrzynia powinna posiadać pewne nieodłączne elementy. Listę artefaktów w niej będących (tak aby kto przypadkiem się nie pogubił), mapy skarbów (a co! skarb prowadzący do skarbu – taka skarbocepcja), zbiór antycznych chińskich artefaktów oraz co najważniejsze – złoto.

 

Teraz pewnie niejedna osoba zapytać by mogła „No dobra, ale co to ma wspólnego z programowaniem?”. Słuszne pytanie i niewątpliwe należy na nie niezwłocznie odpowiedzieć. Skarby te, wcześniej przeze mnie wymienione, to nic innego jak pochodne klasy Collections – niezwykle przydatne narzędzia, których to, wyobrażam to sobie, używał będę wielokrotnie zarówno podczas tworzenia tego bloga jak i poza nim. Dziś pozwolę sobie je krótko, w moim ograniczonym zakresie wiedzy, opisać, w kolejnych wpisach postaram się zaprezentować je bardziej szczegółowo. Jedno i drugie dalekie będą od całościowego ujęcia tematów, ale mam nadzieję, że okażą się dobrym przybliżeniem podstaw, dla mnie zaś świetnym sposobem utrwalenia tego, czego dotychczas się nauczyłem. Same kolekcje to reprezentacje grup obiektów (elementów). Mają różne właściwości w zależności od typu danej kolekcji. Kolekcje przechowywać mogą zarówno typowe obiekty takie jak String czy Integer jak i te stworzone przez użytkownika. Poniżej te poznane przeze mnie.

 

Listy

Są to uporządkowane kolekcje, każdy element posiada indeks (liczba całkowita) określający jego pozycję na liście. Użytkownik ma kontrolę nad tym gdzie znajdować się będzie każdy dany element. W listach zazwyczaj mogą występować jednakowe elementy Podczas mojej nauki miałem okazję zetknąć się z dwoma typami list – ArrayList oraz LinkedList. Mój następny wpis planuję poświęcić właśnie tej dwójce. Na razie jednak tajemniczo pozwolę sobie tylko napisać, że jedna i druga mają swoje zastosowania, wady jak i zalety.

 

Mapy

Mapy określić mogę już mianem dzieł nieco bardziej skomplikowanych niż listy, dzieje się tak ponieważ są to zestawy sparowanych obiektów, z których jeden nazywany jest kluczem (key), drugi wartością (value). Mapa nie może zawierać powtarzających się kluczy, a każdy klucz może być sparowany z maksymalnie jedną wartością. Same wartości nie są już ograniczone tyloma restrykcjami co klucze. Mapy będą kolejną z opisanych przez mnie kolekcji, konkretnie będą to HashMap, LinkedHashMap oraz TreeMap – trójca z którą miałem już do czynienia.

 

 

Zbiory

W ich przypadku operuję na pewnej ilości niepewności jeśli chodzi o tłumaczenie, jako że angielskie słowo set posiada przeogromną masę znaczeń. Myślę jednak, że zbiór to najsensowniejsze tłumaczenie. Kolekcja ta nie może zawierać takich samych elementów ani też więcej niż jednego pustego (null) elementu. Przyznam, że zbiory wydają mi się być najciekawszą z poznanych przeze mnie kolekcji, toteż ich opis zostawiam sobie na koniec. Tak samo jak w przypadku map, styczność miałem z trzema ich rodzajami – HashSet, LinkedHashSet oraz TreeSet.

 

Złoto

Ha! Zręczne oszustwo z mojej strony. Nie ma żadnego złota – przynajmniej nie na razie. Jest za to kilka myśli, które chciałbym zapisać.

Po pierwsze, nauka programowania po angielsku i pisanie o tym bloga po polsku sprawiają, że w mojej głowie pojawia się czasami niezłych rozmiarów chaos, toteż chciałbym prosić o wybaczenie jeśli momentami coś poplączę. Generalnie myślę, że nie ma sensu uczyć się programowania po polsku, największe bazy materiałów jak i zbiorowej wiedzy dostępne są w języku angielskim. Tak więc myślę że nie pozostaje mi nic innego niż pogodzić się z okazjonalnym bełkotaniem do samego siebie – jest to moim zdaniem fantastyczny sposób na oczyszczenie umysłu, chociaż nie zachęcam by stosować go zbyt często w ulubionym sklepie, ekspedienci nie są już później nigdy tacy sami.

Po drugie, jako że skończyłem już kurs Java for Complete Beginners, czas pomyśleć co teraz. Naturalnie muszę rozwijać się dalej w Javie, to czego dotychczas się dowiedziałem pozwoliło mi jedynie zrozumieć jak wiele nie wiem. Jednakże warto przemyśleć czy nie należało by najpierw liznąć podstaw SQL’a, zainteresować się http, może zwrócić się w kierunku scrum, jest jeszcze cała masa rzeczy nie związanych bezpośrednio z Javą, które warto znać, tak więc przede mną wiele wyborów i jeszcze więcej nauki.

Po trzecie, sądzę że czas już zacząć przygotowywać się do szukania pracy. Jasne, za wcześnie pewnie na to, by liczyć że ktoś zaoferuje robotę osobie takiej jak ja, ale jest masa rzeczy, którymi należy zająć się kiedy ma się na to czas. Uaktualnić CV, Linkedina (zdjęcie które mam w obu jest sprzed chyba 5 lat), rozejrzeć się za stażami, poczytać o pracodawcach, porozmawiać z ludźmi których rady cenię najbardziej.

Po czwarte, pamiętać aby dbać o siebie. Może to i głupie, ale dużo lepiej siedzi mi się przed Eclipse kiedy czuję w nogach dobrą serię czy pobity rekord osobisty (generalnie w takiej sytuacji odechciewa się trochę wstawać, więc może to po prostu to). Całkiem poważnie jednak, widzę korelację pomiędzy rozwojem fizycznym a umysłowym. Moja efektywność wzrasta kiedy żywię się dobrze, śpię wystarczająco długi i ruszam się odpowiednio dużo, tak więc czas wrócić do tego, jako że wielkanocny wyjazd do domu nie obfitował w żadną z tych rzeczy.

 

 

Dodaj komentarz