Praca w wielu językach programowania

0

Cześć,
Chciałbym się was poradzić w pewnej kwestii. Aktualnie jestem programista asp.net mvc i trochę się zastanawiam jak rozwijać się dalej. Widzę dwie możliwości, albo specjalizować się tylko w tym co teraz robie albo wrzucić na luz i poznawać inne technologie. Jak dla mnie oba rozwiązania mają swoje wady i zalety. Pierwsze wydaje mi sie ze zapewnia łatwiejszą rozmowę rekrutacyjną (bo zawsze chcą ludzi z danym dościwadczeniem w jednym obszarze) i ogólnie łatwiej pewnie zostać jakby ekspertem (tylko czy jak zostanę tym ekspertem to sie nagle technologia nie zmieni). Natomiast druga opcja... no sam nie wiem. Wydaje mi ciekawsza bo można poznać jakieś inne rozwiązania. Przeciez jak sie umie programować to przeskoczyć na kolejny język nie jest tak ciężko. Nawet jeżeli miałby być to język funkcyjny to też bez przesady. Wydaje mi się że jest to trochę ciekawsza opcja która tak nie ogrnicza (np. fajne pokodzic trochę na apki mobilne) Wadą na pewno jest ten brak specjalizacji. I czasem może być męczące czytanie o własciwie takich samych rozwiązaniach ale w innych językach/frameworkach. Co wy o tym sądzicie?

0

Wydaje mi się, że warto się wyspecjalizować w jednej działce... do czasu. Łatwo się to może znudzić. Sam zajmuję się głównie frontendem, ale szczerze powiedziawszy duszę się trochę w tym frontendowym sosie, więc myślę o rozwoju w kierunku backendu (nie będzie to start od zera, bo jak każdy chyba kiedyś coś w backendzie robiłem, PHP, MySQL, Python, Django, NodeJS, teraz zaczynam Ruby etc. ).

Więc może analogicznie jeśli robisz w backendowych technologiach, może warto poznać coś z frontendu? (jeśli chodzi o samo programowanie, to frontend a backend to podobne stwory -- gorzej jest z rzeczami typu CSS o tyle, że to w ogóle nie jest programowanie, i nie wiadomo jak się do tego zabrać).

0
Programista .net napisał(a):

Pierwsze wydaje mi sie ze zapewnia łatwiejszą rozmowę rekrutacyjną (bo zawsze chcą ludzi z danym dościwadczeniem w jednym obszarze) i ogólnie łatwiej pewnie zostać jakby ekspertem (tylko czy jak zostanę tym ekspertem to sie nagle technologia nie zmieni).

A musisz te nowe technologie wpisywać w CV? Co do .NET, o ile wiem to strategiczny kierunek rozwoju. Jeszcze zrozumiem coś takiego jak ktoś dla przykładu siedzi tylko w ASP.NET 2.0 czy tam ogólnie w starszych wersjach .NET (powiedzmy do 3.5). Ale przecież teraz są już nowsze wersje tej platformy i ciągle nowe rzeczy. No chyba że MS nagle zdecydowałoby się na jakieś drastyczne zmiany, wtedy nie będzie już odwrotu i trzeba się szkolić.

Natomiast druga opcja... no sam nie wiem. Wydaje mi ciekawsza bo można poznać jakieś inne rozwiązania. Przeciez jak sie umie programować to przeskoczyć na kolejny język nie jest tak ciężko. Nawet jeżeli miałby być to język funkcyjny to też bez przesady. Wydaje mi się że jest to trochę ciekawsza opcja która tak nie ogrnicza (np. fajne pokodzic trochę na apki mobilne) Wadą na pewno jest ten brak specjalizacji. I czasem może być męczące czytanie o własciwie takich samych rozwiązaniach ale w innych językach/frameworkach. Co wy o tym sądzicie?

Kiedyś dla przykładu siedziałem tylko i wyłącznie w mało popularnym Lazarusie. Mało programistów, małe wsparcie. I oczywiście na tamten czas była to dla mnie jedyna słuszna technologia. Oczywiście to ma i swoje plusy - mała konkurencja, druga strona medalu jest taka że jak jest małe zapotrzebowanie na coś w tego typu technologiach to może być poważny problem.

I tu się też można zastanawiać czy w dłuższej perspektywie w ogóle warto celować w jakiś wąski zakres. A to że .NET czy cokolwiek innego kiedyś może się znudzić to jest jak najbardziej do zrozumienia. A jak zaczniesz poznawać nowe rzeczy, inne technologie będzie o wiele ciekawiej.

2

koduje praktycznie na co dzien w c# i javie od paru ladnych lat. w miedzyczasie mialam tez dluzsze epizody z pythonem, groovym czy pl/sql i krotsze z paroma innymi.
pomimo ze jestem juz dosc stara ;) to nie moge powiedziec ze jestem super ekspertem w jakiejkolwiek technologii, bo po prostu nigdy w nic nie wglebilam sie tak bardzo jak bym chciala, zawsze w pewnym momencie mialam juz dosc i musialam cos zmienic.
oprocz leczenia nudy, poznawanie nowych jezykow/technologii pomaga mi w zrozumieniu i lepszym wykorzystaniu mozliwosci technologii w ktorych pracuje. wierze ze gdyby kazdy jawowiec/cekratkowiec nauczyl sie dodatkowo na srednio-zaawansowany poziom c, perla, pythona i haskella to wiele projektow byloby duuuzo lepszej jakosci.

0

To zależy od tego jak sie z tym czujesz, jak masz czas i jaki sam jesteś. Osobiście jestem full stack developerem (backend w php) ale też mam i rozwijam prywatnie aplikacje desktopowe w C# oraz mobilne w c++/qt. :)

0

Ja bym się jeszcze zaczął zastanawiać, czy chcesz poznawać nowe technologie (związane z tym co robisz) czy nowe języki i ich technologie.

Zacznę od tego drugiego, zalety były już podane, więc wymienię wady:
-Sama nauka języka owszem będzie łatwa, ale jeśli chcesz umieć w tym zrobić coś pożytecznego, to dojdzie nauka frameworków i specyficznych technologii. Wadą tego jest to, że pewnie na obecnym stanowisku skorzystasz z tego w 5%, a jakbyś je chciał zmienić to startujesz ze słabszej pozycji, bo masz doświadczenie w asp.net MVC ale nie np w Java+Spring, Android SDK itd. NIe wiem ile masz "lat doświadczenia" w ASP MVC, im mniej, tym gorsza to opcja moim zdaniem (bo masz ciągle wiele do nauki).

Ja bym rozważył podejście pierwsze i inne technologie (i nie tylko), ale związane z tym co robisz bardziej bądź mniej.
Przykłady? Jeśli już coś umiesz, albo liznąłeś i Cię nie interesuje, to pomiń po prostu, ale pominięcie tego to najgorsza opcja :)
-SOLID/KISS/DRY/Design Patterns/Clean Code - niezależne od technologii i bardzo pożądane.
-DDD - znów, nie technologia, bardzo ciekawy temat, wiążą się też z nim specyficzne wzorce
-Testy/i nawet TDD - znów, kolejna, 3cia nie technologia, wykonanie i narzędzia zależne od języka/technologii - bardzo ciekawy temat.

Mało? no to teraz technologie backendowe bardziej, teraz mniej przydatne ale w nowych projektach możliwe że bardzo, do tego mały przeskok przy zmianie pracy:
-Web APi 2 (przeskok na poziom podstawowy+ z MVC w 1 dzień roboczy :), po tygodniu już śmigasz ) + Standardy budowania RESTowych serwisów, ogólnie SOA

  • ewentualnie WCF, ale polecam powyższe bardziej
    -WPF - może teraz desktopowe aplikacje?
  • Aplikacje mobilne na windowsa... ale rynek trochę mały, za to można rozszerzyć o Xamarina i multiplatformowość, może być ciekawie, i wymaga lekkiego ogarnięcia też innych paltform (głównie w zakresie UI)
    -SQL (T/SQL lub PL/SQL lub cokolwiek innego zależnie na jakich bazach pracujesz)
  • i na koniec listy ORMy - Entity Framework / NHibernate (na pewno jednego, albo nawet oby używasz, ale jeśli nie używasz któregoś, poznaj ten drugi)

Technologie Frontendowe ( HTML5, CSS, JS), może przyda CI się w obecnej pracy:
-Bootstrap
-Angular
-JQuery(?)
-JS ogólnie + wschodząca stara gwiazda Type Script

1

łatwiej pewnie zostać jakby ekspertem (tylko czy jak zostanę tym ekspertem to sie nagle technologia nie zmieni)

Eksperci zwykle umieją pisać w różnych językach. Osobę, która zna dobrze tylko jeden język/środowisko/technologię ciężko nazwać ekspertem. Jak dla mnie łatwo to można zostać specjalistą czy rzemieślnikiem albo koderem, a nie ekspertem.

wierze ze gdyby kazdy jawowiec/cekratkowiec nauczyl sie dodatkowo na srednio-zaawansowany poziom c, perla, pythona i haskella to wiele projektow byloby duuuzo lepszej jakosci.

Każdy język wzbogaca. Python mnie nauczył operować sprawnie na listach, C++ pokazał mi, że istnieje stos, wskaźniki, pamięć, JavaScript przysposobił do używania domknięć, SQL nauczył myślenia deklaratywnego... etc.

Ba, nawet PHP mnie czegoś nauczyło. Ten język pokazał mi na zasadzie antyprzykładu jak bardzo ważna jest spójność API i dobry design. Oraz to jak bardzo kompatybilność wsteczna i dług technologiczny może nawet po iluś latach powstrzymywać rozwój danej technologii.

I czasem może być męczące czytanie o własciwie takich samych rozwiązaniach ale w innych językach/frameworkach. Co wy o tym sądzicie?

Bo to się nazywa wzorce projektowe. Więc nie dziwne, że w różnych frameworkach dokładnie te same rozwiązania są. Gorzej tylko, jak jest pokręcone nazewnictwo i to samo w jednym frameworku się nazywa w drugim zupełnie inaczej, a to co się nazywa tak samo działa odmiennie. To bardziej kwestia nazewnictwa i implementacji wzorców.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0