Tablice W większości języków programowania tablica reprezentuje układ elementów przypisanych do odpowiedniego adresu w pamięci komputera. W JavaScript tablice takie nie są.

W JavaScript tablica to prosty obiekt zachowujący się jak tablica poprzez wbudowane metody.

Tablice w JavaScript są wolniejsze niż zwykłe tablice. Tablice w JavaScript nie są też używane przez nas prawidłowo. Istnieją w nich pewne pułapki. Musimy się ich wystrzegać. Jak się jednak czegoś ustrzec, gdy się tego nie zna. Oto lista

PodstwowyJavaScript…JavaScript ostatnie lata swojej kariery zawodowej poświęciłem na pracę ze starym kodem JavaScript.

JavaScript nie jest na pewno idealnym językiem programowania. JavaScript zawiera dziwne pułapki, na które każdy programista wpada. Czasem te pułapki są oczywiste, a czasem nie.

W tym wpisie omówię podstawowe zjadacze serc programistów, które zapewne już znasz. Krótkie ich omówienie jednak na pewno oszczędzi Ci wiele bólów głowy.

SOAP XML WCF służy do  tworzenie usług sieciowych w .NET . ASP.NET MVC fantastycznie nadaje się do tworzenia aplikacji sieciowych REST. Co znaczy, że WCF w  wypadku usług typu REST nie jest  już tak bardzo potrzebny. Ma on jednak wciąż swoje miejsce w rodzinie .NET jako framework do tworzenia usług typu SOAP.


Protokół SOAP został stworzony przez Microsoft i mimo swojej nazwy nie jest jednak taki prosty jak mydło.  SOAP wysyła wiadomości wyłącznie w formacie XML. Microsoft stworzył SOAP z myślą o zastąpieniu jeszcze starszych technologii jak DCOM,  czy protokołów binarnych przekazu informacji, jak np. CORBA. (Common Object Request Broker Architecture).  

SOAP dostał swój standard i śmiało można z niego korzystać nawet dziś. Główną jego zaletą jest  większe bezpieczeństwo niż w usługach typu REST. Posiada też wbudowaną obsługę błędów. 

SOAP w swoich komunikatach zwrotnych jak i zapytaniach wymaga dużej ilości informacji w formacie XML. Komunikaty więc są dużo bardziej pojemniejsze niż w usługach REST. Co więcej przez to skomplikowanie powstała idea, aby na podstawie pliku WSDL tworzyć obiekty klas w Javie i w C#, które później za nas zostały przetłumaczone na odpowiedzi lub zapytania XML do usługi SOAP.

Taki styl programowania jest preferowany. Pisanie swojego kodu wysyłającego XML do usługi wydaje się dodatkową pracą, ale czy zawsze tak jest?

WCF I IISMasz nową maszynę testujesz aplikację WCF na swoim serwerze IIS i… i nic bo leci błąd 404.3 – no found.

W czym jest problem?

IIS w ogóle nie wiem jak interpretować plik SVC. Dlaczego tak jest?

Nie masz zainstalowanego WCF w swoim systemie operacyjnym.

SOAP UINarzędzie NR.6 Jak testować swoją aplikację SOAP lub REST? Pisząc swojego klienta? Korzystając z mało intuicyjnych narzędzi  Visual Studio? Teraz nie ma już takiej potrzeby!

Wystarczy skorzystać z narzędzia SoapUI.

SoapUI to fantastyczne narzędzie i szczerze żałuje, że nie poznałem go wcześniej. Służy mi ono jednak od 3 lat jako doskonały tester usług sieciowych.

ŚnijSerce NR.8 Marzenia. Gdzie ja by był teraz gdyby nie miał swojego marzenia o byciu programistą albo o byciu mówcą.  Bez marzenia o pisaniu bloga nie byłoby tego tekstu.

Marzenia są ważne dla każdego, a zwłaszcza dla programistów. Ostatnio zauważyłem u siebie, że mój umysły analityczne i krytyczne działa aż za dobrze. Co oznacza, że każdy nowy pomysł zostaje zabijany w momencie jego powstania. Niestety nie jest to dobre. Ostatecznie nic nowego w moje głowie nie powstało od jakiegoś czasu. Brak pomysłu oznacza brak motywacji, a brak motywacji oznacza brak działania, a brak działania oznacza lenistwo i nudę.

Teraz jak patrzę za siebie  na swoje marzenia widzę jak to wszystko było szalone. Przemawianie jako człowiek, który boi się ludzi. Programowanie jako ktoś kto ledwo rozumie pętlę w PASCALU. Pisanie bloga jako dyslektyk.

Żadne z moim marzeń nie miało sensu. Mogłem te pomysły zabić w momencie ich tworzenia i teraz być jakąś sierotą, która mieszka z mamą w małym mieście jak Biała Podlaska.

SprzedawanieZarobki NR.5 Co tak naprawdę określa nasz status społeczny. Materialne przedmioty, czy to, co mamy w środku i kim jesteśmy. Czy marzenia, zwłaszcza te materialne nie mają swojej ciemnej natury. Wszystko ma swoją ciemną stronę, nawet  każdy zakupiony przedmiot.

Każdy zakupiony przedmiot zajmuje  miejsce. Każdy przedmiot zabiera energię lub ją oddaje. Każdy przedmiot pochłania twoją uwagę, nawet na poziomie podświadomości. 

Reklamy nam mówią, że szczęście można kupić. Niestety prawda jest zupełnie  inna. Każdy przedmiot wiąże się ze stresem - ze stresem, że to, co kiedyś zakupiliśmy w końcu się zepsuje. Pamiętam jak nowo zakupiona AMIGA 1200 zepsuła się po tygodniu użytkowania. Strata pieniędzy i złamane serce moich dziecięcych marzeń po raz drugi.  Przedmioty więc nie powinny określać naszego samopoczucia. Jest to złudne.

Przekonałem się o tym w brutalny sposób. 

W filmie Fight Club Tyler Durden mówi ostro : “Rzeczy, które posiadasz w końcu zawładną tobą”. Moim zdaniem każdy z nas ma rzeczy, które nie są mu potrzebne a utrudniają mu życie. 

Fight Club

Co więcej w moim przypadku niektóre przedmioty zaczęły kojarzyć mi się z etapem życia, o którym chciałbym już zapomnieć. W końcu ten zakupoholizm pojawił się, gdy miałem do wykonania jeden z trudniejszych projektów w  pracy. Zacząłem wtedy też kwestionować wiele rzeczy w swoim życiu i kupowanie starych gier i starych konsol pozwalało mi o tym zapomnieć.

PytaniaPyt NR.1 Cześć! Dzisiaj postanowiłem napisać coś na temat rozmów kwalifikacyjnych. Ludzie prosili mnie o to, od kiedy napisałem wpis na temat szukania pracy w Warszawie po raz pierwszy. Ciekawa lektura dla tych, którzy skończyli studia inżynierskie i szukają pracy w wielkim mieście.

Przejdźmy jednak do pytań. Bo jakie pytania możesz dostać szukając po raz pierwszy pracy jako programista. Jeśli więc szykujesz się rozmowę mam nadzieję, że to ci pomoże.

Pytania są banalne. Postanowiłem na razie opisać te najbardziej oczywiste.

DebugowanieAktywny NR.8 Jestem programistą od 5 lat i pracując – zwłaszcza przy aplikacjach legacy zdałem sobie sprawę jak ważne jest debugowanie kodu. Można by powiedzieć, że debugowanie kodu jest ważniejsze niż jego pisanie. Nie ma co ukrywać w dużych firmach bardziej dbamy o gotowe aplikacje niż pisanie nowych.

Nie ma co ukrywać to będzie główne zajęcie w twojej karierze. Jak jednak tę aktywność zamienić w produktywność.

Debugowanie kodu to nie sztuka.  Debugowanie kodu to cierpienie. Trzeba jednak znaleźć swoją drogą w tym wszystkim.

PłuapkiPyt NR.1 Pamiętam swoje pierwsze przygody z językiem C# i swoje błędy. Pamiętam jak z kolegą pisaliśmy algorytm ewolucyjny i zastanawialiśmy się dlaczego mamy przepełnienie stosu. Zdecydowanie wtedy obaj o czymś zapomnieliśmy.  Często zdarzało mi się zapomnieć, że istnieją inne kolekcję w C# niż tablice. Korzystałem więc z tablic bo przy nich czułem się bezpiecznie i to one były najczęściej używane na zajęciach.

Jak widać nie byłem takim zdolnym programistą w czasach studenckich. Postanowiłem więc zrobić listę pospolitych pomyłek nowicjusza.

MobbingKariera NR.15 Praca programisty wydaje się rajem. Obecnie na LinkedIn prawie codziennie ktoś wysyła do mnie wiadomość z ofertą pracy. GoldenLine ostatnio zaczął mi spamować pocztę z ofertami niby dopasowanymi do mnie. Otrzymuję też wyszukiwane oferty związane z blogiem.

Sytuacja ta trwa już od roku i czuję się bezpiecznie. Żyjąc w Warszawie prawdopodobnie byłbym w stanie znaleźć nową pracę w przeciągu 1 dnia.

Ofert pracy jest dużo. Programistów z doświadczeniem jest niewielu. Pracodawcy więc się starają i stają na głowie aby pokazać, że mają lepsze warunki pracy od konkurencji. Nic tylko się cieszyć.

Wcale jednak nie znaczy, że raj programistyczny jest wszędzie i dla każdego. Mobbing w pracy programisty istnieje. Nikt nie mówi o tym głośnio bo jest to wstydliwy temat dla ofiary. Pomyśl ile codziennie generujemy pozytywnych historii sukcesu, gdzie wszystko się udaje. Gdzie każdy może znaleźć pracę w ciągu jednego dnia. Gdzie to pracodawca rozwija przed nami swój czerwony dywan.

ZmianaKariera NR.14 Czasami przychodzi czas by zmienić pracę. To smutne, ale prawdziwe. Czasami praca, którą obecnie wykonujemy nie daje już nam tego płomienia.

Może jesteś szczęśliwym pracującym człowiekiem i współpracownicy są mili. Możesz pracować w domu, możesz pisać na temat technologii i kodów. Nie zawsze tak jest, ale warto to docenić. Naprawdę zmiana pracy to poważna decyzja, która będzie miała wpływ na to, jak będziesz spędzał swój czas między 8-16.

KrętaczKariera NR.13 Zanim opiszę ten problem warto zaznaczyć ważny punkt.

Programowanie jest niezwykłe trudne. Nie ma skrótów  do zostania jakimkolwiek programistą. Inteligencja, mądrość, śmiałość, ciężka praca, popełnianie błędów, uczenie się na podstawie tych błędów. Programowanie to także umiejętność nauki i przyswajania wiedzy z różnych źródeł.

Niestety są ludzie, którzy wierzą w skróty. To będzie o nich.

ChceszList NR.9 Witam. Mam na imię ****** i jestem osobą dosyć młodą. W tym roku kończę 18 lat. Chodzę to technikum informatycznego, w którym żadnych problemów nie mam.

Chciałbym zacząć przygodę z programowaniem. Pomimo, że zostały mi jeszcze 2 lata nauki już myślę o studiach programistycznych. Wiedzę przyswajam dosyć łatwo chociaż zależy to od przedmiotu i rodzaju wiedzy. Tylko nie wiem od czego zacząć .

Czym zajmować się na początku. Czego uczyć się pierwszego i czego w następnej kolejności. Chciałbym prosić o poradę dotyczącą początków z programowaniem.

Gorzej Programowanie mogłoby być gorsze? Programowanie wciąż przechodzi swoją ewolucję. Narzędzia, języki, biblioteki nie są idealne. Mimo to, warto być wdzięcznym za to, co mamy. Łatwo narzekać na obecne czasy, gdy człowiek nie jest świadomy tego, jak programowanie wyglądało kiedyś. 

Każdy miał swoje najgorsze doświadczenia. Każdy ma swój najgorszy język programowania? Warto jednak się zastanowić i rozszerzyć swoją perspektywę.

Co to znaczy najgorsze doświadczenie? Co to znaczy najgorszy język programowania?

ŚmierćKariera NR.12 Flash umarł. No co mamy rok 2017. Dla wielu programistów oznaczało to koniec wielu produktów, a nawet koniec i początek nowej kariery. Pomyśl ktoś 10 lat inwestował w język ActionScript i technologię FLASH, aby dość do tego końca. Miałem kolegę na studiach, który był zakręcony w rozwiązaniach Flash, Flex i ColdFusion. Jak się domyślasz on już w tych technologiach nie programuje.

Mnie osobiście coś takiego się zdarzyło na początku kariery. Dwa lata przed szukaniem pracy w Warszawie inwestowałem w naukę dwóch technologii ASP.NET i Silverlght.

PominięcieKariera NR.11 Raz na jakiś czas pojawiają się nowe: Język programowania, Framework, Metodologia.

Zdobywają one potem popularność jak wszystko dzisiaj. Strach czujemy od zawsze na temat jednego problemu. Co, jeśli przegapię tę falę i moje zdolności przestaną być użyteczne na rynku pracy. Nikt nie chce być starym dziadem.

Świat JavaScript powędrował z takim butem w 2016 roku, że osobiście zacząłem kwestionować, czy zasługuje na tytuł web developera.

Dynamic C# 4.0 przedstawił nowy typ “dynamic”. Istnieje on już od pewnego czasu, ale pytanie dlaczego nie jest tak często używany? Odpowiedź jest oczywiście prosta, ponieważ słowo kluczowe dynamic przydaje się w wybiórczych przykładach.

Przykładowo typ dynamic jest używany do wiązania danych na samym dnie C#. Kiedyś te operacje wykonywały się na napisach bądź obiekcie System.Object, teraz to wszystko wędruje do dynamicznej zmiennej, która może określać wszystko.

Dynamic też przyda się bardzo przy operacjach z bibliotekami COM. COM w końcu to system, który jest w połowie dynamiczny. Wiele metod COM zwraca więc dynamiczny obiekt. Przed C# 4.0 zostawał zwracany obiekt, co trochę komplikowało sprawę. Trzeba było wtedy rzutować i zgadywać czym ten obiekt jest.

W sumie tak samo jest z typem dynamic, ale jeśli mam pewność, że wszystkie obiekty umieszczone w tym typie zawsze będą miały tę jedną wspólną właściwość, to wszystko jest w porządku.  Właściwie typ mnie nie interesuje bardziej zakładam, że dana właściwość lub pole pojawią się bez względu na wszystko. 

PierwszyList NR.8 Hej,

Mam pytanie blogerskie - co było lub co jest Twoim problemem numer 1? Co było najtrudniejsze na początku? I jakie było rozwiązanie tego problemu?

Chodzi mi o kwestie techniczne jak i wizualne, czy też te związane z czytelnikami.


[Koniec listu]

Jaki był problem numer jeden? Ciężko wybrać jedną przeszkodzę w tworzeniu tego bloga. Myślę, że będzie dobrze jak poruszę parę kwestii. 

Jest Moc Nadszedł czas, aby poszerzyć swoją wiedzę na temat C#. Istnieje kilka ciekawych funkcjonalności, które mogą ci ułatwić pracę z kodem

Raz na jakiś czas warto odnowić swoją wiedzę.

KsiążkiKariera NR.10 Każdy kiedyś zaczynał swoją przygodę z programowaniem. W roku 2010 kupiłem wiele książek do C#, ASP.NET i wiele z nich okazało się niestety śmieciem nie wartym nawet papieru toaletowego.

Na początku roku 2016 zrobiłem wielki porządek w domu i wyrzuciłem niektóre książki na makulaturę.  Nie ma sensu takich książek trzymać. Chociaż przyznam, że niektóre z nich służyły mi za podstawkę do telewizora.

Dlaczego piszę o tym, że warto się zastanowić jakie książki kupujemy, a nawet ściągamy. Ostatecznie bezużyteczna książka zabiera nam czas i tworzy pewien chaos.

Pokażę więc niektóre z tych książek, które kupiłem w 2010 roku, a które bardziej mi przeszkodziły na ścieżce kariery niż pomogły.

WypalenieSerce NR.7 Większość z nas podchodzi do nowego projektu z wielkim entuzjazmem. Niestety z czasem ta pasja gaśnie i wywołuje u nas różne formy obrzydzenia. Większość ludzi nazywa ten stan wypaleniem. Czym ono jednak jest? Zwłaszcza w branży programistycznej.

W swojej karierze zawodowej liczącej już 5 lat wydaje mi się, że wypaliłem się co najmniej ze 3 razy. Nie liczę wszystkich przypadków  ponieważ uważam, że są one w większości czymś normalnym.

Jak się w ogóle wypalamy.

2017 JS Jak się uczymy JavaScriptu? A raczej czym jest dzisiaj JavaScript. To jest dobre pytanie ponieważ w ostatnich latach znowu dużo się zmieniło i mimo, iż staram się śledzić nowinki mam wrażenie, że zaspałem jakieś 2 lata.

Jak się okazuje 2 lata to bardzo dużo w tej branży i jak się okazuje, znam na tyle dobrze JavaScript, by wykonywać swoją pracę, ale czy znam na tyle dobrze JavaScript, aby nie zgubić się w dzisiejszym świecie. Nie jestem futurystą (nie mam tego demona), ale co robić, gdy przyszłość zlewa się z teraźniejszością bez przerwy w świecie programowania w JavaScript.

Programuję w C# i strony internetowe nie są moją główną działką, ale jestem w szoku z faktem co się obecnie dzieje.

Zadaję sobie pytanie czy ty jesteś web developer na czasie. Ja piszę ten wpis w  grudniu w roku 2016, ale dla JavaScriptu technicznie jest już 2017. Szkoda, że to nie może biec jeszcze szybciej.

PracoholizmSerce NR.6 W poprzednich wpisach mówiłem o tym, jak ważna jest ciężka praca. Z tą ciężką pracą wiąże się także pewien problem. Problem, który jest zawszę osobisty i emocjonalny. Praca jest fundamentem każdego sukcesu, ale może się też stać narzędziem do walki z problemami innego rodzaju. Dlatego, aby wszystko miało sens muszę zacząć od swojej historii.

Rok 2016 nie był dla mnie przyjemnym rokiem. W roku 2015 zacząłem kwestionować swoje marzenia o byciu mówcą oraz “dobrym” programistą.  Rok 2014 był nowym początkiem i również końcem wielu nieprzyjemnych przygód. Rok 2013 był emocjonalną kolejką pomiędzy ludźmi, których wtedy znałem.

W każdym roku pojawiała się jakaś “sprawa”, która zmuszała mnie aby iść dalej, a z nią jakaś forma pracoholizmu. Później ten pracoholizm przemienił się w bombardowanie się różnymi zajęciami tak, abym mógł czymś zająć swój umysł.

Praca więc stała się formą  lekarstwa na bardziej głębsze problemy. Pracoholizm nie wydaje się wielkim problemem, dopóki te lata ucieczki nie zaczną się odbijać na tobie w inny sposób.

ASP.NET CORE ASP.NET Core w końcu wgrzebał się ze swojej wersji beta i istnieje w wersji 1.0.X. Czy warto się nim zainteresować? Na pewno ponieważ wprowadza dużo zmian do frameworku ASP.NET MVC.

Udało się zebrać 11 powodów za tym frameworkiem, więc jest dużo zmian na lepsze. Z drugiej strony warto też pamiętać, że jest to wersja 1.0.X i ciężko stwierdzić czy framework dobrze by sobie poradził w środowisku produkcyjnym wielkiej firmy.

Moim zdaniem jednak warto zacząć swoją przygodę z programowaniem w ASP.NET Core ponieważ ta technologia szybko dojrzeje i na pewno nie zostanie skasowana bądź zastąpiona czymś nowym.

Do przodu Czas na podsumowanie roku 2016. Jeśli chodzi o prelekcje to w tym roku okazało się, że moje marzenie o byciu mówcą, który jeździ po kraju i przemawia ma swój potencjał. Jestem z tego faktu bardzo szczęśliwy, bo mobilizuje mnie to do jeszcze większego wysiłku. W roku 2015 moje prelekcje średnio mi wychodziły i zacząłem mieć wątpliwości.

Dziś widzę u siebie postęp.

W końcu moje doświadczenia z Toastmasters przełożyły się na wystąpienia publiczne dla programistów.  Aby bardziej zmotywować się do dalszych działań postanowiłem stworzyć listę moich wystąpień z  roku 2016.

Postanowiłem nie dodawać do listy konwentów fantastyki Polkon i Pyrkon ponieważ tam nie przemawiałem. W liście prelekcji, czyli mów także nie uwzględniłem wystąpień w klubach Toastmasters. Gdybym to zrobił to ta lista urosłaby dwukrotnie. Technicznie licząc od czerwca, to w każdy poniedziałek w klubie Toastmasters Vistula Leaders udzielałem się w jakiś sposób.

Gdzie więc byłem i przemawiałem w roku 2016.

Currying howCzęść NR.8 W poprzednim wpisie widzieliśmy przykłady jak Currying działa. Przykłady te były opisane na zmiennych zadeklarowanych, albo jako anonimowe metody, albo jako wyrażenia lambda. Zmieniliśmy te funkcje do postaci łańcucha wywołań funkcji, które przyjmują zawsze tylko jeden parametr.

Jak to jednak by wyglądało w C# , w kontekście klas. Jak mieć metodę Currying w stylu języków funkcjonalnych.

Jakie ja napotkałem problemy pisząc ten prosty przykład edukacyjny.

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.9 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ł ciebie 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 maja 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 konterze 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ście jego życie prywatne, a mówiąc konkretnie 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 ciebie 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.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ą.