Cezary Walenciuk Programowanie

CurryingCzęść NR.7 Gdzie leży serce programowania funkcjonalnego. Oczywiście w jego funkcjach, które są składową większego algorytmu. Haskell Curry był matematykiem i to od niego wywodzi się termin Currying, jak i cały język programowania Haskell.

Currying sprawia, że jesteśmy w stanie zobaczyć wszystkie funkcje jako funkcje jednoparametrowe bez względu na to, ile parametrów tak naprawdę potrzebujemy do wyliczeń i działania.

Jak to jest możliwe? Przecież gdzieś te parametry muszą być? Jest to jednak prostsze niż się wydaje.

Otwiera nas to na dzielenie aplikacji  na mniejsze elementy. Jest to jedna z głównych esencji każdego języka funkcjonalnego.  Jak to wygląda w C#, który do końca nie jest językiem funkcjonalnym.

RekurecjaCzęść NR.9 W funkcjonalnych językach programowania rekurencja jest narzędziem z dużą tradycją. Wiele oryginalnych języków funkcjonalnych nie miało konstrukcji pętli. W takich wypadkach była używana rekurencja.

Obecnie wiele języków funkcjonalnych ma definicję pętli w swojej składni.

Nie zmienia to jednak faktu, że rekurencja wciąż jest używana przez wielu programistów.

Future C# Czy warto uczyć się C#? Oczywiście język dojrzał i – co więcej – czeka na niego świetlana przyszłość.

C# ma już 16 lat. Przy pomocy C# możemy tworzyć strony internetowe, aplikacje na Androida, iOS i aplikacje na Windows 10. Mam też aplikacje na systemy Windows jak Windows Forms i WPF. Do tego stosu też można dodać usługi Windows, które działają w tle systemu.

Na koniec możemy wspomnieć o aplikacjach na systemy Office i SharpPoint.

StereotypSerce NR.5 Programista ma pewien swój stereotyp. Nie ma w tym nic złego. Moim zdaniem każdy z nas powinien mieć dystans do siebie. Dlatego umiem żartować nawet z siebie. Same dowcipy o programistach nie są więc takie szkodliwe.

Tak jak wszystko inne, definicja programisty ma pewien swój szablon, do którego inni, a także i my sami się umieszczamy.

No wiecie, że programista ma koszulę w kratę. Ma zapewne okulary, bo oślepł od monitora. Zna się na komputerach, ale nie ma pojęcia jak rozmawiać z ludźmi.

Tak siebie postrzegamy i tak mogą postrzegać nas inni ludzie, którzy z programowaniem nie mają styczności. Nie widać w tym niczego złego, dopóki nie zjawią się osoby, które zaginają ten stereotyp do absurdu na sposób negatywny.

Stereotyp nie opisuje prawdy. To, że jesteś programistą wcale nie znaczy automatycznie, że jesteś gruby i oglądasz Start Treka, albo grasz w gry z mistrzem gry.

Niestety są ludzie, którzy programistę od razu zaszufladkują jako: ciamajdę, brzydala, ciepłe kluchy, socjalnego idiotę i tak dalej. Programista jest wtedy wiązany ze stereotypem nerda.

CreateCzęść NR.6 Pomówmy o wyrażeniach drzewiastych raz jeszcze. Wyrażenia drzewiaste są naprawdę potężnym narzędziem, ponieważ traktują kod jak dane. W poprzednim wpisie przyjrzeliśmy się jak wyrażenia drzewiaste są zbudowane i jak je wykorzystać.

W tym wpisie skoncentrujemy się na tworzeniu wyrażeń, jak i ich zmianie.

Tematyka ta jest dosyć obszerna dlatego postanowiłem przygotować tylko parę ciekawych przykładów, które wykazują pewną użyteczność tworzenia dynamicznych wyrażeń.

Zaufanie?Kariera NR.10 Lojalność wobec pracodawcy. Dla programistów to śliski temat. Wiem co sobie myślisz, że napiszę, że szefa trzeba szanować i być wobec niego sprawiedliwym.

Muszę ci przyznać rację, bo rzeczywiście warto tak się zachowywać wobec swojego pracodawcy. Twoja lojalność oczywiście może też być użyta przeciwko tobie, dlatego też opiszę gdzie leżą jej granice.

Nie każdy pracodawca okaże się złym i będzie chciał cię wykorzystywać. Możesz znaleźć takich pracodawców i wobec takich twoje zachowanie powinno być podobne, jak nie nawet lepsze.

Dlatego nie szantażuj i nie rób nieczystych zagrywek, nawet dla swojego dobra.

DekoratorWzór.1 Dekorator. Śmiało mogę powiedzieć, że jest to jeden z najważniejszych wzorców projektowych. Można powiedzieć, że jest on prawie częścią każdego systemu, ponieważ nie ma co ukrywać, jest on pożyteczny i użyteczny nawet do dzisiaj.

Dekorator pozwala dodać istniejącej klasie nowe zachowanie.  Nie zmienia on jednak działanie klasy podstawowej. Oznacza to, że spełnia następujące zasady S.O.L.I.D:

 

  • pojedynczej odpowiedzialności
  • zasady otwartej-zamkniętej

Dekorator, jak i jego klasa bazowa mają tylko jedno zadanie. Dekorator pozwala nawet rozbić zachowanie klas, jeśli widzisz, że te rozbicie jest potrzebne. W tym przykładzie to pokażę.

Chciałbyś się zapewne nauczyć tego wzorca. Zamiast tego przyjrzymy się przykładzie Pizzy. Kod jest do pobranie na końcu artykułu.

Wyobraź sobie, że masz następujący zestaw klas.

MiłośćSerce NR.4 Niedługo będę miał 5 lat doświadczenia zawodowego i mogę się do czegoś przyznać. W swojej karierze miałem dużo momentów, w których moja pasja do programowania prawie umarła.

W takich chwilach czasem się zastanawiam, dlaczego w ogóle lubię programować albo – co gorsza – lubiłem. Wiele razy moja miłość była wystawiana na próbę.

Wiele razy byłem tak wypalony, że rzygałem na samą myśl uruchomienia Visual Studio. Miłość, pasja dobrze ją mieć, ale i ona ma swoje reguły i zasady.

Nie możesz wrzucić serca do jakiejś magicznej maszyny tylko po to, by dostać jakiś wydruk pieniężny. A może właśnie tak trzeba. Przecież za pisanie hobbistycznego kodu nie dostaniesz kasy?

Tags Ostatnio ulepszając swojego bloga miałem proste zadanie. Chciałem przy pomocy swoich własnych znaczników modyfikować tekst w postach.

Nie jest to nic odkrywczego. Blog WordPress ma dużo swoich własny znaczników i tagów, które mają ułatwić ci wstawanie n.p filmików z YouTube albo TED-a.

Ten blog jest napisany w C# przez mnie, a to znaczy, że jeśli czegoś w nim nie ma to znaczy, że muszę to napisać.

ICommandCzęść.2 W poprzednim wpisie stworzyliśmy prostą aplikację WPF, która implementuje Inversion of Control przy pomocy kontenera Castle.Windosor.

Przykład był prosty, ponieważ na końcu powiązaliśmy tylko odpowiednie właściwości do odpowiednich etykiet.

Czas jednak zabrać ten przykład na wyższy poziom, gdyż napiszemy kod, który powiąże metody z odpowiednimi przyciskami,

Aby to zrobić będę musiał mieć klasy implementujące interfejs ICommand. Jak to jednak zrobić w miarę dobrze?

Na początku też zaznaczę, że postanowiłem zignorować fakt, że techniki związane z ICommand posiadają pewien specyficzny styl przesyłania parametrów, jak i rezultatu działania metod.

ThreadingCzęść NR.5 Jak można wykorzystać programowanie aspektowe w pożyteczny sposób?

Interceptory mogą się przydać przy tworzeniu nowych wątków. Pisząc aplikację w WPF lub Windows Forms łatwo zauważyć tę sytuację. Podczas wykonywania jakiejś długiej czynności w kodzie możesz zauważyć, że cały wątek UI został zatrzymany. Oznacza to, że nie możesz ruszyć okna, nie możesz skrolować okna i nie możesz na nic klikać, bo cały wątek odpowiedzialny za to jest zajęty.

IOCCzęść.1 Analizując ruch na swoim blogu postanowiłem zrobić wpis na temat wstrzykiwania zależności i kontenerów IOC, czyli kontenerów Inversion of Control. Dzisiaj skoncentruję się na kontenerze Castle.Windsor, chociaż w przyszłości planuję także użyć Ninject.

Co zrobię w tym wpisie? Zainstaluję Castle.Windsor z NuGet i przygotuję aplikację WPF do nowej architektury.

Push on Tak jest panie i panowie ten blog, ten programistyczny ma 500 wpisów. Gdyby na początku ktoś mi powiedział, że ten prosty pomysł na bloga tak się rozwinie, to bym nie uwierzył. Były przerwy. Były wypalenia. Mimo to, ten moment się właśnie wydarzył.

Od 1 listopada po migracji na MiniBloga i moim powrocie na tym blogu były tylko 413 wpisy. Postanowiłem to nadrobić po moich ostatnich zawirowaniach życiowych. Jak na ironię nie miałem spokoju, ale uparłem się i udało mi się osiągnąć kolejny ważny poziom na tym blogu.

ŻycieAktywny NR.7Wielozadaniowość, czyli robinie wielu rzeczy równocześnie. Zapewne o tym coś słyszałeś. W końcu dobrze byłoby robić wiele czynności w tym samym momencie, aby zaoszczędzić czas. Oczywiście nie wygląda to tak pięknie, jak mogłoby się wydawać. Z drugiej strony wielozadaniowość “istnieje” i może być osiągnięta do pewnego stopnia.

Fakt wielowątkowość naszego umysłu jest bardzo ograniczona. Co więcej, nie każde zadanie może zostać wykonane równocześnie z innym.

Badani naukowe są jednak bezlitosne. Robienie kilku czynności równocześnie oczywiście obniża ich produktywność. Oznacza to, że pracując nad kilkoma rzeczami jednocześnie tylko oszukujemy siebie, że robimy coś lepiej.

PorażkaSerce NR.3 Czy masz serce programisty? Zaraz się przekonamy. Istnieje coś, co musisz mieć w swojej niematerialnej formie by przetrwać coś, czego ludzie boją się najbardziej. Porażki.

Moje życie to w pewnym sensie pasmo porażek. Moje pierwsze prezentacje IT pokazały jak bardzo boję się być na scenie.

Wiele razy jedno słowo przekreśliło cenną znajomość, która mogłaby dać mi w przyszłości lepszą ścieżkę rozwoju.

W życiu zawodowym wiele razy popełniłam błędy, które miały swoje konsekwencje.

Kiedyś ktoś powiedział mi prosto w twarz, że jestem żałosny, jeśli myślę, że kiedyś zostanę osobą, która może uczyć innych programowania.

Tyle tego jest. Popełniłem tyle błędów i odniosłem tyle porażek. Gdy przyjechałem do Warszawy nie byłem gotowy na nic. Nawet na sukces w postaci pracy, bo słuchałem przez wiele lat o tym, jak trudno znaleźć pracę i jak to w tym kraju jest mówiąc po młodzieżowemu zjebane.

KobietySerce NR.2 Co może się okazać największą zmorą programisty? Oczywiści jego życie prywatne, a mówiąc konkretnie, to chodzi kobiety. Wszystko wraca do stereotypu programisty, który jest nerdem i dziwakiem. Nie dotyczy to każdego z nas, ale jest to coś, o czym warto pomówić.

W internecie jest wiele memów na temat samotności, braku poczucia męskości i przysłowiowego walenia konia. Problem na pewno istnieje, skoro jest ciągle ośmieszany w postaci głupich obrazków. 

ŻycieSerce NR.1

Co może decydować o twoim sukcesie zawodowym? Ciężka praca? Spryt? Niestety nie tylko. To jak ci wychodzi w jednej sferze życia jest zależne także od innych sfer. Mówiąc krótko nie możesz być mistrzem programowania, jeśli ignorujesz życie osobiste lub go po prostu nie masz.

Praca to nie wszystko. Do normalnego funkcjonowania potrzebni ci są przyjaciele i chwile luzu niezwiązane z programowaniem, czy innym twoim hobby numer jeden. Wiem, że w innych wpisach pisałem jak ważna jest ciężka praca, ale nie będziesz robił tego cały czas. Poza tym, co z tego, że osiągniesz sukces skoro emocjonalnie potem umrzesz bo zdasz sobie sprawę, że twoje życie prywatne nie istnieje.

Nie jesteś robotem i nawet nie próbuj nim zostać. Musisz się z tym pogodzić, że sukces w twoim życiu zawodowym nie przeniesie się na inne sfery życia i uczyni cię szczęśliwym człowiekiem.

MarketingList NR.6 [Początek listu] *** [Dane osobowe]

Przeszedłem przez administrację serwerami bazodanowymi, administrację sieci i różnego rodzaju inne dziwne rzeczy, które niegdyś były moją podstawą zawodową w call center, bardzo ciężki i burzliwy okres w moim życiu, sporo stresu, ale nie żałuję ani jednej chwili, dzięki temu nabyłem całkiem niezły bagaż doświadczeń, który dzisiaj niejednokrotnie owocuje.

*** [Ciężka praca górą]

Przejdę teraz do głównego tematu, o którym de facto piszę. Chciałbym ułatwić firmom kontakt ze mną, jakoś ciekawie się zaprezentować, zachęcić potencjalnych pracodawców do zapoznania się z moją osobą.

Na co warto zwrócić uwagę? Na jakich stronach warto się prezentować? Myślałem o stworzeniu własnej strony. Nasuwają mi się tutaj już pytania bardziej czysto techniczne. Czy pisać stronę samemu od zera ? Czy jednak nie będzie to problemem, jeżeli skorzystam z jakiegoś szablonu, jeśli już to, gdzie go szukać?

Od razu podkreślę, że moja wiedza głównie trzyma się C# desktopowego z pisaniem aplikacji webowych miałem do czynienia, ale nie uznałbym swojej wiedzy w tej kategorii na tyle prawidłowej, abym mógł się tym szczycić, prezentować. Druga sprawa czas - wartość, której bardzo mi brakuje w życiu :)

Nie uważam, żeby nauczenie się tworzenia stron było stratą tego czasu co to, to nie, jednak jestem w tym momencie na tyle zaabsorbowany projektami, że nie zdołam tego dokonać w rozsądnym czasie.

[Koniec listu]

TreningAktywny NR.6 Nadszedł czas aby napisać o bardzo istotnej rzeczy i bliskiej mojemu sercu – czyli o ciężkiej pracy. Mamy rok 2016 i moje życie zaczyna wyglądać coraz to bardziej przejrzyście. Jednak nie zawsze tak było. Jeszcze w 2011 roku mógłbym siebie skategoryzować jako bezrobotnego człowieka po studiach, który mieszka z mamusią i lubi grać w gry.

Od tych 5 lat dużo się zmieniło. Właściwie to mogę śmiało powiedzieć, że moje życie uległo totalnej zmianie w stosunku do tego, co było nawet dwa lata temu.

Jeszcze dwa lata temu siedziałem w pracy, w której zasuwałem po godzinach. Jeszcze rok temu prawie poddałem swoje wszystkie marzenia, bo czułem, że moja praca niewiele daje, ale po prostu byłem zbyt niecierpliwy. Życie zawsze zmienia się na lepsze, gdy stoi za tym ciężka praca..

Żadna jednak z tych rzeczy nie mogłaby zostać osiągnięta bez ciężkiej pracy. To jest coś, co zmienia twoje życie i twoją karierę. Ciężka praca musi zostać zaakceptowana i nie może być unikana.

Każdy z nas szuka skrótów. Myślenie nad alternatywnymi rozwiązaniami nie jest złe, ale szukanie skrótów nie uwolni nas od ciężkiej pracy. Problem jednak polega na tym, że nie można przeczytać książki, nie czytając jej. Nie można też nauczyć się programowania bez ćwiczeń. Nie ma magicznych pigułek. Musisz siebie wyrzeźbić i niestety to trochę potrwa. Rok, dwa lata, a może nawet 5 lat. Każdy chciałby przeskoczyć ten czas i stać się kimś lepszym. 

1 człowiekList NR.5 [Początek listu] Witaj

Jakiś czas temu znalazłem Twojego bloga, przeczytałem kilka wpisów i mi się spodobało. Potem straciłem go z oczu aż wczoraj trafiłem na niego znów a mówiąc dokładniej na wpis "Jak żyć jako programista". I tak znów zacząłem czytać Twój blog jednak postanowiłem pójść krok dalej i napisać, bo od pewnego czasu chciałbym coś zmienić w swoim życiu a nie bardzo wiem jak się do tego zabrać i po przeczytaniu kilku wpisów na Twoim blogu myślę, że mógłbyś mi pomóc. Nie lubię zaczynać "po amerykańsku" w stylu "cześć wszystkim, mam na imię ****** i jestem informatykiem ..." - "cześć ******..." jednak wypadałoby przede wszystkim się przedstawić więc - rzeczywiście mam na imię ******i jestem mówiąc ogólnie informatykiem.

Mam 37 lat. Przygodę z programowaniem zacząłem dawno temu jeszcze w języku Basic na Atari 65 XL. Potem była przerwa, potem szkoła policealna i kanon nauczania, czyli Turbo Pascal i C++. Potem zacząłem coś kombinować w Visual Basicu i Delphi. Przyszedł czas na studia - skończyłem studia licencjackie w Bydgoszczy Informatyka ze specjalizacją Projektowanie systemów informatycznych. Tu napisałem swój pierwszy "prawdziwy" program za pomocą Borland C++ Builder - w tych czasach (rok 2001-2004) biblioteka VCL Borlanda była dość popularna. Program, który napisałem - była to moja praca licencjacka, obsługa agenta ubezpieczeniowego - program funkcjonalny od początku do końca, nawet dogadałem się z lokalnym przedstawicielem firmy ubezpieczeniowej i zrobiłem to jak należy - wiesz cały ten wywiad z klientem, projektowanie, potem prezentacja szkieletu aplikacji itd... naprawdę mnie wciągnęło.

KwalfikacjaKariera NR.9 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 nierobienia.

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 Toastmasters 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 e-mail i Facebooka. 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.8 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.7 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.6 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.5 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.

FirmaKariera NR.4 Twoje doświadczenie w firmie może być różne w zależności od tego w jakiej firmie będziesz pracował. Ważne jest to, że masz wybór. Nawet na początku kariery masz wybór.

Co najbardziej wyróżnia firmy? Ich wielkość. Twoje doświadczenia będą różne w zależności od tego czy będziesz pracować w małej firmie, w średniej czy dużej.

Każda z tych firm ma swoją kulturę pracy. Styl prowadzenia swojego życia w pracy ostatecznie może zdecydować czy będziesz z niej zadowolony.

Warto się nad tym zastanowić, gdy będziesz wybierał i akceptował oferty pracy.  Łatwo jest wybrać swojego przyszłego pracodawcę na podstawie oferowanej płacy. Ostatecznie jednak środowisko pracy, też jest ważnym parametrem.

Jakie więc są zalety i wady pracy w małej firmie, średniej firmie i dużej firmie.  

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-cię.

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ę cię 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.

Wszystkie Kategorie