Czy warto inwestować czas w dokładniejsze opanowanie pythona/django


(cheshireCat) #1

Tak się luźno zastanawiam czy warto posiedzieć porobić coś z tym więcej (Django). No ale może słowo wstępu: pracowałem już wieloma technologiami, zarówno desktop (WPF/Winforms/Swing/Oracle Forms), mobilne (Android), jak i webowe Spring/ASP .NET MVC/WebForms) na studiach bawiłem się tez zarówno Railsami jak i Django. Gdzies po godzinach to nawet i zabawy z Node.js. Frontu nie wymieniam bo to mniej istotne teraz. Tak czuje że jeszcze parę rzeczy zgubiłem, no ale w każdym razie, to nie jest tak że Django jest dla mnie całkiem nowe.

Teraz właściwa treść: Tak się ostatnio zastanawiałem: czy lepiej jeśli od pewnego czasu zawodowo pracuje głównie przy Springu to czy lepiej go zmasterować czy może lepiej się zdywersyfikować i opanować na Django na poziom umożliwiający swobodne komercyjne pisanie? tak żeby ew móc przeskoczyć.
Spring jest paskudnie kobylasty i w ch… trzeba się napisać w przypadkach które wykraczają poza tutoriale ale robota w nim raczej pewna… Czego nie czuję przy Django. Mam też paskudne wrażenie że ów przy większy projektach się nie sprawdzi. Poza tym zastanawiam się nad takim zwykłym czy to się opłaca w dłuższej perspektywie.

Ma ktoś jakieś luźne przemyślenia w temacie?


(Fizyda) #2

Przejrzyj oferty pracy i będziesz miał odpowiedź.

Moim osobistym zdaniem Django nie ma większego sensu i nie ma też dużego udziału w rynku. Sam python ma zastosowanie w pewnych dziedzinach, ale to też tylko do pewnego stopnia. Ja tutaj bardziej widzę sens w Node który trochę wygryza Pythona na pewnych polach - skrypty, no i zdobywa popularność na backendzie kosztem PHP. Na backendzie podobnie, a może nawet lepiej ma się też Ruby i Railsy, tutaj również kosztem PHP.
Co do Javy to nie wiem czy się używa jej do czegoś nowego, mam wrażenie, że jest to głównie utrzymanie starych aplikacji i ich rozwój. Nie robi się w niej i springu nowych projektów.
Z tego co widzę to na backendzie coraz lepiej mają się Node i Ruby oraz C# w korporacyjnych projektach.

Wszystko to moja subiektywna opinia, bazująca na własnej opinii i obserwacji tego co się dzieje na rynku pracy oraz jakie są oferty pracy. Nie trzeba się ze mną zgadzać, a jak ktoś ma odmienne zdanie chętnie je poznam bo nie twierdzę że mam rację.


(voxcordi) #3

Każda wiedza może procentować nawet po latach. Mnie pomogła. IMO absolutnie warto.


(kop524) #4

Zależy co chcesz robić.
PHP jeśli pracować przy CMS itp.
Node i JS + jakis framework czy biblioteka pod backend i/lub frontend
Ruby/Rails pod web
Python/Web2py lub Django pod web jak rails
C++/C# głównie gry i wymagające wydajności apki desktop lub mobile(android chyba ma wsparcie przez NDK ale to trzeba by sprawdzić)
Java na ogół popularna i szybko coś znajdziesz myślę :slight_smile:
Z rzadziej używanych w polsce:
Rust to dobra alternatywa dla C++/C
Go serwery i apki sieciowe głównie
Jeśli masz możliwość użycia Linux to Crystal bo jeszcze nie ma natywnej wersji pod Winde :frowning:
Sprawdzić wszystkie z czasem można sprawdzić.
Pamiętać, że to moje przemyślenia.


(tomek2102) #5

Według mnie wszystko zależy od tego jaki typ aplikacji się buduje. Języki statycznie typowane (np. Java) są łatwiejsze w utrzymaniu przy większych projektach. Języki dynamiczne (np. Python, JS) raczej są wybierane do projektów z mniejszą ilością kodu lub prototypów.
Przy aplikacjach backendowych bardzo dużą popularność ma Java (technologie springowe), a ostatnio też coraz częściej słyszy się o Kotlinie. Sporą popularność ma też GoLang. Powstały w nim takie projekty jak np. Grafana.
Python coraz częściej jest kojarzony z machine learningiem, dzięki takim projektom jak TensorFlow.
Do aplikacji desktopowych raczej Java się mniej nadaje ze względu na spory apetyt na pamięć. Dużo zależy też od platformy, na którą się pisze aplikację. Oczywiście na windowsa popularne są technologie .Netowe, chociaż na linuxie miałem też styczność z C# i projektem Mono. Dalej rozwijane jest też Qt, które można używać również w połączeniu z GoLangiem, czy Pythonem, a nie tylko C++.
Z C/C++ miałem styczność również w aplikacjach backendowych, ale tylko jako małe moduły, które zostały napisane w tym języku ze względu na wydajność.
Jeśli chodzi o wszelkiego rodzaju systemy wbudowane, czy IoT, to tutaj też oczywiście króluje C/C++, ale istnieją już projekty takie jak microPython. Są też układy, które można programować w JSie.
Ciekawym działem są również technologie gier komputerowych. Tutaj wybór języka jest ściśle związany z silnikiem w jakim tworzona jest gra. Często jest to C++ z tego co pamiętam np. CryEngine, ale także C#/Mono w Unity, czy nawet JavaScript.
Z aplikacjami przeglądarkowymi mam mało wspólnego, ale słyszałem, że często jest wykorzystywany np. JavaScript z Reactem.
Wracając do tematu, to myślę, że warto zapoznać się z pythonem i django. Poznanie każdej technologii pozwala znaleźć jej wady, zalety i daje wiedzę umożliwiającą dobór odpowiednich rozwiązań do tworzonej aplikacji. Sam mam na swojej liście technologii do poznania wpisane Django, szczególnie ze względu na szybkość tworzenia projektów/prototypów.

To wszystko też jest moja subiektywna opinia na podstawie tego, z czym się spotykam w życiu zawodowym :slight_smile:


(cheshireCat) #6

Zapomniałem że założyłem wątek :slight_smile: No i z tego co widzę opinie nie są 100% zgodne, ale wojen nie będzie na szczęście. Dzięki za wypowiedzenie się, zawsze warto zasięgnąć języka.

@Fizyda no ja pracuje w wcale nie takim starym javowym projekcie… moze 3 rok mu leci przy czym dopiero teraz jest ekipa która pcha go skutecznie do przodu i robi z tego coś wartego uwagi. Natomiast jeszcze na boku utrzymuje jakiegos chyba juz 10 latka w c# który ma zostać docelowo zastąpiony tym javowym:) Co do balansu Java/c# to chyba kwestia firmy - u siebie miałbym problem wskazać czego jest więcej.