Nowa droga czy stara ?
Wczoraj miałem ciężki temat do rozgryzienia i chciałbym się podzielić moimi przemyśleniami. Co się stało? Ano po długich próbach zmiany bieżącego projektu, udało mi się. Ale jak wiadomo od przybytku głowa nie boli, a może? Długo czekałem na jakąś zmianę, a tu nagle 2 opcje – rozwijanie projektu opartego o Pythona, którego znam tylko pobieżnie lub rozwijanie aplikacji desktopowej w C#, WPF-ie i MVVM-ie. Programowaniem zawodowo zajmuje się już 5 lat, gdzie przeszedłem już przez kilka projektów głównie .NET-owych. I stanąłem przed dosyć niespodziewanym wyborem.
Python – nowy skill
Projekt Pythonowy wiąże się z całkowitą zmianą. Począwszy od systemu, na którym tworzony jest soft (cały development oparty jest o maszyny linuxowe), poprzez środowisko developerskie, a skończywszy na języku programowania, którego jeszcze komercyjnie nigdy nie używałem. Samo wdrożenie w projekt, który jest już rozwijany przez jakiś czas nie był by rzeczą trywialną, a zmiana środowiska i języka na pewno nie ułatwiła by tego zadania. Z drugiej strony zawsze to jakiś nowy skill, nowe doświadczenie i nowe możliwości.
Kontynuacja .NET-a
Projekt .net-owy również jest już rozwijany przez jakiś czas a i wykorzystywane w nim WPF oraz MVVM-a wykorzystywałem już w przeszłości. Choć nie było tego zbyt dużo, to jednak tego rodzaju wiedzę już w jakiś sposób posiadam. Ale czy to wystarczy, ażeby uważać, że nie potrzebuję sobie tego przypomnieć. A może w tym projekcie wystąpią jakieś ciekawe kruczki i zadania. W każdym razie praca w tym projekcie umożliwiała by dalszą eksplorację C#, .NET-a oraz wszelkich technologi i frameworków związanych z Microsoftem. Żałuję jedynie, że to desktop a nie coś web-owego, ale mniejsza o to.
Konkluzja
Cały dzień się zastanawiałem co tak właściwie mam zrobić, który projekt wybrać, na co się zdecydować. I chyba określić co tak właściwie chce robić w swojej pracy zawodowej. Określić jakim chcę być programistą i co osiągnąć. Wyjścia tak naprawdę w tej sytuacji miałem 2. Zawężać swój zawodowy świat do 1 języka (przynajmniej na razie) i starać się być w nim specjalistą. Szukać nowych możliwości i rozwiązań lub nauczyć się czegoś nowego oraz zobaczyć jak ta nowość wygląda w komercyjnym projekcie.
Pokusa nauki nowych rzeczy była ogromna i nadal nie wiem czy podjąłem dobrą decyzję. Jednak w mojej opinii przy takich warunkach i możliwościach jednak lepiej było pozostać przy znanym środowisku i języku. Nie to, że nie lubię wyzwań, lubię je i to bardzo, ale chciał bym zostać specjalistą, a nie panem Mietkiem złotą rączką, który wie o wszystkim tyle i tylko tyle ile mu potrzeba, ażeby coś zreperować. Jeśli skusił bym się teraz na zmianę technologi, dalej o .Net-cie wiedział bym tyle ile w tym momencie, a może nawet mniej. Gdyż nie wiem czy udało by mi się rozwijać wraz z językiem tak jak staram się robić to teraz. A przecież nauka nowego języka też nie była by bez wpływu na moje zdolności poznawcze (pewnie nauczył bym się sporo Pythona zamiast rozwijać swoje kompetencje w C#).
Tak więc wybrałem specjalizację, czy dobrze czas pokaże. A może wy powiecie co i dlaczego wybrali byście na moim miejscu ?
tl;dr
no dobra. good choice