Zmiana języka programowania w pracy

Zmiana języka programowania w pracy
Serasm
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
0

Witam.
Mam około 8-9 lat doświadczenia z C#.
Chciałbym spróbować z Pythonem.
Chciałbym się dowiedzieć czy ktoś z was zmieniał język programowania.
Jak to u was wyglądało? Jak szybko to przebiegło?
Jak najlepiej to zrobić? Czy muszę liczyć się z powrotem na stanowisko juniorskie?

Jeżeli chodzi o sam język, to nawet w obecnej pracy musiałem z niego korzystać.
Integracja z zewnętrzną usługą wymagała Pythona z Tornado.
Sam zaś kiedyś napisałem całą witrynę z Django.

Obecnie głównie staram się coś tam pomagać w open source, niestety większość zadań to frontendowe frameworki typu React.
Za to taski skupione na Pythonie szybko znikają.

Jeżeli macie jakieś projekty open source do którego mógłbym dołączyć aby bardziej obyć się z samym Pythonem i sposobem działania w nim to będę wdzięczny za taką pomoc.

Spine
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6965
1

Ja bym nie zmieniał języka z C#.
Na dłuższą metę projekt w Pythonie jest zmorą dla programisty.
Projekt w C# ma mniejsze szanse się rozsypać. To co się kompiluje w C#, gwarantuje poprawny refactoring (np. rename).
W Pythonie tej gwarancji nie masz. Jesteś zdany na dyscyplinę programistów, którzy rozwijali projekt przed Tobą.
Wiadomo, w każdym języku można robić spaghetti, ale skoro i tak musisz się pilnować, to zmiana języka na Python nic Ci nie daje, a nawet wręcz odwrotnie.

Może rób dalej w C#, tylko spróbuj w innej branży?

obscurity
  • Rejestracja: dni
  • Ostatnio: dni
2

Każdy programista powinien znać kilka języków programowania w tym co najmniej jeden skryptowy. Jak najbardziej warto się nauczyć pythona, co nie znaczy że od razu musisz zmieniać specjalizację. W dodatku piszesz że w obecnej pracy korzystasz z pythona więc spokojnie możesz sobie to wpisać w cv i nie spadać na stanowisko juniorskie. Junior od seniora nie różni się wyłącznie wiedzą na temat konkretnego języka programowania chociaż twoje pytania zapalają trochę czerwonych lampek.

Serasm
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
0

Rozumiem Panowie że wy byście nie zmieniali specjalizacji czy języka i dobrze dla was.
Będę naprawdę wdzięczny żeby ktoś mnie naprowadził właśnie w kontekście zmiany specjalizacji.
Chciałbym się po prostu dowiedzieć o doświadczeniach innych w tym temacie.

A czy zmienię specjalizację? No czemu nie, w końcu język to tylko narzędzie, a nie jakaś wyrocznia.
Tylko niestety żyjemy w takiej polsce gdzie notorycznie pojawia się "X lat doświadczenia w technologii Y wymagane", co nie ułatwia takiej zmiany.

A zawsze myślałem że ogarnięcie składni języka to ile? Tydzień lub dwa?
Więcej problemu może być z poznaniem narzędzi lub ewentualnych nietypowych błędów.

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5549
3
Serasm napisał(a):

A zawsze myślałem że ogarnięcie składni języka to ile? Tydzień lub dwa?
Więcej problemu może być z poznaniem narzędzi lub ewentualnych nietypowych błędów.

mnie przerzucono z javy do javyzkrypty rok temu i powiem ci że to jednak nie jest taki tydzień czy dwa. zachowanie frameworów jest totalnie inne. nagle paterny z jednych języków okazują się antypaternami w innych językach. niby działa ale senior języka niezadowolony bu to tak nie robi się

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5549
1

O dzięki, o to mi chodziło. Możesz napisać coś więcej? Aż taki to był problem? Ile zajęło ci ponowne wdrożenie się żeby nie robić błędów o których piszesz?

Cóż głownie problemy z zupełnie innym działaniem JS/TS. o ile Java jakoś do C# jest podobna to różnica między TS a Python jest spora więc nie wiem czy coś moje wspomnienia ci pomogą.
na pewno na początek się ucieszyłem że w TS nie ma tyle maperów i problemów entity <-> dto. ale potem brak mocnego typowania mnie męczył. niby są typy ale tylko do czasu kompilacji. niby są wrapery dodające sprawdzanie typów w runtime ale trzeba pisać je osobno. nigdy nie wiadomo ostatecznie co przyjdzie w metodzie. trzeba robić dużo więcej sprawdzań i logowania niż w javie

Trochę rant na TS/JS czy ogólnie dynamicznie/słabo typowane mi wyszedł

obscurity
  • Rejestracja: dni
  • Ostatnio: dni
1
Serasm napisał(a):

Rozumiem Panowie że wy byście nie zmieniali specjalizacji czy języka i dobrze dla was.
Będę naprawdę wdzięczny żeby ktoś mnie naprowadził właśnie w kontekście zmiany specjalizacji.

Wręcz przeciwnie, po języku w którym zacząłem pracować nie ma już śladu u mnie w głowie, normalne jest że się zmienia języki programowania, wychodziło to naturalnie zazwyczaj podczas pracy w jakiejś firmie - zaczynało się projekt w X, po czym potrzebowali kogoś do pomocy do Y albo zaczęli przepisywać X na Y bo X stawało się przestarzałe i tak kolejna praca już była w Y itd.

Jak już napisałeś język to tylko narzędzie i dziwne jest że zadajesz pytania czy spada się na juniora. To nie miałoby żadnego sensu poza przypadkiem w którym uważasz że jedyne co potrafisz to składnia konkretnego języka. Nie widziałem w ogłoszeniach poważnych firm wymagań że potrzebują np "doświadczenia 6 lat w javie" tylko co najwyżej "doświadczenie 6 lat w językach takich jak: ...."

KamilAdam napisał(a):

nagle paterny z jednych języków okazują się antypaternami w innych językach. niby działa ale senior języka niezadowolony bu to tak nie robi się

to był może problem parę lat temu choć też nie bardzo - zazwyczaj wystarczyło otworzyć parę projektów opensource w danym języku i je sobie przejrzeć, teraz dobrych nawyków można nabywać w locie pytając AI. Piszesz po swojemu a potem pytasz AI czy tak to się robi i jak to zazwyczaj się robi, albo piszesz żeby to zrobił za ciebie zgodnie z przyjętymi konwencjami a potem customizujesz po swojemu / naprawiasz. Trzeba uważać bo często używa starej lub nawet nieistniejącej już składni, ale jeśli ma się jakiekolwiek pojęcie o tym co się robi i weryfikuje w googlach to zazwyczaj wychodzi ok

Miang
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1788
1

na studiach pisało siew kilku językach równocześnie, na różne przedmioty różne języki

Spine
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6965
1

@Miang: W domowym zaciszu też różnych technologii się próbuje.

Jednak studiowania nie brałbym za wzór do naśladowania ;)
Tam jest loteria. Jeden prowadzący wstęp do programowania robi w C, drugi prowadzący robi w Turbo Delphi.
Na jednej uczelni się umawiają, że robią wszystko w Javie i kurs trwa kilka semestrów, a na innej uczelni robią byle jak... Jeden semestr w C, drugi w C++, trzeci w Javie...

Wszedłem sobie na sylabus AGH: https://sylabusy.agh.edu.pl/public/api/education-program-document/show/24-inf-ii-s-6
Dziwnie to wygląda... Strona 30-31:

screenshot-20251030232724.png

screenshot-20251030232645.png

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0
Serasm napisał(a):

A czy zmienię specjalizację? No czemu nie, w końcu język to tylko narzędzie, a nie jakaś wyrocznia.
Tylko niestety żyjemy w takiej polsce gdzie notorycznie pojawia się "X lat doświadczenia w technologii Y wymagane", co nie ułatwia takiej zmiany.

Nikt nie każe żyć w Polsce, ani szukać w niej pracy.

SL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1020
1

Nauka języka, zwłaszcza pythona jest na pewno na plus. Generalnie najlepiej to wychodzi jak:

  • jest duże parcie na rynku w porówaniu do tego co teraz robisz (jeśli klepiesz w C# to raczej ten punkt odpada)
  • bardzo nie lubisz swojej technologii i chcesz ją zmienić
  • praca pozwala ci na naukę, bo jest jakiś nowy projekt w tym języku (to najlepiej działa)

Chciałbym się dowiedzieć czy ktoś z was zmieniał język programowania.
Jak to u was wyglądało? Jak szybko to przebiegło?

Ja zmieniałem C++ na Go, bo trochę wkurzał mnie tooling jak i rynek pracy w C++. Nie było jakoś ciężko (coś tam liznałem Go na studiach plus klepałem drobne rzeczy), ale generalnie te parę lat temu było prościej znaleźć pracę w Go bez doświadczenia komercyjnego w tym języku

Jak najlepiej to zrobić? Czy muszę liczyć się z powrotem na stanowisko juniorskie?

Raczej tak choć to zależy od firmy. Na pewno będzie ciężko trafić z ulicy bez żadnych znajomości. Z doświadczenia wiem, że wychodzi to wtedy, gdy:

  • firma ceni sobie twoją główną technologię. Czesto przychodzi jakiś CTO z d**y i robi rewolucję w stylu przepisujemy X na Y albo Y na X . W takich wypadkach może się udąc
  • masz jakieś znajomości i referala np. umiesz konkretną wiedzę biznesową i strona rekrutująca to sobie ceni

A zawsze myślałem że ogarnięcie składni języka to ile? Tydzień lub dwa?
Więcej problemu może być z poznaniem narzędzi lub ewentualnych nietypowych błędów.

Syntax jest najprostrzy. Najtrudniejsze jest ogarnięcie całego środowiska i umiejętność tj. jeśli wejdziesz między wrony, musisz krakać jak i one .

Sensacyjny Sebastian
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 400
3

Jak dotąd pisałem w pięciu różnych językach, do niektórych wracając kilka razy. Powrotu na juniora nie zaliczyłem w żadnym wypadku.

Jak szybko to przebiegło? Parafrazując żarcik z wypoka - ot, odpalasz IDE i bzikasz. A bardziej na serio - o ile w większości przypadków na rozmowie rekrutacyjnej spotkałem się z jakimś maglowaniem z docelowej technologii, o tyle brałem też udział w takich, które skupiały się głównie na system design, a algorytmikę czy inny live coding można było robić w dowolnym języku. Stąd też dwa razy podejmowałem pracę w języku, którego nigdy wcześniej nie widziałem na oczy i nie umiałbym nawet napisać Hello Worlda.

Jak najlepiej to zrobić? Najbezpieczniej jest, jeżeli w twoim obecnym miejscu pracy istnieją projekty w różnych językach, spróbować zakręcić się wokół projektu, który Cię interesuje. Może być tak, że inny zespół potrzebuje trochę pomocy, a akurat w twoim zespole będzie trochę luzu - ktoś do ogarniania prostych zadań może się wtedy przydać. Zaczynasz od podłapywania podstaw i powoli idziesz dalej. Jeżeli nie ma takiej opcji - to pozostaje uczyć się samemu w wolnym czasie i szukać okazji na wprowadzenie upragnionego języka w miejscu pracy.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.