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.
Wszyscy coś kochamy
To prawda. Możesz spokojnie się do tego przyznać. Każdy z nas ma szczególne upodobania do pewnych technologii, języków programowania i powody, dla których uważa, że to wszystko jest lepsze od reszty. Jest to naturalne. Jesteśmy entuzjastami. Mamy pasję. Tworzymy związki z rzeczami, z którymi spędzamy wiele czasu. Wydaje się więc naturalne, że ja lubię Visual Studio i C# bo spędziłem z nim aż 5 lat.
Czy może być to problem? Tak, bo oczywiście mogę zareagować bardzo emocjonalnie na fakt, że ktoś może próbować podważyć te moje 5 lat. Oczywiście inni będą mieć swoje wspaniałe wspomnienia i doświadczenia z innymi technologiami i na tej podstawie będą przekonani o swoich racjach.
To naturalne, że jesteśmy przekonani do swoich racji, bo był to nasz wybór i jak tu się nie zgadzać ze swoimi wyborami. Możesz mnie spytać czy C# jest najlepszym językiem na świecie, a ja ci powiem “TAK”, ale czy tak faktycznie jest, to już jest pole właśnie do takich głupich felietonów. Gdybym jednak nie miał takiego przekonania to praca, moje hobby, mój blog nie byłby takie przyjemne. Nie jesteśmy w stanie poznać wszystkich technologii i rzeczywiście wybrać to jedno najlepsze rozwiązanie. Wybraliśmy coś raz i zazwyczaj trzymamy się tej decyzji do końca życia.
To wszystko oczywiście może się okazać destrukcyjne. Jak spotkanie się dwóch kibiców piłkarskich na meczu różnych klubów. Łatwo zareagować emocjonalnie, gdy ktoś powie, że coś X jest lepsze niż Y. Zwłaszcza jeśli jesteś związany emocjonalnie z tym swoim Y.
Nasza miłość też nas ogranicza. Zamykamy się tylko w określonych społecznościach. Segregujemy się do różnych folderów. Tutaj Ruby. Tutaj PHP, Tutaj Java. Tutaj C#. Tymczasem my wszyscy walczymy z tymi samymi problemami np. głupim JavaScriptem. Przestajemy rosnąć, bo w naszym katalogu technologicznym poznaliśmy już wszystko i znamy już wszystkie odpowiedzi.
Na studiach co jakiś czas napotykałem na fanatyków PHP nie było to dla mnie przyjemne, ale na szczęście nie ciągnąłem tego dalej. Już wtedy zrozumiałem, że ograniczanie się do jednej rzeczy i bycie jej fanatykiem jest bardzo szkodzące.
Ostatecznie więc…
Każda technologia jest użyteczna i dobra
Fakt nie wszystkie technologie są wspaniałe, ale technologie, które są znane i istnieją od wielu, wielu lat spokojnie można nazwać dobrymi rozwiązaniami.
Python, Ruby, Java, PHP, C#, C++. Ciężko jest zaprzeczyć sukcesom tych rozwiązań skoro ktoś je stosuje i są znane. Oczywiście to może się zmienić z czasem, ale w pewnym momencie na pewno te technologie były uznawane za dobre, a nawet perfekcyjnie.
Mając tę perspektywę łatwo jest zrozumieć, że nie ma idealnych rozwiązań na pewne problemy, a nawet jeśli kiedyś takie rozwiązania były, to pojawiło się coś lepszego. Jest to jeden z powodów, dlaczego nikt z nas obecnie nie programuje w Pascalu, Fortranie czy Cobolu.
Nie ma wiec jednego słusznego frameworku i języka. Nie ma tej jednej technologii, która na pewno da ci pracę przez następne 40 lat. Może gdzieś pojawi się coś nowego np. język C#Plus-Plus. Gdyby ta jedna słuszna technologia istniała, to by nie było alternatyw.
Nie ma jednego słusznego edytora. Eclipse, Visual Studio, IntellJ nie są idealnymi edytorami, ale też są to najlepsze edytory w zależności od tego z czym konkretnie pracujesz.
Możesz więc się zakochać w jednym rozwiązaniu i być bardziej produktywnym w nim, ale nie znaczy to, że to jest najlepsze rozwiązanie.
Moje przekonania
Jak widzisz ten blog jest zrobiony w stylu metro znanym w aplikacjach Microsoftu jak chociażby sam system operacyjny. Nie będę ukrywał jestem fanem Microsoftu. Nawet gdy Microsoft wydał Windows 8 byłem tym kolesiem, który uwielbiał ten system, bo umiałem w nim dostrzec zalety pomimo wielu, wielu wad.
Mógłbym więc kłócić się z tobą, że Windows jest lepszy niż Mac, ale wiem, że nie ma to sensu. Miałem okazję używać MAC book Air przez rok i rozumiałem, że to urządzanie, jak i systemy operacyjne są tworzone zupełnie z inną filozofią. Na Windows ja mam zazwyczaj pootwieranych miliony okien. Tymczasem miałem wrażenie, że MAC stara mi się ograniczyć otwieranie wielu aplikacji naraz, co zwiększyło moje skupienie, bo robiłem tylko jedno rzecz.
Jest więc dla mnie oczywiste, że nie ma tutaj lepszych i gorszych. Na tych urządzeniach i systemach operacyjnych wykonuje się inne zadania i z innym podejściem. Przypomina to więc gotowanie gdzie fakt, że coś polubisz bardziej jest zależne od twoich potrzeb i upodobań. Nie zmienia to jednak faktu, że oba dania są stworzone z pewną filozofią.
MAC nie jest dla mnie, ale z drugiej strony może to wynika z tego, że mam w sobie małe ADHD komputerowe i muszę mieć pootwieranych tysiące zakładek i programów. Paradoksalnie MAC nauczył mnie czegoś na temat produktywności, mimo iż nie jestem jego fanem.
Czy C# jest najlepszym językiem programowania? Czy jest on lepszy niż Ruby i Python? Nie. To są dwa zupełne inne zestawy języków stworzone do rozwiązywanie różnych problemów. Przypomina mi to głupie wątki na forach, w których użytkownicy nawet nie umieli prawidłowo zestawiać rozwiązań np. .NET jako framework kontra PHP jak to się nawet skleja.
W moim życiu zawodowym od razu, gdy zacząłem pewną pracę musiałem tworzyć aplikację na Andorida w Javie. Nie byłem zadowolony, bo w końcu startowałem na inną pozycję. Musiałem się więc przełamać i pisać przez ten jeden miesiąc w Javie.
Oczywiście co chwilę myślałem jak Java jest głupim językiem w porównaniu z C#. Co chwilę myślałem jak nawet programowanie na Windows Phona jest bardziej przyjemniejsze niż w Androidzie.
Jak mam czerpać radość z tego procesu twórczego, jak w Javie nie ma LINQ, a maszyny wirtualne androida są wolne, jak nie wiem co.
Przegryzłem to, chociaż fakt myślałem o odejściu z tej pracy, bo nie robiłem czegoś zgodnego ze swoimi przekonaniami. Dwa miesiące później ten projekt się skończył, a ja mogłem znowu pisać w C# i tworzyć strony internetowe w ASP.NET.
To doświadczenie nauczyło mnie dużo i w sumie jakby wykluczyć mój fanatyzm, to nie było ono, aż tak traumatyczne, jak może się wydawać.
Trzeba się otworzyć na inne rozwiązania i je poznawać. Ucząc się każdej nowej technologii możesz stać się lepszym programistą.
Nie ograniczaj się więc
Wybór zawsze istnieje jedyne co nas ogranicza, to nasza miłość. Nie ma sensu się kłócić, która technologia jest lepsza obrażając przy okazji inne osoby.
Akceptując to, że są inne rozwiązania twoja kariera pójdzie do przodu bo sam jej nie będziesz ograniczał. Zastanów się więc jaką technologię lubisz najbardziej i jakiej technologii nienawidzisz.
Zastanów się czy twoje przekonania są w miarę racjonalne i mają sens. Zastanów się czy one tobie nie szkodzą.