Open Source makes you a better human being?

Last days I spent a lot of time with .NET developers, I spent many hours chatting with my friend’s boyfriend – always arguing about differences between Open Source model and “Closed Source” model of coding. There was no doubt that the decision is far more important than just choosing if you sell or give your work. This choice determinates the way you work, learn, teach, earn money, live (?). Both models have their pros and cons, I’m devoted to Open Source, they’re not (even they really appreciate it). I was wondering what’s the real difference and if there is any. A difference that would make my choice anyhow “better” than their choice.
First thing I see is that all of them are sure that they understand the reasons behind Open Source, and all of them are wrong. They often repeat that “I’m young and enthusiastic” and they were the same many years ago. Well, it doesn’t answer why Novell, IBM or Nokia plays in our game. They all greatly underestimate the power of something that Asiego called “having fun of what you’re doing” – no, not some slogan, a real, great, fun. They’re all a bit blind – they see coding just as a method to get money, nothing more. They might like it or not, but, from what they’re saying, they wouldn’t code if they couldn’t get money for this – so it’s something completly different from most Open Source movement!!! And it’s a huge difference. Second thing is that they can only imagine applications that they can write. They don’t have any Great Ideas for Computer Software which could be created by a huge group of people. Probably because their minds work in a simple relation – every idea has one If statement described as “Can I get money from this idea?”.

But that’s not what I wanted to write here. It doesn’t give me the point I was looking for. And suddenly, yesterday, I found it. They are at the end of a blind alley of coding. No matter if they are 20, 25 or 40 years old. Why? Because none of them asked any question during this long discussions! I was a bit shocked when I discovered that. I made a test and checked my theory – 100% success!
People who’re working on closed source software doesn’t ask questions. They’re not interested in anyone else ideas, knowledge OR they’re sure they know everything. Both cases are just stupid in my humble opinion.
Why is it so important? There is a theory of Memes and Ian Steward and Jack Cohen, in “The Science of Discworld II” used a term “Extelligence” to describe the merged intelligence of humanity. They proved that individual human being has very limited resources and it’s not possible to evolve too far with such small brain. But having extelligence, united intelligence of all human beings we can “reach the stars”. The base of extelligence is a share of knowledge between humans. Open Source is an expert in this game. Closed Source teaches not to share anything – including ideas.

So working for Open Source you must share ideas and knowledge with other people – it’s our way to improve product. All features in our products comes from complex process of selecting ideas from hundreds people who write them down. We learn this thanks to open source, and we can use it elsewhere making our life better, happier.

There is also one more reason – very important for me. Open Source people works with mentors, authorities, people who are a real guru’s for us all. It makes us all modest. We are safe from falling in infatuation, from cheating ourselves that we are gods. I can clearly imagine someone who’s working on his own, without sharing anything, any knowledge, selling his very similar products and getting the feeling that he knows everything. That he is the best. And what is most important – that he doesn’t have to learn. To study. To improve.
Of course, you can find exceptions. rustic Open Source people and charm Microsoft developers 😉 – but I feel that this theory fits my experiences with both kind of developers.

Once you stop learning, when you can’t find motivation to try, experiment, test, create something for fun, learn – who you are? Where do you go? It means that you won’t be any better – and others will overtake you in a minute.

And how can you learn in Closed Source model? You must buy a curse or learn from tutorial – both ways are not funny and you’re quite alone during this process. In Open Source model you learn with others, from others, giving your contribution in reward – it’s a great deal – both sides win + users. And you code together. So you’re more social than boring, sad, tired of coding, closed source guy who don’t want anything from life beside getting money for selling someone his secret code once more.

Well, mostly, that’s all. What do you think? Did I miss some important part in my theory?

Szukanie pracy w branży IT [c.d.]

Po lekturze wpisu na blogu patrysa postanowiłem dodać kilka swoich rad, jakoże jestem świeżo po przeglądzie ofert.

Wstęp – dowiedz się czego szukasz

Zanim wyślesz CV musisz wiedzieć czego chcesz. Jaka praca Ciebie interesuje? Jakie są Twoje potrzeby finansowe? Jakie są Twoje możliwości czasowe?
Pamiętaj, że w trakcie rozmów kwalifikacyjnych, prowadzący rozmowe będą starali się zaoferować Ci jak najmniejszą pensję – to logiczne. Jeśli zgodzisz się pracować za 1000 zł, to po co płacić Ci 2000?
Zastanów się – ile musisz zarabiać, żeby móc godnie i normalnie żyć. Potem w trakcie rozmowy pamiętaj o tym, i nie daj się skusić niższą pensją, w zamian za możliwość pracy “w młodym, dynamicznym zespole” oraz obietnicą “renegocjacji pensji za kilka miesięcy”. Pracodawcy, tak naprawde, opłaca się zaoferować Ci kwotę, która spowoduje, że nie będziesz szukał(a) dodatkowych zleceń, robót, jakiejś “fuchy” – wytłumacz mu to! Wielu polskich pracodawców zupełnie tego nie rozumie.

Zastanów się – ile kosztuje Twój czas? Twoje poświęcenie? Ile możesz zaoferować? Jak siebie cenisz?

To bardzo ważne. Musisz zrozumieć, że nie jesteś kimś “gorszym”, ponieważ szukasz pracy. Forma rekrutacji, polegająca na “interview” w siedzibie firmy, oraz sytuacja, w której od osoby z która rozmawiasz zależy czy będziesz miał prace i za ile, powoduje, że naturalnie osoba szukająca pracy czuje się “gorsza” od szukającego.
No i cóż. Jeśli nie posiadasz żadnego doświadczenia, a tak naprawde, Twoim głównym zyskiem w nowej firmie, będzie to, że zaczniesz się uczyć pracy w warunkach “bojowych” to tak rzeczywiście jest. Jeśli posiadasz doświadczenie, umiejętności, oraz wiedzę, którą oferujesz pracodawcy wraz ze swoim czasem pracy, to musisz zrozumieć, że taka relacja nie istnieje. Tak samo Ty szukasz pracy, jak on szuka pracownika. Tak samo on oferuje Ci pieniądze, jak Ty oferujesz mu swoją wiedzę. I, zwłaszcza w polskich warunkach istnieje szansa, że to Ty oferujesz więcej! Moi potencjalni pracodawcy za każdym razem po rozmowie z żartem wspominali teksty poprzednich kandydatów, ludzi wyraznie bez doświadczenia, bez wiedzy, zagubionych. Nie zapominaj, że być może jesteś najbardziej interesującym kandydatem – i oni nie dadzą po sobie tego znać. Nie uginaj się, nie mów proszącym tonem. Miej godność i patrz na ich ofertę trzeźwo.
Zresztą, niezależnie od Twojego doświadczenia, posiadasz unikalną możliwość – szukasz pracy w branży IT. A to oznacza, że masz 10 razy więcej ofert niż inni.
Jeśli jeszcze na dodatek mieszkasz w dużym mieście (zwłaszcza Warszawa, Kraków lub Wrocław) to Twoja sytuacja jest naprawde dobra. Prawdopodobnie z samej grupy pl.praca.oferowana możesz znaleźć więcej ofert niż masz czasu na jeżdżenie na rozmowy kwalifikacyjne!
Jeśli mieszkasz w mniejszym mieście, ale masz dobrą ofertę dla pracodawcy, pamiętaj, że pracodawca może zaoferować Ci pakiet relokacyjny.
Przygotowując się do szukania pracy przede wszystkim wyceń swoje CV. Co w życiu robiłeś? Ile projektów? Jakich? Co umiesz? Ile lat doświadczenia masz w branży?
Im większe doświadczenie, tym oczywiście więcej możesz żądać. Pamiętaj też, że studia liczą się znacznie mniej niż choćby mały udział w projekcie Open Source! Nie żartuję. Moje CV w połowie składa się z opisu pracy przy tych projektach, a zeszłoroczna oferta mojej firmy, choć wygląda na unikalną, tak naprawde jest tylko bardziej “świadoma”. Pracodawce interesuje czy pracowałeś(aś) w stresie, w grupie, solo, czy projektowałeś aplikacje, czy pisałes w wielu językach… A nie czy zrobiłeś totalnie abstrakcyjny projekt rozwiązujący drzewa Hanoi dla prof. Iksińskiego.

Rozmowa kwalifikacyjna

Po pierwsze. Nie przesadzaj z ubieraniem się. Jeśli, jak teraz, jest lato, a Ty szukasz pracy jako informatyk, to poza bankami, urzędami i innymi molochami, nie zakładaj granituru po starszym bracie. To bez sensu. Nie idziesz na sales managera, programista to zajęcie na tyłach, w okopach, nikt Cię nie będzie widział, a pracodawaca chce ocenić jaki Ty jesteś, a nie jakie jest Twoje sztywniackie alter-ego.
Po drugie. Jest ogromna różnica między ubieganiem się o prace w polskiej firmie, a w zagranicznej.
Tutaj zupełnie nie zgodzę się z Patrysem. Jeśli rozmawiasz w sprawie polskiej firmie – naginaj. Może nie kłam, ale naginaj, Twój potencjalny pracodawca też to robi. Mówi nieprawdę, nagina ją i mota. Obiecuje slogany, które mają się nijak do rzeczywistości. Musisz odfiltrować prawdę z tego co mówią. Prawdą są dla Ciebie rzeczy pewne. Pensja, godziny pracy, model zatrudnienia. Nie wierz w slogany o przyjacielskiej atmosferze, długich deadlineach itp. Kiedy pytają o sprawy techniczne, nie kłam, ale możesz troche naginać – zwłaszcza jeśli, jak zazwyczaj w Polsce, chcą żebyś był wszystkim na raz. Nie krępuj się też mówić, że na czymś się nie znasz. Jeśli spytali Cię już o C++, PHP, Jave, Perla, PostrgreSQL i Apacha, to do cholery jasnej MASZ prawo nie znać Photoshopa i nie umieć modelować w 3D Studio.
Natomiast za żadne skarby nie kłam w kwestii doświadczenia. Nie robiłeś projektu w C#? To nie robiłeś. Nie kłam, bo potem okaże się, że dostaniesz na głowę tyle roboty, że nie będziesz w stanie się wyrobić, a ponieważ pętlę kłamstw sam rozpocząłeś, to będziesz musiał udawać, że nad projektem wcale nie siedziałeś po nocach i tak dalej…
Czyli tak – wszystkie teksty o “znajomosci języka” traktuj z pewnym marginesem przybliżenia. Doświadczenie opisuj rzetelnie. Dzięki temu pracodawca będzie wiedział z kim ma doczynienia.
Pamiętaj też, że boom na programistów w Polsce jest dość młody – pracodawaca często sam nie wie kogo dokładnie szuka, Twoja oferta może go zaskoczyć.
Dlatego (tu znów nie zgadzam się z Patrysem) – nie krępuj się w dalszej części rozmowy pochwalić się umiejętnościami, których inni mogą nie mieć. Mówię poważnie – pracowałeś przy WAI? Znasz XSLT? Masz doświadczenie w testach usability? Powiedz o tym! Niech wiedzą, za co chcesz tyle pieniędzy.

Inaczej sytuacja wygląda w przypadku rozmowy z firma zagraniczną. Po pierwsze, co na pewno sam zauważysz, inaczej przebiega rozmowa. Pytają o co innego. Często rozmawiasz z szefami. Bądź luźny, szczery, uśmiechnięty. Oni zazwyczaj też tacy będą. Będą traktować Cię z większym szacunkiem, jak partnera w rozmowach, a nie petenta, czy głodującego proszącego o jałmużne. Jeśli masz doświadczenie, zwłaszcza w zakresie którego poszukują – dawaj! Mów o tym, rozmawiaj, pytaj o szczegóły.
W odróżnieniu od polskich firm, oni raczej wiedzą kogo szukają. Niedawno miałem rozmowę z szefem firmy (wcale nie programistycznej – turystycznej), który orientował się w zagadnieniach informatycznych lepiej niż nie jeden programista. Opisywał, że dotyczas przy tworzeniu stron dbali o “Firefoksa i tego starego IE” (sic! :)), mówił o architekturze projektów itp. Nie znał się na programowaniu, ale widać, że interesował się tym jak jego pracownicy tworzą oprogramowanie.
Zbyt dużo pytań w polskiej firmie, może spowodować, że pracodawaca będzie zagubiony – on zazwyczaj nie wie zbyt wiele. Jeśli poczuje się przyciskany przez Ciebie, może łatwo zrezygnować z Ciebie tylko dlatego, żeby nie musieć pracować z gościem, który go tak zmęczył.
Ale nawet tu – pytaj. To nie jest jednostronna rozmowa, w której pracodawaca ma się dowiedzieć ktoś Ty jest, Ty też chcesz wiedzieć co Ci zaoferują.

Pieniądze

Tu jest najtrudniej. Pracodawca prawie zawsze zapyta Cię “ile chcesz”. Nie poda swojej pensji – a nuż będziesz chciał trzy razy mniej? Musisz odpowiedzieć. Staraj się podawać “widełki”, nie bądź na pierwszej rozmowie zbyt szczegółowy – podaj minimum, powiedz ile dotychczas zarabiałeś – jeśli wszystko pójdzie OK i wybiorą Ciebie – na drugiej rozmowie pytaj o ofertę i proponuj warunki.

Nie idz “po prośbie”

Najlepiej jeśli uda Ci się nie dopuścić do tego, żebyś pracy szukał desperacko. Wówczas najłatwiej wymusić dla Ciebie niekorzystne warunki. Szukaj pracy kiedy jeszcze masz czas, zapas pieniędzy, jeśli masz możliwość spróbój tak się ustawić finansowo (pożyczka? umowa z rodzicami?), żeby w trakcie rozmowy mieć pewność, że możesz tę ofertę odrzucić, taki komfort bardzo ułatwia negocjacje. Im bardziej jesteś zdesperowany, im bardziej Tobie zależy, oraz im wytrawniej umie badać Ciebie rozmówca, tym gorszą ofertę dostaniesz.

Nie zapomnij podczas rozmów postawić swoje warunki. Potrzebujesz dobrego komputera? Powiedz o tym! Laptopa? Powiedz o tym! Służbowego samochodu? Powiedz o tym! Potem będzie za późno.

Nie bój się okresów “próbnych” jeśli tylko są rozsądnie płatne. Nie tylko pracodawca, ale także Ty dostajesz czas na sprawdzenie czy firma Ci odpowiada.

I ostatnia rada mojego starego znajomego. Na 90% to co wywalczysz na początku jest tym co będziesz miał. Nie licz na podwyżki, bonusy itp.

Powodzenia 🙂

Open Minds

There are days when you just walk your street and suddenly your mind creates an idea. Something fresh, new, cool. You know what I’m talking about?
It happens to me quite often. Everytime I’m a bit confused about what to do with this idea. Write it down? Of course I don’t have time to start the project and finally the idea is described somehwere on my harddrive or lost forever.

Last three days I spent with my girlfriend on a countryside and, of course, a lot of ideas came to my mind. One of them is to create something like SourceForge but only for ideas. You can log in, write down your idea and from this moment anyone can use it to create a project. It cannot be patented anymore, it can’t be lost and anyone who has some free time, and wants to code something can search this site and look for interesting ideas.
I believe that such thing would fill a hole between people who want to code something/anything (students, madcaps etc.) and people who has a lot of ideas but no time to code them all…

What do you thing about this? Is there any ready-to-use software or I have to write it from scratch? Any ideas for the name? Of course all OpenMinds, OpenIdeas, Extenlligention, IdeaForge are registered 🙁

Te Deum

Navarro-Valls, 2005 rok: “Gdy umarł papież śpiewaliśmy »Te Deum«”

Jacek Kaczmarski, 1989 rok, Zwątpienie:

(…)
Komu dać miłość w cieniu Jasnej Góry,
Gdzie wszyscy tak ukochani boleśnie,
Że blizny wiary są bliznami skóry
Próbując żywym przyswoić nieszczęście.

Co zdradzić jeszcze w państwie Targowicy
Gdy komuniści też krzyczą o zdradzie
I próżne plany państwowej mennicy,
Żeby srebrniki były wciąż na składzie.

Jak wierzyć szczerze w narodu świątyni,
Gdy na sztandarach – aksjomaty wiary
Powyszywane są nićmi złotymi,
A dusza warczy, gdy widzi sztandary.

Kogo wynosić pod niebo Lechitów,
Gdzie tylu było dziwnie wyniesionych
I braknie brązu dla nowych pomników
Wśród tylu starych – jeszcze nie strąconych.

Jak żyć w tylekroć zdobytym Muzeum
Gdzie nieżyjący życia się trzymają
Wbrew rozsądkowi śpiewając “Te Deum”
By nas coś wreszcie obeszło w tym kraju.

O ironio… Jacek był ateistą