13/07/2011

Londyn - pogotowie

Home

Dzisiaj idąc do pracy byłem świadkiem jak pogotowie udzielało pomocy kobiecie, która zasłabła na moście London Bridge. Co w tym takiego ciekawego, ze postanowiłem o tym napisać? Moją uwagę zwrócił środek transportu jakim przyjechał ratownik czyli rower. Słyszałem o tym ale po raz pierwszy widziałem.

Temat podrążyłem trochę bardziej i dowiedziałem się, że w Londynie pogotowie posługuje się oczywiście samochodami ale również motocyklami (motorcycle responders) i rowerami (cycle responders). Dwa ostatnie środki transportu używane są w najbardziej ruchliwych/zakorkowanych dzielnicach tak aby nawet w godzinach szczytu dotrzeć do poszkodowanego w jak najkrótszym czasie. Za takim rowerowym pogotowiem wysyłany jest również ambulans. Jeśli jednak okaże się, ze poszkodowany nie musi zostać przetransportowany do szpitala to ratownik może odwołać wyjazd. Dzięki takiemu podejściu, od momentu wprowadzenia pogotowania rowerowego (10 lat temu) ambulanse musiały wyjechać o 20 tysięcy razy mniej, co przekłada się przecież na konkretne pieniądze. Inny niespotykany w Polsce "wynalazek" to Ambulance community responder czyli jednoosobowe pogotowie samochodowe, w którym pracują ochotnicy. Ich celem jest dotarcie do pacjenta i utrzymanie go przy życiu, aż do przybycia ambulansu, których liczba jest ograniczona.

O Brytyjskiej służbie zdrowia słyszałem dwie opinie, ze jest zła albo, że jest bardzo zła. Mam nadzieję, ze nie będę miał okazji tego zweryfikować ale przynajmniej pogotowie wygląda tutaj na dobrze zorganizowane i sprawnie działające.

Linki do poprzednich postów z serii na temat życia w Londynie:

10/07/2011

Londyn - ceny jedzenia

Home

Dzisiaj wrócę do tego jak żyje się w Londynie, a konkretniej do cen artykułów spożywczych i innych. Trochę zakupów już zrobiłem i na podstawie paragonów sporządziłem listę wybranych produktów wraz z cenami w supermarketach (Tesco, Lidl, Sainsbury's). Lista ta znajduje się na końcu postu. Oczywiście nie jest kompletna ale pi razy oko pozwala zorientować się w poziomie cen. Po miesiącu pobytu sporządzę natomiast podsumowanie ile przez ten czas kosztowało mnie jedzenie.

Czy jest drogo? Trochę na pewno ale ogólnie możemy być dumni bo ceny w Polsce z pewnością osiągnęły Europejski albo prawie Europejski poziom. Szkoda, że to samo nie dotyczy pensji :) Dodam jeszcze, że dość powszechne są promocje rodzaju kup 3 paczki wędliny, a zapłać za dwie co przy większych zakupach pozwala znacząco obniżyć ich koszt.

Sporo droższe jest na pewno żywienie się na mieście np.: za kebab zapłaciłem 5£, za narodowe danie Brytyjczyków czyli Fish&Chips 10£, a za świeżo zrobioną kanapkę z szynką (takie 2 trójkąty) 3.5£. Duży kubełek ryżu z kurczakiem curry lub zestaw obiadowy Sushi w sieciówce Wasabi (bardzo polecam) to koszt odpowiednio ok. 5£ i ok. 6,5£. Są to ceny z centrum Londynu, więc z pewnością trochę zawyżone ale tak czy inaczej jest drożej niż w Polsce. Jeśli chodzi o bardzo ważną rzecz czyli cenę piwa to 1 pinta (~568 ml) w pubie kosztuje ok. 3,5£. Do tematu piwa i pubów wrócę jeszcze później.
  • Coca cola 2L 1,5£ - 1,89£
  • Woda mineralna 2L 0,45£
  • Piwo 0,81£-1,1£
  • Sok pomarańczowy 1 L 1,19£ - 1,56£
  • 1 kg jabłek 1,5£
  • 1 kg pomidorów 1,99£
  • 1 kg cebuli1,2 £
  • 1 banan 0,18£
  • Mała puszka pomidorów 0,41£
  • Słoik ogórków konserwowych 0,99£
  • Mały słoik oliwek 0,59£
  • Paczka Spaghetti 0,79£
  • 0,5 kg soli 0,15£
  • 50g pieprzu 0,55£
  • 0,5 kg wołowego mięsa mielonego 2,69£
  • 4 steki wieprzowe (nie pamiętam wagi, tak na 2 obiady) 3,29£
  • Chleb pełnoziarnisty 1,25 £
  • Zupka w proszku 0,19£
  • Czteropak jogurtów Activia 1,66£
  • masło 1,6£
  • 1 Kg paczka frytek McCane 1,86£
  • Paczka wędliny 140g 1,15£
  • 15 jajek 1,25£
  • 1 kg proszku do prania Persil
  • batonik Snicker 0,50£ - 0,60£


Linki do poprzednich postów z serii na temat życia w Londynie:

07/07/2011

Bug w Visual Studio

Home

Niedawno spotkałem się z zabawnym bugiem w Visual Studio. Zauważyłem go w VS 2005, ale udało mi się go odtworzyć w VS 2010, zresztą nie jest to trudne. Poniżej bardzo prosty kawałek kodu, który pozwoli wyjaśnić o co chodzi:
public class Fun
{
  private string s = null;

  public void Test(string s)
  {
    Test2();
  }


  public void Test2()
  {
    Console.WriteLine(s);
  }
}
...
new Fun().Test("Ala ma kota");
Stawiamy pułapkę na początku metody Test oraz Test2 i uruchamiamy program. Po zatrzymaniu programu na pierwszej pułapce sprawdzamy wartość parametru s oraz prywatnej składowej klasy o tej samej nazwie. Otrzymamy taki wynik:



Powtarzając tą samą operację po zatrzymaniu programu na drugiej pułapce otrzyma natomiast taki wynik:



W "magiczny" sposób składowa prywatna, która powinna mieć wartość null przyjęła nagle wartość "Ala ma kota". Analogicznie parametr s przyjął wartość null zamiast "Ala ma kota". Na tym nie koniec. Poniższy obrazek pokazuje jak środowisko VS raportuje NullReferenceException i równocześnie pokazuje, że podejrzana referencja nie jest pusta.



Oczywiście nie ma w tym żadnej magii. Moim zdaniem to ewidentny bug w Visual Studio, spowodowany tym, że środowisko nie uwzględnia zasięgu obowiązywania składowych klas czy też parametrów metod. Z drugiej strony nazywanie w taki sam sposób zmiennych lokalnych, parametrów czy składowych klas, których zasięgi leksykalne pokrywają się, nie jest dobrym pomysłem bo prowadzi do bałaganu i pomyłek. W każdym razie wbrew pozorom w szale debugowania łatwo się na to złapać.

06/07/2011

Londyn - początek

Home

Życie podąża różnymi ścieżkami, a mnie ostatnio przywiało do Londynu. Zawsze lubiłem czytać o życiu i pracy w innych krajach dlatego postanowiłem, że korzystając z okazji będę dzielił się swoimi wrażeniami na blogu.

Zacznę od tego, że jestem w podróży służbowej, a więc jestem w tej komfortowej sytuacji, że przyjechałem na gotowe. Z tego powodu nie mogę jednak opisać z autopsji jak wygląda szukanie pracy czy mieszkania w Londynie. Skupię się, więc na innych rzeczach: ile kosztuje mnie życie z wyłączeniem kosztów około mieszkaniowych, jak wyglądają dojazdy do pracy, czy miasto mi się podoba itd. Tym samym mocno odbiegnę od zwyczajnej tematyki bloga ale mam nadzieję, że się spodoba. Posty na ten temat chciałbym publikować co kilka dni ale będzie to raczej zlepek luźno powiązanych z sobą wpisów niż z góry zaplanowana seria.

Na początek kilka zdań o tym jak idzie mi dogadywanie się z autochtonami. Wyjeżdżając do Londynu miałem z jednej strony wiele powodów sądzić, że nie będę miał z tym większych problemów ale miałem również trochę obaw. Jeśli ktoś chciałby porównać swój poziom znajomości angielskiego z moim to uczę się go od czasów podstawówki przy czym intensywną naukę zacząłem tak naprawdę w liceum. Mam też zdany egzamin CAE. Do tej pory angielskiego używałem głównie do czytania dokumentacji technicznej, książek, forów czy blogów. Rzadziej pisałem po angielsku, a już bardzo rzadko miałem okazję rozmawiać po angielsku, w szczególności na tematy inne niż techniczne.

Przechodząc do setna to po tych kilku dniach pobytu muszę powiedzieć, że jest dobrze. W przeważającej liczbie przypadków nie mam żadnych albo prawie żadnych problemów z porozumiewaniem się po angielsku. Równocześnie zdarzyło się jednak, że w czasie rozmowy, pomimo poproszenia o powtórzenie, z powodu akcentu nie byłem w stanie wyłowić z wypowiedzi bardzo wielu słów i mogłem zrozumieć tylko ogólny sens wypowiedzi. Mam jednak nadzieję, że to tylko kwestia czasu i osłuchania. Muszę również przyznać, że jestem mile zaskoczony ponieważ większość do tej pory spotkanych przeze mnie osób nie mówi z bardzo silnym akcentem, który utrudniałby zrozumienie.

Jeśli chodzi o mówienie to otrzymałem nawet komplement od rodowitego Anglika, że mój angielski jest bardzo dobry :) Co prawda moim zdaniem rozmawiając z rzeczonym Anglikiem popełniłem sporo błędów gramatycznych i czasem brakowało mi słów ale to pokazuje, że najważniejsze to żeby się nie bać i mówić, mówić i jeszcze raz mówić. Dla mieszkańców danego kraju, w tym przypadku dla Brytyjczyków, najważniejsze jest przecież to, że mówi się w ich języku, a więc nie powinniśmy być dla siebie zbyt surowi. To przypomina mi anegdotę jaką opowiedział mi kolega z Polski. Otóż kiedy ubiegał się o pracę to odbył rozmowę z headhunter'em, który stwierdził, że z tym jego angielskim to mogło by być dużo lepiej, że popełnia błędy itd. Pomimo sceptycyzmu headhunter'a odbył rozmowę z Anglikami, a oni nie mieli zastrzeżeń i go zatrudnili. Dodam jeszcze, że jego angielski jest moim zdaniem lepszy od mojego.

Na koniec osobom, które wyjeżdżają za granicę i podobnie jak ja rzadko rozmawiają po angielsku polecam przed samym wyjazdem wykupić kilka godzin konwersacji z lektorem aby się rozgadać. Ja tak zrobiłem i sądzę, że pomogło.

09/06/2011

Bardzo wymagająca rekrutacja 2

Home

W ostatnim poście opisałem przebieg pewnej rekrutacji, w której uczestniczyłem, aż do rozmowy z kierownikiem projektu. Post ten stanowi dokończenie tego tematu, a w szczególności zawiera odpowiedź na pytania jakie pojawiły się w komentarzach.

Po jakimś czasie po rozmowie z kierownikiem projektu, w tej chwili już nie pamiętam szczegółów, zostałem zaproszony do kolejnego etapu rekrutacji. Tym razem musiałem pofatygować się do innego miasta na serię rozmów z przedstawicielami firmy z zagranicy. O takiej konieczności zostałem zresztą poinformowany dużo wcześniej i dlatego również na każdym z wcześniejszych etapów rekrutacji była sprawdzana moja znajomość angielskiego. Nie ukrywam, że taka podróż nie do końca mi się podobała ale ponieważ praca wyglądała bardzo obiecująca to zdecydowałem się na wyjazd.

Na rozmowę pojechałem samochodem ze względu na elastyczność, jadę kiedy chcę, nie przejmuję się godziną odjazdu pociągu... Decyzja była dobra i zła. Zła ponieważ 6 godzin jazdy to męcząca sprawa, a dobra bo pociągiem nie byłoby wiele krócej, a musiałbym jeszcze płacić za taksówkę itd. Na rozmowę pojechałem dzień wcześniej aby się porządnie wyspać. Nocleg miałem prawie za darmowo, a za benzynę zwrócono mi pieniądze. Tutaj dodam, że z perspektywy uważam, że po tak długiej jeździe samochodem, a chyba nawet pociągiem porządny odpoczynek to konieczność. Innymi słowy nie ma sensu umawiać się na rozmowę o pracę tuż po długiej podróży. Zapewne można wypaść dobrze ale jestem przekonany, że zawsze będzie to gorzej niż kiedy będziemy wypoczęci.

Rozmowy z przedstawicielami z zagranicy trwały 3 godziny. W sumie odbyłem trzy rozmowy. Każda z nich była mocno techniczna ale dotyczyła trochę innych rzeczy. Rozmawiałem o algorytmach np.: programowanie dynamiczne, implementacji funkcji wirtulanych w C++, złożoności obliczeniowej, a także o rzeczach bardziej biznesowych. Muszę przyznać, że po tych rozmowach nabyłem większej pewności co do mojego mówionego języka angielskiego. To jednak co innego rozmawiać po angielsku na wczasach czy prowadzić luźną rozmowę, a co innego mieć kilkugodzinną rozmowę o pracę w tym języku z ludźmi, z którymi w inny sposób sie nie dogadasz.

Z przebiegu tych rozmów byłem zadowolony, a moje wrażenie zostało wkrótce potwierdzone bo zaproponowano mi pracę. Tutaj dodam, bo zapomniałem o tym wcześniej napisać, że rekrutacja dotyczyła stanowiska programisty czy jak to się nazywało w nomenklaturze tejże firmy. Z tą istotną różnicą, że było to stanowisku tzw. programisty algorytmicznego czyli takiego, który zajmuje się na co dzień przede wszystkim implementacją i analizą algorytmów np.: data miningowych, sortowania itp., a nie realizacją typowo biznesowych wymagań.

Dalszy etap rekrutacji to oczywiście negocjacje, które trwały dość długo (dwa spotkania, rozmowy telefoniczne). Jak się skończyły? Finalnie odrzuciłem ofertę pracy. Czemu? Wbrew pozorom nie chodziło o kwestie finansowe, a na pewno nie miały one decydującej roli. Głównym argumentem przeciw były powody natury rodzinno osobistej. Co tu dużo mówić, przeprowadzka do innego miasta kiedy całe życie spędziło się w Warszawie, ma się tutaj rodzinę, przyjaciół, pracę, mieszkanie i jest się zadowolony z życia to bardzo ciężka decyzja. Pozostaje mi tylko żałować, że oferta nie dotyczyła pracy w Warszawie.

Jako podsumowanie chciałbym wymienić te cechy/zalety tego procesu rekrutacyjnego, które spowodowały, że go zapamiętałem:
  • Bardzo kompetentne osoby sprawdzające wiedzę techniczną.
  • Dyskusja, a nie tylko ocena przedstawionych przeze mnie rozwiązań.
  • Praca domowa do zrobienia.
  • Sprawdzenie znajomości algorytmów i rozwiązywania zadań algorytmicznych.
  • Prowadzenie części rozmowy w języku angielskim.
  • Szczerość w odpowiedziach na moje pytania nawet jeśli odpowiadający wiedział, że taka odpowiedź może mnie zniechęcić.
  • Jeśli firma wkłada tyle wysiłku w znalezienie pracowników to znaczy, że planuje dłuższą współpracę.
  • Jeśli firma wkłada tyle wysiłku w znalezienie pracowników to znaczy, że potencjalni współpracownicy są bardzo kompetentni.
Opisana rekrutacja jest dla mnie wzorem rekrutacji dobrze sprawdzającej umiejętności i wiedzę technologiczną kandydata i porównuję do niej inne. Nie twierdzę jednak, że zawsze powinno to wyglądać w taki sposób. Nie każdej firmy na to stać, a po drugie nie zawsze potrzebne jest tak gruntowne sprawdzenie potencjalnego pracownika. Każdy proces rekrutacyjny na stanowisko programistyczne powinien jednak charakteryzować się kilkoma rzeczami (łatwymi do osiągnięcia):
  • Pisanie jakiegoś kodu przez kandydata.
  • Test z wiedzy technicznej.
  • Rozmowa z osobą techniczną i biznesową.
  • Sprawdzenie znajomość języka angielskiego przynajmniej w stopniu pozwalającym czytać dokumentację.