KwalfikacjaKariera NR.8 Rozmowa kwalifikacyjna może być trudnym orzechem do zgryzienia. Przejście rozmowy wymaga od ciebie zupełnie innego zestawu umiejętności. Jako programista rozwiązujesz duże i złożone problemy, które wymagają myślenia całościowego. Na rozmowach kwalifikacyjnych natomiast dostaniesz małe wyzwania wymagające szybkiej odpowiedzi.

Często się też zdarza, że sama osoba rekrutująca jest słabo przeszkolona, albo nie ma pojęcia o programowaniu. Co oznacza, że pytania na rozmowie będą oddalone od rodzaju faktycznej pracy w firmie. W nieprofesjonalnych środowiskach to, czy uda ci się przejść rozmowę może być zależne od stronniczości rekrutującego oraz braku standaryzacji procesu rekrutacji w firmie.

Osobiście nie jestem fanem rozmów kwalifikacyjnych i raczej dążę do tego, aby moja osoba stała się na tyle popularna, aby oferty pracy same do mnie przychodziły. Oczywiście rodzi to problem ponieważ nie każdy z nas ma bloga czy udziela się w społeczności. Dobrze by było być „tak sławnym”, żeby to ludzie zabiegali o ciebie abyś chciał u nich pracować, ale jest to luksus, który nie każdy ma i może mieć.

Jednym słowem rozmowa kwalifikacyjna jest złem koniecznym. Bez niej pracy się nie dostanie. Jakie więc umiejętności są ci potrzebne, aby przejść rozmowę kwalifikacyjną?

Droga próby Praca programisty. Mogłoby się wydawać, że jest zawsze przyjemna i prosta. Przychodzisz do pracy. Masz gotowe makiety i plany. Tworzysz UI aplikacji w HTML. Potem piszesz wywołania usług REST w jQuery lub Angular. A na koniec piszesz logikę serwerową, która ma wyciągać odpowiednie dane z bazy.

Czy jednak praca programisty jest aż taka łatwa? Czy praca programisty to po prostu schemat powtarzających się czynność? Czasami tak. Niestety nie zawsze tak jest. Praca programisty to także praca z gotowymi aplikacjami, które już istnieją i tu już zaczynają się schody. Zwłaszcza, gdy dostajesz zadanie “modyfikacji” aplikacji.

Jak się uczyć?List NR.4 Witam, pisałem do Ciebie jakiś czas temu jak żyć i się nie poddawać, widziałem że byłem inspiracją do napisania postu, bardzo mi miło i pomogłeś mi wyjść trochę z tego dołka, ale teraz mam problem z nauką C#.

Przerabiam książkę Rusz Głową C# i zatrzymałem się na pierwszym rozdziale, co chwila mam jakiś błąd i mi nie działa program (gra w przypadku rozdziału, piszę w Visual Studio 2015, jakoś ciężko mi się uczy, ponieważ przepisuje ten kod z książki i zbytnio nie wiem o co kaman.

Masz może jakąś radę jak zacząć naukę, możesz polecić książkę jakąś, bardzo mi zależy żeby ogarnąć ten język programowania. Mógłbym prosić o radę jak się nauczyć programować i kiedy można stwierdzić że już jestem gotów szukać pracy jako programista, mam 100 km do Wrocławia i tam będę szukał, bo w moim mieście nie ma takich firm.

Jak żyć?List NR.3 Oto kolejny list od czytelnika.

[Początek listu]

Szanowny Panie,

natknąłem się na Pana blog przypadkiem, ale po przeczytaniu paru wpisów od razu zdecydowałem się napisać i poprosić o poradę. Postaram się być konkretny :)

Otóż mam 24 lata, licencjat z finansów i magistra z prawa. Nie wdając się w szczegóły powiem krótko: realia zawodowe i finansowe, perspektywy, kształt rynku usług prawniczych, zarobki itp. nie są dla mnie satysfakcjonujące. Ponieważ chcę wygrać, a nie przegrać życie i nie być zmuszonym jednocześnie do emigracji pomyślałem o edukacji w kierunku programistycznym.

Wiąże się to z tym, że już od paru lat fascynuję się rynkiem nowych technologii, innowacji, mobilnym, bardzo podoba mi się też rozwój branży start-upowej w Polsce bo jesteśmy tutaj genialnym narodem :) I tutaj mam parę pytań:

1) Czy za pomocą kursów darmowych na platformach udacity, coursera bądź edx jestem w stanie nauczyć się tego, czego oczekują pracodawcy w Polsce?
2) W czym warto się specjalizować biorąc pod uwagę to, że bardzo bym chciał działać w środowisku start-upów z branży mobile apps i innowacyjnych platform webowych?
3) Gdzie można próbować zdobyć pierwszą pracę w zawodzie i co już trzeba umieć żeby móc o takiej pomyśleć?
4) Ile czasu jest potrzebne, by nabyć niezbędne minimum skilla potrzebnego do pracy zarobkowej?

Z góry dziękuję za odpowiedź. Pozdrawiam! :)

[Koniec listu]

TwojeAktywny NR.5Co trzeba zrobić, aby chciało się chcieć. Często idziemy do pracy bo musimy. Często robimy coś bo mamy powody zewnętrzne, jak np. pieniądze. Taka motywacja jednak nie trzyma się długo.

Nasza wewnętrzna motywacja jest najpotężniejsza. Mając swoje osobiste powody pracujemy najbardziej efektywnie. 

Jak stworzyć swoją czakrę motywacji? Jak być odpowiedzialnym wobec siebie? Jak utrzymać dyscyplinę? Co trzeba zrobić, aby chciało się chcieć. Może wiele razy obiecywałeś sobie coś, ale nie byłeś w stanie dotrzymać własnego słowa.

Jedno jest pewne, aby być dobrym programistą musisz znaleźć sposoby na motywowanie samego siebie, inaczej staniesz się zombie, który robi rzeczy bo musi.

Ciężary $Zarobki NR.4Jako programista pomimo swoich zarobków możesz wpaść w pewne pułapki finansowe. Moim zdaniem największą pułapką  finansową są długi i kredyty, a zaraz potem zakupoholizm. Gdzieś po drodze możesz też zostać emocjonalnie przygnieciony tymi wszystkimi zakupionymi przedmiotami.

Zapewne się zastanawiasz jak programiści mogą popadać w długi i w idiotyzm zakupoholizmu. Otóż twoim największym wrogiem, jeśli chodzi o twoje finanse może się okazać twój sukces.

Im więcej pieniędzy masz tym lepiej – nieprawdaż. Tymczasem dla niektórych ludzi posiadanie dużej ilości pieniędzy wiąże się z dużym stresem.  Niektórzy ludzie im więcej zarabiają, tym więcej wydają, aż w końcu zaczynają zaciągać pożyczki i kredyty. Zakupoholizm też może się okazać groźny, gdy okażę się on twoim pierwszym, lepszym lekarstwem na stres.

Zrób cośAktywny NR.4 W poprzednim wpisie tego cyklu napisałem o odpoczynku. Odpoczynek jest potrzebny, ale łatwo popaść w lenistwo. Lenistwo? A co to, tak naprawdę znaczy. Pamiętam czasy, gdy rzeczywiście ciężko było mi się zmusić do wykonania jakiejkolwiek czynności. Czy to było lenistwo? Czy jest to coś więcej? Ludzie mają powody by nie wykonywać żadnych akcji.

Bezczynność to twój wróg. Dopiero gdy skończyłem studia inżynierskie zrozumiałem, że los jest w moich rękach i tylko ode mnie zależy jak będzie wyglądało moje życie. Potem przez te 3 miesiące nauczyłem się więcej niż podczas 3 lat studiów. Dlaczego tak było? Bo podjąłem tym razem świadomą akcję. Nie chciałem być już bezczynnym i znajdować wymówki do nic nie robienia.

Przełamałem swoje obawy i lenistwo. Bałem się, ale przynajmniej chciałem wiedzieć czy rzeczywiście mogę osiągnąć to, co chcę.

W karierze programisty, nieważne na jakim etapie nie ma nic bardziej groźniejszego jak bezczynność.  Jako student musisz się rozwijać bez przerwy nie patrząc na studia. Jako zaawansowany programista musisz czasami podejmować ciężkie decyzję i zrobić coś. 

NegocjacjeZarobki NR.3Wielu programistów nie negocjuje swojego wynagrodzenia i po prostu akceptuje to, co dostaje. Negocjowanie swojej przyszłej wypłaty jest ważne, nie tylko dlatego, że będą wyższe liczby na koncie bankowym, ale także dlatego, że w zależności od swoich zarobków będziesz zupełnie inaczej postrzegany w firmie.

Negocjacje twojego wynagrodzenia  zaczynają się zanim zaczniesz szukać pracy. Twoje negocjacje będą wyglądały inaczej, jeśli twoje nazwisko (i imię) jest znane w środowisku programistycznym. Oczywiście nie każdy z nas ma bloga i udziela się w wielu serwisach społecznościowych. Nie każdy ma genialny plan tworzenia swojej marki.

Oczywiście jest to pomoce. Jak to mówią reklama dźwignią handlu. Nasz zawód nie jest wyjątkiem od tej reguły.

Istnieją też inne zmienne, które będą wypływać na twoje negocjacje.

OdpoczynekAktywny NR.3Jestem zmęczony. Kwiecień 2016 był dla mnie pracowity. Był to jednak miesiąc zwycięstw. Zostałem najlepszym mówcą w Toastmaster w dywizji J. W pracy dostałem ciekawą propozycję. Mój fan page “Jak programować” powoli się rozwija. A ten blog został uzupełniony o ogromną ilość wpisów. Kwiecień 2016 okazał się miesiącem, w którym ten blog przekroczył granicę 40.000 unikatowych wyświetleń w ciągu miesiąca.

Same sukcesy. Niestety jestem zmęczony. Każdy z nas pomimo sukcesów chciałby robić jeszcze więcej i jeszcze szybciej,

Odpoczynek jest potrzebny. Zwłaszcza, gdy czujesz, że twoje ciało już nie daje rady. Zazwyczaj ja o tym  zapominam, dopóki nie dostanę dziwnych ataków senności połączonych z  bólem głowy i małą gorączką.

W życiu przeforsowałem się wiele razy. Jest to cenna lekcja, która mówi, że jak jesteś zmęczony, to niestety nie możesz wypić energetyka i jechać dalej.

FlowAktywny NR.2Jaki jest wielki sekret skutecznej pracy? Jak pracować szybciej i efektywniej. To, że możesz pracować szybko wcale nie znaczy, że twoja praca będzie efektywna. Jak to zrobić?

Kluczem jest koncentracja. Koncentracja jest potrzebna, aby skończyć jakiekolwiek zadanie. Pisząc ten artykuł jestem oddzielony od swojego telefonu, poczty email i facebook-a. Bez koncentracji napisanie tego wpisu byłoby długie i mało przyjemne. Sam wpis być może stałby się chaotyczny i mało zrozumiały ponieważ moje myśli ciągle byłyby rozpraszane.

Istnieje też mistyczna strona koncentracji zwana stanami Flow. W naszym zawodzie takie stany mogą być potrzebne bardziej niż nam się wydaje.

Zacznijmy jednak od podstaw. Czym jest koncentracja?

PodwyżkaZarobki NR.2Masz już pracę, ale chciałbyś zarabiać więcej. Pytanie więc brzmi jak poprosić o swoją podwyżkę? Najłatwiej oczywiście jest zmienić pracę na taką, gdzie więcej płacą. Jednak, jeśli lubisz swoją pracę to nie widzę powodu byś musiał ją zmieniać tylko dlatego, że nie wiesz jak poprosić o podwyżkę.

Pieniądze w naszym zawodzie są problematyczne.  Codziennie ktoś w Google wpisuje hasło “zarobki programisty X w mieście Y”. Pieniądze w naszym zawodzie są duże. Nikt jednak nie lubi podawać konkretnych liczb. Ja to zrozumiałem. Moim zdaniem wiele osób  dostaje czystej ekstazy na widok tych liczb. W końcu kto nie chciałby zarabiać dużo.

W końcu programiści potrafią zarabiać więcej pieniędzy niż lekarze i prawnicy. Koniec głupich gadek o tym, jak po studiach będziesz zarabiał najniższą krajową. Jako programista zostaniesz władcą swojego życia bo masz dużo, dużo więcej pieniędzy,

Każdy chce zarabiać więcej i więcej. Każdy patrzy na te statystki i zastanawia się czy przypadkiem nie należy mu się już większa suma. Każdy pyta swoich kolegów programistów ile oni wyciągają, aby im dorównać i pokazać kto jest samcem alfa w dochodach finansowych.

Skoro czytasz ten wpis to zapewne masz jakieś powody by zarabiać więcej. 

IIS LockedOto mój ostatni problem konfiguracyjny związany z serwerem IIS.

W pracy główna osoba odpowiadająca za pliki konfiguracyjne w końcu dodała autentykacje windows do odpowiednich plików konfiguracyjnych. Niestety z jakiegoś powodu u mnie i tylko u mnie wszystkie aplikacje nagle przestały działać. 

Obecna konfiguracja web.config wygląda więc tak:

CzasAktywny NR.1 Każdy z nas w jakiś sposób marnuje swój czas. Jak więc przestać marnować czas? Trzeba by było sprawić, aby każdy nasz aspekt życia służył jakiemuś celowi. Jeżeli byś nie marnował swojego czasu, to mógłbyś z czystym sumieniem powiedzieć sobie “Tak dałem z siebie 100% i niczego nie żałuję”.

Oczywiście niemożliwe jest, aby każda minuta twoja życia lub dnia była użyteczna.  W ciasnym pociągu nie zawsze będziesz czytał książkę lub słuchał audiobooka. W trakcie spaceru nie będziesz przy okazji analizował planów na przyszły miesiąc. Przy obiedzie lub śniadaniu nie zawsze możesz rozmawiać z drugim człowiekiem i z nim się integrować.

To jest niemożliwe. Dlatego nie można mieć do siebie pretensji za to, że przez 30 minut w trakcie naszego obiadu jedliśmy tylko obiad albo za to, że w trakcie jazdy z punktu A do punktu B nie robiliśmy czegoś tam jeszcze. Stworzenie idealnego planu dnia, gdzie każda minuta jest użyteczna jest mało realistyczne.

Są pewne granice, ale nie znaczy to, że nie możesz obecnie zlokalizować miejsca i momentów, w których faktycznie ten czas marnujesz. Kto wie może, jeśli wyrzucisz ze swojego życia parę czynności, które nic ci nie dają staniesz się lepszym człowiekiem i programistą.

Jakie więc są najbardziej popularne zjadacze czasu.

Ty jako...Kariera NR.7 W innym wpisie podzieliłem firmy na małe, średnie i duże. Istnieje jednak jeszcze inny podział firm programistycznych. Kolejnym ważnym aspektem przy wyborze pracy jest fakt, że są firmy tworzące oprogramowanie i są firmy z programistami.

Jaka jest różnica? Co jest lepsze firmy, które tworzą oprogramowanie dla klientów, albo dla samych siebie, czy firmy które zatrudniają programistów do pracy i to programiści sami są tą chodzącą usługą tej firmy.

Firmy, które nie koncentrują się na tworzeniu oprogramowania, ale zamiast tego zatrudniają programistów do pracy  będą traktować swoich pracowników inaczej.

EscapeKariera NR.6 Odejście z pracy może być trudniejsze niż nam się wydaje. Tak wiem, jeśli chcesz odjeść z pracy wystarczy pójść do szefa i to powiedzieć. Istnieją jednak pewne sprawy, o których warto wiedzieć zanim odjedziesz z pracy. 

Praca to wielki aspekt życia i nawet twoje odejście musi zostać wykonanie profesjonalnie.

O czym więc powinieneś pamiętać

PROKariera NR.5 Jak być PRO czyli profesjonalistą w programowaniu. Każdy ma swoją definicję profesjonalizmu. Dla mnie profesjonalizm polega na wykonywaniu swojej pracy pomimo wielu trudności. Pracować tak, aby nie zostać pokonanym przez przeciwności losu. Zawsze dawać z siebie 100% gdy pojawi się jakieś zadanie.

W naszej branży  profesjonalizm  jest w cenie. Będąc profesjonalistą  pomagasz sobie znaleźć lepszą pracę. Będąc PRO zwiększasz swoją liczbę klientów. Co więcej będziesz się lepiej czuł w swojej skórze i będziesz czuł dumę ze swojej pracy. 

Jak więc być profesjonalistą? Najpierw musimy ustalić kim dokładnie profesjonalista jest.

FanatyzmKariera NR.4 Miłość do konkretnego rozwiązania do konkretnej technologii jest wspaniała. Niestety miłość też ma swoje skutki uboczne. Jednym z nich jest fanatyzm, który powoduje, że zawsze i wszędzie masz to poczucie udowadniania, że ty i twoje narzędzie, które kochasz jest lepsze od wszystkich innych.

Być może jako student kłóciłeś się z kimś. Być może jako programista pisałeś felietony na forach dlaczego pewien język programowania jest lepszy od wszystkich innych.

Jedno jest pewne swoją karierę posuniesz zdecydowanie do przodu, jeśli odrzucisz swój fanatyzm do technologii i zaczniesz myśleć większymi obrazami.

S.P.E.C.I.A.LKariera NR.3Jako student wierzyłem, że dobry programista to taki, który zna wiele języków i technologii. Jest to prawda, że jako programista powinieneś znać wiele rozwiązań. Nie zmienia to jednak faktu, że jako programista powinieneś zostać specjalistą jednego rozwiązania.

Jak nie wiadomo o co chodzi to chodzi o pracę. A w pracy jako pojedynczy człowiek zazwyczaj będziesz odpowiedzialny tylko za jedną rzecz. Ten scenariusz jest na pewno prawdziwy jeśli będziesz pracować w korporacji. W firmie garażowej twoje specjalizacje będą trochę bardziej rozbite.

Specjalizacja jest jednak ważna. Gdy pracodawca szuka pracownika to szuka konkretnej osoby do konkretnego zadania. Dopasowanie więc swojej specjalizacji do właśnie tej oferty pracy daje ci właśnie zwycięstwo. Natomiast bycie wszystkim sprawi, że będziesz miał trudności z trafianiem do odpowiednich ofert pracy.   

Kogo obchodzi to, że umiesz trochę Javy, Ruby, PHP, Pythona, C# jak nie jesteś zdefiniowany na konkretne problemy, które będą pojawiać się w firmie.

GadanieKariera NR.2 Kiedyś myślałem, że praca programisty polega tylko na pisaniu kodu. Wiem, że z tym przekonaniem nie jestem odosobniony.

Jako programiści większość swojego czasu spędzamy oczywiście przed komputerem. Tak przynajmniej myślą ludzie, którzy nie pracowali w firmie. Otóż tak naprawdę w pracy częściej wykonuje się tonę innych czynności niż pisanie kodu. Jedną z tych czynności jest rozmawianie z ludźmi.

Ludzie są największą częścią tego biznesu. Kto by o tym pomyślał, że praca to współpraca z innymi ludźmi.

Dlatego by być lepszym programistą nie trzeba spędzać więcej czasu z komputerem, a z ludźmi. Tak jest ulepszając swoje zdolności komunikacyjne człowiek - człowiek jesteś w stanie zabrać swoją karierę na wyższy poziom.

Zapomnij o nauce kolejnej technologii to jest dla nas łatwe. Niestety to, co jest zazwyczaj trudniejsze dla nas, to właśnie komunikacja między ludźmi. Pomyśl jak bardzo możesz zyskać na czasie poprzez zadawanie pomocnych pytań. Pomyśl jak bardzo możesz pomóc koledze z zespołu dając mu kluczowe wskazówki.

Umiejętności komunikacyjne to jest coś, w co na pewno warto inwestować.

Model RazorCzęść NR.4W poprzednim wpisie omówiliśmy jak ASP.NET MVC przy pomocy Routingu ustala, jaki kontroler powinien zostać użyty w zależności od adresu URL. W tym wpisie omówię kontrolery oraz rezultaty, jakie mogą być zwracane przez metody w kontrolerze. Omówimy krótko model oraz widok.

Mówiąc krótko po tym wpisie powinieneś zobaczyć, jak wszystkie elementy MVC ze sobą współpracują. 

CiszaHistoria NR.8 Nadszedł rok 2013. Będę szczery ten rok był jednym z trudniejszych w moim życiu. Jak więc nie mogłem powitać tego roku siedząc w mieszkaniu, w rodzinnym domu, zastanawiając się na tym jak moje życie nie posuwa się do przodu. Coś w tym było. Rok 2012 oprócz tego, że wymusił poszukiwanie pracy był dosyć spokojny.

Jeżeli czytałeś poprzedni wpis z tego cyklu, to zapewne wiesz jak właściwie pół roku 2012 było niczym innym jak czekaniem, aż te cholerne studia magisterskie się skończą.

To był jeden z moich większych błędów życiowych. Nie można przecież  czekać, aż życie da ci szczęście. Nie możesz  czekać, aż coś się wydarzy lub coś się skończy i będzie być może lepiej. Nie możesz czekać na coś, co nigdy się nie wydarzy, jeśli czegoś nie zrobisz.

Oczywiście w 2012 roku robiłem coś więcej niż czekanie. Pisałem tego bloga i od czasu do czasu chodziłem na randki z tragicznymi skutkami. Niestety nie zmienia to faktu, że tę drugą połowę roku 2012 pamiętam jako “czekanie”.

CeleKariera NR.1 Nie każdy jest taki sam. Każdy z nas ma inny zestaw celów, które powinny zostać zrealizowane w naszej karierze. Zanim jednak zaczniesz spełniać swoje cele najpierw musisz ustalić czym one dokładnie są. Brzmi to dosyć prosto? Niestety rzeczywistość jest inna.

Rozmawiając z różnymi ludźmi i także z samym sobą przed lustrem zdałem sobie sprawę, że większość z nas żyje życiem programisty bez żadnych konkretnych celów. Większość programistów i ludzi nie ma określonych celów, co więcej być może nawet nie zdaje sobie sprawy, że cele są ogólnie potrzebne.

Oczywiście nie jest to nic nadzwyczajnego. Jak sam pisałem wcześniej miałem nie raz trudną dyskusję przed lustrem z samym sobą na ten temat.

Koncentracja i myślenie jest męczące i wymaga wysiłku. Nie każdy z nas poświęca czas i swoje myśli na to, którędy powinien pójść dalej.  Co w tym złego? Pozwól, że posłużę się metaforą.

ImBatchNarzędzie NR.5Wprowadzam kolejne wielkie zmiany na bloga. Te zmiany są związane z dużą ilością obrazków i ilustracji. Wprowadzenie tych zmian ręcznie byłoby katorgą i stratą czasu. Dlatego postanowiłem się zastanowić jak prawdziwy programista jak ten proces zautomatyzować i to szybko.

Potrzebny był mi jakiś automatyczny przetwornik/transformat dużej ilości obrazków, który jeszcze byłby darmowy.

Po pół godzinne szukania różnych rozwiązań jedyne co zmalałem pod swoje kryteria to plugin do Paint.NET, który obecnie nie działa oraz program ImBatch.

RoutingCzęść NR.3 Nadszedł w końcu ten czas, aby na tym blogu napisać kurs o ASP.NET MVC. Wiem, że jest to kurs ASP.NET Core, ale przez większą cześć tego kursu będziemy mówili o ASP.NET MVC i o rzeczach, które już istnieją w starszych jego wersjach.

To co chcemy ostatecznie osiągnąć, to napisać aplikację WEB korzystając z ASP.NET MVC. W teorii jest możliwe stworzenie aplikacji ASP.NET używając tylko Middelware, ale po co wybierać taką trudna drogę.

MiddelwareCzęść NR.2 Najpierw zrozummy czym jest Middelware zanim przejdziemy dalej. W poprzednich wersjach ASP.NET zarządzania przepływami żądań HTTP nie było takie oczywiste i proste. Przykładowo w ASP.NET Web Form, które nie jest już wspierane przez Microsoft mieliśmy system zdarzeniowy, w którym łatwo można było się pogubić.

W ASP.NET Core proces przetworzenia żądania HTTP jest znacznie prostszy w obsłudze, jak się zaraz przekonasz.

Przykładowo wysyłamy żądanie strony poems poprzez adres URL. Gdy wpisujemy do przeglądarki adres strony,  wtedy najczęściej wysyłamy zapytanie HTTP typu GET. Jeżeli wypełniamy formularz będzie to żądanie typu POST.

Na razie nie ma to większego znaczenia. Co się dzieje z tym zapytaniem?

C# 7.0 Na konferencji Build 2016, Microsoft wypuścił pierwszy publiczny wgląd do nowego Visual Studio 15. Po co go zainstalować? Warto go mieć by zobaczyć, co obecnie można zrobić w kolejnej iteracji języka C#. Jest to siódma iteracja C#. Pojawiło się w niej wiele ciekawych sztuczek.

Instalacja Preview Visual Studio 15 wydaje się mało inwazyjna na cały ekosystem programistyczny w moim komputerze. Wydaje się, że w każdej chwili mogę odinstalować ten edytor bez niszczenia czegokolwiek w swoim systemie operacyjnym.

ListList NR.1 Cześć. Ostatnio odpisywałem na listy od czytelników. O co czytelnicy mnie najczęściej pytają? O karierę oczywiście.

Będę szczery. Nie zawsze mam czas odpisywać na listy. Jednak gdy odpisuję staram się by moja odpowiedź była czymś lepszym niż szybką odpowiedzią bez głębszego zastanowienia.

Postanowiłem wiec stworzyć cykl : Listy od czytelników. Cykl otwiera najnowszy list od Krzysztofa.  Jak zaraz się przekonacie Krzysztof, tak jak wiele osób zmienia branżę i stwierdza, że chce być programistą.

Jakie jest jednak jego główne pytanie.

Code Jeśli jesteś programistą takim jak ja, to zapewne programujesz w wielu językach, platformach a nawet na różnych systemach operacyjnych. Być może tworzysz strony internetowe przy użyciu Angulara z Ruby, a po godzinach programujesz skrypty w Pythonie.

A co z ASP.NET i C#. Czy istnieje jakieś jedno słuszne narzędzie inne niż Visual Studio. Visual Studio w końcu działa tylko pod system Windows i pomimo różnych wtyczek nie służy do pisania każdego kodu.

Otóż na pomoc nadchodzi dużo chudsze narzędzie Visual Studio Code. Moim zdaniem nazwa jest trochę myląca ponieważ samo narzędzie nie ma tak wiele wspólnego z Visual Studio.

Visual Studio Code to lekki i szybki edytor stworzony z myślą o tym, by programować w nim na każdym systemie operacyjnym.

Audio API Dostałem wczoraj na Facebooku zapytanie jak można otworzyć dźwięk na stronie HTML. Sprawa wydaje się bardzo prosta jeśli się wiem jakich frazy trzeba szukać w Google. Osoba, która zadała mi to pytania widać, że się nie zna nawet podstaw co by tłumaczyło dlaczego z tym problemem zgłosiło się do mnie.

A tak na serio. Nie zawsze facebook pozwala mi czytać wiadomości od obcych osób dlatego jeśli macie pytania lub prośby zawsze możecie skorzystać ze strony kontaktowej.

Przejdź mi jednak teraz do omówienia problemu odtworzenia dźwięku w HTML a raczej w JavaScript-cie.

Problem ten obecnie łatwo rozwiązać ponieważ żyjemy w przyszłości HTML 5. Tak jest do otworzenia dźwięku nie potrzebny nam jest plugin Flash czy Silverlight. Mamy wszystko co nam jest potrzebne.

ASP.NET CoreCzęść NR.1 ASP.NET Core jest to nowy framework Microsoftu, który został zbudowany na nowo. Dlaczego został zbudowany na nowo? By był szybszy, bardziej elastyczny, nowoczesny i żeby działał na różnych platformach jak LINUX i OS X.

Skończyły się więc wymówki, by nie pisać w ASP.NET bo nie można tego uruchomić na Linux. ASP.NET Core jest frameworkiem z platformy .NET i będziesz go używał do tworzenia stron.

W tym kursie zbudujemy stronę internetową zaczynając od pustego projektu. W taki sposób, abym mógł  ci pokazać jak te wszystkie elementy ze sobą się łączą.

Zainstalujemy odpowiednie poboczne rozwiązania. Potem przyjrzymy się frameworkowi MVC.

KomentarzeKomentarze na blogu obecnie mnie wspierają i dają cenne rady jak poprawić dany wpis. Komentarz jest duszą twojego bloga, gdy twoje serce leży w jego treści. Bez komentarzy blog jest trochę jednowymiarowy. Nie ma większej głębi.

Dlatego każda treść napisana przez ciebie w komentarzach ma znaczenie. Zwłaszcza, że twoja opinia albo fakt, że zauważyłeś błąd może pomóc innym czytelnikom.

Jesteśmy jednym zespołem. Jedną rodziną. A ja jestem tylko człowiekiem, który też popełnia błędy. Prowadzę aż dwa blogi o przemawianiu i programowaniu jednak nie będę ukrywał, że fakt tworzenia wychodzi tylko ode mnie, a nie od jakiegoś zespołu ludzi.

Nie zawsze tak było. Rzeczywiście nawet kiedyś dla swojego dobra przestałem je czytać.

Blog stawał się czasami dysputą, kto ma większego wacka programistycznego pomiędzy czytelnikami.Potem, gdy przeniosłem się do Disqus wszystkie te komentarze poszły do kosza. Od kiedy jednak posiadam system Disqus, nadeszła w końcu ta lepsza era.

Zacznijmy jednak od początku.

Dlaczego?Programisto bloguj. Pisz i pisz. To fantastyczny sposób na marketing i pokazanie własnej osoby. Blog może pomóc ci znaleźć pracę. Blog też pozwoli ci stworzyć więź z klientami.

A tak na serio blog nie jest czymś potrzebnym do życia. Mimo to moim zdaniem warto bloga mieć nawet dla samego siebie.

Zanim jednak zachęcę ciebie do pisania bloga, skoncentrujmy się na tym dlaczego programiści nie blogują. Jakie są obawy przed blogowaniem? Co nas powstrzymuje przed blogowaniem?

To są ważne pytania. Prowadzenie bloga wiąże się z bólem, wysiłkiem oraz strachem. Nie każdy chce takich emocji doświadczać.

OdpływającyDemon NR.10

Co się dzieje? Co robiłem w piątek?

Zaraz muszę sprawdzić? Tylko najpierw przejrzę pocztę.

Dlaczego jestem na tym spotkaniu? O czym te osoby przy stole rozmawiają?

Dobrze, że mogę sprawdzić Facebook na telefonie. Z drugiej strony ciekawe, co nowego na 9 Gag-u.

Co ja właściwie robię w tej pracy? Miałem coś zrobić? O coś zapytać? Coś mi mój szef mówił 15 minut temu, ale nie pamiętam co. Czy to jest mój kod? Pisałem go trzy dni temu, ale nie mam pojęcia co on robi.

ArtystaDemon NR.9

Dzięki Bogu nie mam w sobie tego demona, ale się z nim spotkałem wielokrotnie w swoich miejscach pracy oraz na studiach.

Programowanie to sztuka.

A każda sztuka potrzebuje artysty.

Kod jest jak obraz, który musi zostać namalowany. Aplikacja jest jak rzeźba, którą trzeba dokładnie kuć dłutem.

Artysta chce wyrazić siebie. Chce wyrazić swój geniusz. Chce być podziwiany. A programista może tworzyć dzieło sztuki tylko w  jeden sposób,  pisząc kod.

FanatykDemon NR.8Fanatyk Agile ma obsesje na punkcie “użyteczności”.

Będzie poszukiwał sposobów jak zwiększyć efektywność i produktywność swojego zespołu oraz samego siebie.

Przeczytał o tym wiele książek i teraz już wie jak to trzeba zrobić. Wystarczy tylko wprowadzić pewne zasady i procesy usprawnią się o 150% .

Istnieje jednak pewien problem.

IzolatorDemon NR.7Izolator to demon, który jest mi bardzo bliski. Walczyłem z nim nie raz.

Będę miał więc wielką przyjemność opisania go w szczegółach.

Programiści mogą być dziwakami. Komputery mogą fascynować niektórych ludzi ponieważ właśnie są to obiekty, które myślą logicznie.

Komputer nie obrazi się nie ciebie. Komputer niczego złego nie powie.

Natomiast ludzie to co innego. Ludzie to istoty emocjonalne, które niewiele mają wspólnego z logiką. Są nieprzewidywalni i mogą ranić

Ludzie są straszni.

ArcheologDemon NR.5

Czas na kolejnego demona programisty.

A jest nim Archeolog.

W ostatnim roku dostałem zadanie pielęgnacji bardzo starego systemu napisanego JavaScripcie używającego kontrolek ActiveX.

W systemie wszystkie informacje transformują się do różnych form XML z 3 razy, aż w końcu powstaje ten ostateczny XML, który zostaje zapisany do bazy Oracle.

Jeśli w którejś transformacji coś się nie zgadza, to cały system nie działa.

Przez te transformacje oraz fakt, że logika biznesowa jest w plikach JavaScripcie po 4000 stron było dla mnie oczywiste, że w końcu napotkam tego demona na swojej drodze.

RobotDemon NR.4Robot.

Jak sama nazwa wskazuje nie jest to człowiek. Programowanie i przestrzeganie zasad może dehumanizować.

Cel jest szczytny. Emocję tworzą chaos. Ludzie tworzą chaos. Dlaczego więc nie ograniczyć ich do minimum i stworzyć całkowicie sterylne miejsce pracy jakby to był sklep Appla.

Robot więc chce stworzyć porządek wyprowadzając procedury, dokumentacje i operacje oparte na prostej logice IF-ELSE.

Te jednak pragnienie stało się tak silne, ze w rezultacie demon Robota uporządkował nie tylko miejsce pracy, ale także samego siebie.

Stał się on jednym z komputerem. Myśli on ja sam język programowania w którym piszę.

HegemonDemon NR.3

Hegemon to o dziwo słowo, które występuje w języku polskim i nie jest to nazwa kolejnego Pokemona.

Hegemon to osoba mająca władzę i przewagę nad innymi.

Jest to słowo pokrewne od Hegemoni. Hegemonia to termin z języka greckiego, który oznacza przywództwo jednego państwa nad innym. To przywództwo nie było jednak dobrowolne, było wymuszone groźbą i sterowane siłą.

SabotażystaDemon NR.2

Sabotażysta to najgorsza, koszmarna osobność programisty. To też najgorszy demon, który może cię opętać.

Jest on nasycony chęcią zemsty, lenistwem i chciwością.

Na szczęście może zostać utworzony jak potwór Frankenstein tylko w trakcie koszmarnej burzy, patologii samej firmy.

Każda iskra nienawiści, każdy piorun złości, ożywia tego demona.

A strach przed utratą pracy i chęć łatwego zysku ostatecznie  ożywia tego potwora.

Takie demony nie powstają z niczego.

Ulubieniec TDemon NR.1

Witaj w nowym cyklu, w którym będę opisywał nasze osobiste demony programistyczne, które nam przeszkadzają w pracy jak i w zadaniach.

Jeśli jesteś programistą już jakiś czas, to na pewno spotkałeś się z takimi demonami bądź osobami, które tak się zachowywały.

Jeśli my tak się zachowujemy, to warto się nad tym zastanowić i coś poprawić.

Jesteśmy tylko ludźmi też popełniamy błędy.

W tym wpisie omówimy “ulubieńca technologii”.

#6 Kod to...Część NR.5

Kiedyś szczytem wszystkich wynalazków stworzonych przez programistyczne języki funkcjonalne była możliwość wykonania funkcji, gdy ona jest w formie napisu string.

Ten napis można było zmieniać i później go wywołać jak zwyczajny kod.

Inaczej mówiąc “eval” .

Wiele języków programowania wspiera operację “eval” czyli możliwość wywołania funkcji w danym języku, gdy dynamicznie tworzymy wyrażenie tej własnej funkcji.

Najprostszy eval jak powiedzieliśmy wcześniej wymaga do operacji zwykłego napisu string. Języki, które to wspierają pozwalają na wywołanie takiego kodu. Oto przykładowy kod JavaScript.

3 SemestrHistoria NR.7I tak po znalezieniu drugiej pracy i wygraniu XBOX-a w 2012 roku nastały spokojne czasy.

Zacząłem nawet planować co ulepszyć na blogu? Jakie wpisy przygotować?

W pracy absorbowałem dużą ilość wiedzy.  Praca była super. Rozwijałem się.

Wszystko było pięknie.

Dopóki nie przypomniałem sobie, że jeszcze studiuję, a skończyła się właśnie przerwa wakacyjna..

Akcja wpisu dzieje się w październiku 2012 roku

Trzeci semestr.

Biała Spacer[Ten wpis miał być opublikowany 26 października 2014 roku. Z powodów technicznych robię to teraz.]

Kolejny powrót do Białej Podlaskiej po dłuższej przerwie. Po wielu latach jeżdżenia do swojego rodzinnego miasta, mniej więcej co 4 miesiące, nie czuję już, że Warszawa i Biała to dwie różne krainy w mojej głowie.

Poprzednim razem miałem okazję zobaczyć, co znajduje się w domu studenta w PSW.

Lepsze czasyHistoria NR.6

Od kiedy pojawiłem się w Warszawie mogłoby się wydawać, że nic dobrego mnie nie spotkało.

Studia, praca. Potem szukanie kolejnej pracy.

Po zrezygnowaniu z tej dziwnej propozycji pracy, rozpoczęło się kolejne jej szukanie,

Tamten wtorek dobiegał końca. Spojrzałem na listę e-mail z ofertami pracy, zatwierdzałem je i szykowałem się do kolejnego pojedynku. Czułem się bardziej zmotywowany. O dziwo też bardziej zacząłem wierzyć w siebie.

Czasem rzeczywiście dobrze postawić na swoim. Następny dzień nie był jednak taki sympatyczny.

Akcja dzieje się w kwietniu 2012 roku

ClousersCzęść NR.4

Aby język programowania mógł działać z Funkcjami wyższego rzędu musi rozwiązać problem z zasięgiem zmiennych. O co chodzi?

Funkcja wyższego rzędu jest to funkcja, która przyjmuje jako parametry kolejne funkcje. Co się jednak dzieje z parametrami zaszytymi w wewnętrznych parametrach funkcji?

Kiedy funkcje są przekazywane jako parametry, zmienne, wartości zwracane - wtedy kompilator używa domknięcia, aby rozszerzyć zasięg zmiennych tak, by były one dostępne wtedy, gdy są potrzebne.

W tym wpisie spojrzymy na problem z zasięgiem zmiennych i na domknięcia, ale najpierw…zobaczymy jak w C# dynamicznie tworzy się funkcję.

ScreenToGifNarzędzie NR.4Na swoim blogu często korzystałem z GIF-ów, by pokazać jak piszę kod, co wyświetla Intellisense, jak klikam na poszczególne opcje.

Raz nawet zrobiłem prezentację w PowerPoint na temat Visual Studio 2013 i co on potrafi. Aby nie sięgać do Visual Studio na slajdach, w prezentacji za pomocą gifów pokazałem te nowe funkcjonalności.

Umieszczanie gifów na blogu jest więc genialnym pomysłem.

Wcześniej do tworzenia gifów korzystałem z narzędzia camtasia studio.

Camtasia studio powstało z myślą o nagrywaniu pulpitu i tworzenia Tutoriali. Nawet się sprawdza jako program nagrywający Gameplay. Tutaj znajduje się stary filmik, który nagrałem przy pomocy Camtasia Studio.

PastePureNarzędzie NR.3

Ostatnio napotkałem na problem z formatowaniem tekstu. Gdy kopiujesz tekst z jednego źródła do drugiego w niektórych programach oprócz tekstu kopiuje się także formatowanie, czyli kolory tekstu, czcionki, rozmiary i wiele innych rzeczy.

Ma to pomagać użytkownikowi, ale w moim przypadku zazwyczaj mi to przeszkadza.

Aby poradzić sobie z tym problemem często otwierałem notatnik i do niego wklejałem tekst (tam jest tracone formatowanie) po to, by skopiować i wkleić go bez formatowanie do właściwego źródła.

Jeśli więc musiałem napisać E-mail, dokument w Wordzie lub wpis na blogu często korzystałem z takiej kombinacji czynności tylko po to, by nie wklejać sformatowanego tekstu.

Wiem, że w programie Word jest opcja “Paste content" ale ta opcja jest równie niewygodna co notatnik.

ZoomItNarzędzie NR.2Prowadzisz prezentację albo chcesz pokazać koledze/koleżance coś ważnego na ekranie, ale jest jeden problem.

Wszystko jest małe i nikt nie widzi w co dokładnie klikasz na swoim ekranie. Szkoda, że nie ma programu, który powiększyłby twój ekran i nie jest domyślnym programem Windows jak LUPA.

Program Lupa jest bardzo niepraktyczny. Na szczęście istnieje inny program, który poradzi sobie z tym zadaniem.

2015

Rok 2015 był rokiem, który udowodnił mi, że mój wysiłek ma znaczenie.

Nie wiem jak inne blogi programistyczne sobie radzą, ale te liczby będą mnie motywować do dalszego działania oraz czego bardzo nie lubię do restaurowania starych wpisów.

Mimo, iż w 2015 roku blog pobił swoje rekordy, to był to też rok, w którym przez 7 miesięcy nic nie pisałem. Przez te 7 miesięcy przygotowywałem się do kolejnej migracji bloga. Nie będę jednak ukrywał, że zrobiłem sobie przerwę także by ułożyć wszystkie sfery swojego życia.

O czym w innym wpisie.

Teraz chciałbym wam podziękować. Bez was nie byłoby to możliwe.

ComparisonSmak NR.4

Podobnie jak delegaty: Predicate, Converter - delegata Comparsion istnieje głownie po to, by dać możliwość kolekcjom Array i List<T> możliwość sortowania.

Obecnie jednak nie korzystam z metody Sort, tylko z metody LINQ OrderBy.

Używanie delegaty tak, jak w poprzednich przypadkach nie ma sensu. Sama delegata istnieje dla metod np. Sort.

PrzeciążanieCzęść NR.19

Witaj w przedostatnim  wpisie z tego cyklu. Poza wielkim podsumowaniem czego w Javie nie ma, a jest w C# wypadałoby jeszcze coś powiedzieć o przeciążaniu metod w C# i w Javie ponieważ różnice są.

Zacznijmy od C#.

Elementy klasy pochodnej mogą redefiniować metodę klasy bazowej. W klasie pochodnej tworzymy metodę o tej samej nazwie i liście parametrów, co metoda w klasie pochodnej.

Metoda ta będzie miała nowe zachowanie. Inne niż metoda z klasy bazowej.

ConstrainsCzęść NR.18

Generics, Typy generyczne referują się do typów, których definicja metody, klasy i interfejs operują zależnie od tego, co podasz do niego.

Typy generyczne mają wiele zalet jedną z nich jest wykrywanie ich działania już na poziomie pisania kodu oraz to, że pozwalają na uniknięcie konwersji typów.

GenericsCzęść NR.17

Generics, Typy generyczne referują się do definicji metody, klasy i interfejsów, które operują zależnie od tego, co podasz jako parametr generyczny.

Typy generyczne mają wiele zalet jedną z nich jest wykrywanie ich działania już na poziomie pisania kodu. Dzięki nim też możemy uniknąć konwersji typów.

Try-CatchCzęść NR.16

Przechwytywanie wyjątków pozwala programistom rozwiązać problem związany z tym, że w każdej aplikacji może wystąpić nieprzywidziana sytuacja.

Przykładowo jeśli chcesz otworzyć plik używając FileReader z Javy, albo StreamReader z C#, to istnieje kilka sytuacji, które mogą wywołać błąd działania, czyli wyjątek. Przykładowo plik może nie istnieć.

Windows Live Writer staje się open source jako Open Live Writer Do tworzenia wpisów na blogu korzystam z programu Windows Live Writer. Istnieje jednak pewien problem. Ten program jest stary.

Gdy aktualizowałem system do Windows 10 miałem obawę, ze ten program przestanie działać. Na szczęście tak na razie nie jest, ale ten dzień nadejdzie.

Do pisania wpisów na blogu nie znalazłem dobrych alternatyw. Co prawda teraz zmodyfikowany silnik MiniBlog pozwala mi edytować wpisy na blogu przez stronę WEB na żywo to wciąż brakuje mi w nim kluczowych funkcji.

Month GroupCzasami dla statystyk trzeba pogrupować dane według miesięcy bądź kwartałów. Sprawę utrudnia fakt ,że kolumny przetrzymujące date (DATETIME) zawierają nie tylko miesiące ,ale także rok, dzień oraz godzinie.

Grupowanie po miesiącu  wymaga więc trochę większego wysiłku.

Naturalnie istnieje wiele  sposobów na rozwiązanie tego problemu.

Oto tymczasowa tabelka zawierająca wartość jak i datę po której będziemy grupować.

ConverterSmak NR.3Przerobiliśmy 3 z 5 szablonów gotowych generycznych delegat. Zostały nam jeszcze dwa. A w tym wpisie opiszę delegatę Converter.

Nie ma w niej niczego specjalnego. Jest to kolejna delegata, która istnieje z powodu starego kodu .NET 2.0 sprzed LINQ.

Celem tej delegaty jest przekonwertowanie jednego obiektu w drugi. Od razu rodzi się pytanie po co używać do tego oddzielnej delegaty gdy mamy delegatę Func.

PredicateSmak NR.2

Predicate to gotowy szablon delegaty/wskaźnika do metody.

Metoda referowana w Predicate musi zwrócić wartość true/false.

Spełnia ona inną role niż klasyczne szablony delegat jak “Action” i “Func”, które opisałem wcześniej. Pytania brzmi na czym polega różnica.

Możesz sobie zadać pytanie dlaczego w ogóle z nich korzystać. Dla czytelności systemu może łatwiej jest użyć delegaty Func<T,Bool>. Dlaczego Predicate w ogóle istnieje?

Wartość

Co ma wartość i znaczenie w programowaniu? Zadowolony klient czy ty.

Kiedy więc się uczysz kolejnego nowego frameworka lub technologii zadaj sobie pytanie, czy to pozwoli ulepszyć twój produkt, który sprzedajesz?. Może to być strona internetowa, aplikacja mobilna, aplikacja na pulpicie.

Co więcej, czy ta nowa technika da jakąś wartość użytkownikowi? Czy użytkownik zobaczy, że aplikacja działa szybciej, a może zachwyci się ciekawymi animacjami. Może dzięki nowej technice szybciej będziesz mógł naprawiać błędy, a więc użytkownik zobaczy szybką obsługę strony.

Behemot

Istnieje inny typ programisty niż ten, który zazwyczaj jest reklamowany w czasopismach, na konferencjach i w prelekcjach.

Jest nim zamaskowany chowający się w cieniu pogromca Behemotów oprogramowania.

Nie jest to uśmiechnięty młody developer. Nie jest to lśniąca gwiazda pokazywana na wydarzeniach.

EnumCzęść NR.15

Typ wyliczeniowy jest to typ, który zawiera określoną liczbę nazwanych stałych. Aby utworzyć typ wyliczeniowy wystarczy użyć słowa kluczowego “enum” zamiast “class”.

Wewnątrz nawiasów klamrowych po przecinku definiujemy listę stałych elementów. Zasady poziomu dostępu typu wyliczeniowego są takie same jak zasady dla klasy.

W Javie stałe wartości enum są pisane z dużych liter.

AbstrakcjaCzęść NR.14

Klasa abstrakcyjna dostarcza implementacje innym klasom. Klasa abstrakcyjna jest więc taką podstawką dla pozostałych klas.

Klasa abstrakcyjna może zawierać zestaw kompletnych metod, które będzie posiadać klasa pochodna. Klasa abstrakcyjna może też mieć zestaw abstrakcyjnych metod, które nie są zdefiniowane w swoim działaniu. Podobnie do interfejsów, w takich metodach istnieje tylko sygnatura metod. Nie ma w nich ciała.

1 DzieńHistoria NR.5

Zdarzyło ci się odejść z pracy po pierwszym dniu? Czy zdarzyło ci się odejść z pracy zanim zacząłeś pracować?

Miałem kolegę, który zanim zaczął pracować w firmie otrzymał jeszcze lepszą ofertę pracy. W wyniku czego zrezygnował z tej pracy, mimo, iż jeszcze jej nie rozpoczął.

Ja miałem podobną historię. Niestety nie była ona taka przyjazna i prosta.

Chronologicznie to ta historia zaczęła się zaraz po odejściu z pierwszej pracy. Nadszedł drugi sezon na szukanie pracy.

Szukanie pracy po raz drugi było dużo bardziej stresujące, mimo, iż miałem więcej doświadczenia. Miałem ograniczone fundusze i zależało mi by jak najszybciej zdobyć pracę.

C# Java

InterfejsyCzęść NR.13

Interfejs to typ, którego zadaniem jest rozłączenie implementacji działania od definicji parametrów wyjścia.wejścia.

Jest to specyficzny kontrakt, który jest implementowany przez klasy. Kontrakt ten zawiera tylko informacje o co dana metoda ma się zwrócić i co ma ona przyjąć. Definicja działania jest już określona w klasie.

StałeCzęść NR.12

Zmienna w C# określona słowem kluczowym const staje się stałą, której zawartość jest na zawsze zawarta w bibliotece, w trakcie kompilacji. Ta wartość nie może zostać zmieniona w trakcie działania programu.

Próba przypisania jakiekolwiek wartości do stałej będzie skutkować błędem.

Stałe muszą znajdować się w klasie jako pole lub w lokalnym bloku kodu .

Poziom.DCzęść NR.11

Poziomy dostępu deklarują na jakim poziomie dany element klasy bądź sama klasa jest widoczna.

W Javie mamy 4 typy dostępu. Są one następujące: public, protected, private i private na poziomie paczki.

Ten ostatni poziom nie może być jawnie zadeklarowany za pomocą słowa kluczowego.

Warto zaznaczyć, że poziom dostępu protected daje dostęp do wszystkich klas w danej paczce, nawet jeśli one nie dziedziczą po tej klasie.