Python w 2017 i w przyszłości

0

Witam, jestem na etapie nauki programowania,
w technologiach front-end w miarę ogarniam i radzę sobie (html, css, javascript).
Stety lub niestety żeby dalej się rozwijać potrzebuje trochę back-endu do zapisu chociażby danych z formularzy na serwerze, zresztą nieistotne, przechodząc do sedna...
... wybrałem sobie Python i Django do back-endu, poczyniłem pierwsze kroki, język przyjemny, ale no własnie, marna popularność tego języka w polsce?
Gdybym robił to tylko dla siebie spoko, ale chciałbym w przyszłości zarabiać pieniądze (jak każdy) i tutaj jawi sie pytanie, czy jest praca dla Pythonowców w polsce? Kategoria web
Pozdrawiam

2

Jeżeli nie jesteś jakoś specjalnie przywiązany do Pythona, a wygląda na to, że nie, skoro robisz backend "z konieczności" to na Twoim miejscu nie szedłbym w stronę Full Stacka tylko w stronę czystego Frondu i ogarniał Reacta albo Angulara / Vue + nowinki w CSS i HTML. Za backend mógłbyś sobie ogarniać Node.js, ale raczej for fun, a nie by w tym pracować, bo ofert raczej też za dużo nie ma. Co do popularności w językach typowych dla backendu to masz:

  • Java i najczęściej Spring Boot, który jest dużym krokiem w przód w porównaniu z czystym Springiem
  • PHP - można nie lubić, ale cieszy się ogromną popularnością, a frameworki pozwalają zapomnieć, że to pehap ;) Najbardziej znane to Symfony i Laravel
  • Ruby on Rails - tutaj w zasadzie sprawa podobna do Pythona, ale jest jednak więcej ofert i zastosowania Rubiego są w zasadzie ograniczone do Railsów. Język dynamiczny, przyjemny do pisania, Railsy zaś ogarniają dużo rzeczy w magiczny sposób czyt. możesz sobie CRUDa wygenerować komendami i to jest fajne, jeżeli ogarniasz w jaki sposób to działa.
  • .NET, ale ofert będziesz miał niż w Javie i PHPie
0

Dzięki za odpowiedź.
Tak jak mówisz nacisk kładę jednak na front-end, nie mniej jakieś pojęcie muszę mieć jak są zapisywane dane na serwerze, a kto wie może back-end mi się spodoba.
Podsumowując twoją wypowiedź, odnoszę wrażenie, że miałem rację co do sytuacji Pythona w polsce.
Z Javy i PHP wydaje mi się, że Java to solidniejszy wybór przez wzgląd na możliwość zastosowania w wielu obszarach np Android

1

Tak, plusem Javy jest to, że jest językiem uniwersalnym w pełni tego słowa znaczeniu. RESTowe apki webowe stoją na Javie, jak i te, które mają potężną logikę dotyczącą działań biznesowych np. masz silnik searcha Lucene. Do tego dochodzi wspomniany przez Ciebie Android, chociaż na tym poletku Kotlin zyskuje coraz większą popularność. Java - poza rozwlekłą składnią- ma ogrom plusów - zarówno w samej składni języka (teraz już jest wersja 1.9), dostępnych narzędziach (każde IDE ogarnia Javę, a masz dedykowany IntelliJ), ilości bibliotek (masa wtyczek w repo mavena, a zaciagasz poprzez gradle - nauka Groovy'ego ułatwia config) czy bezproblemowym działaniu na każdym OSie i z interakcją z każdym rodzajem bazy danych (Hibernate).

0
rav3n napisał(a):

https://stackoverflow.blog/2017/09/06/incredible-growth-python/

Ja nie wątpię, że Python jest w czołówce języków programowania. Nie wątpię też w to, że bardzo zyskuje na popularności.
Jednak jak można przeczytać w moim 1 poście, odnoszę się do sytuacji Python'a w polsce, nie na świecie.

0

Nie wiem jak sa dokladnie liczone te statystyki, ale czy nie jest tak (bo TL;DR) Ale odnosze wrazenia ze pomija sie to ze Python czesto jest dodatkowym jezykiem w skrzyneczce z narzedziami profesjonalisty. Wiec czesto ktos kto zna np. Jave zna tez Pythona.

0

W Polsce też Python zyska, ucz się Pythona i Django, a zarobki powyżej 7k będą.

1

Python na początku kariery w ogóle się nie opłaca. Mało jest ofert pracy, szczególnie pod juniora i dlatego też znika wiele sposobności na zdobycie cennego doświadczenia.

Wbij sobie do głowy, że właśnie to doświadczenie jest milion razy ważniejsze niż technologia w jakiej będziesz operował.

Poza tym Python średnio nadaje się do większych projektów (zapytaj @Wibowit to Ci opowie). Natomiast największe projekty to źródło prawdziwej wiedzy.

Dlatego na start lepiej jest wybrać stabilną technologie, która pozwoli Ci szybciej przejść do poznawania architektury i rozumienia biznesów.

Ten czas nazwij sobie praktykami - mimo, że wtedy i tak będziesz zarabiał więcej zarabiał niż większość programistów od dynamicznych języków.

I dopiero jak okrzykną Cię seniorem. Wtedy zadaj sobie pytanie co z tak zajebistą wiedzą zrobić.

Jeśli będziesz miał chęci na własne projekty, wtedy właśnie python może Ci się zwrócić. Jego nauka to 2-3 dni. Potem da się już kodować z OOP, używać funkcyjnych elementów i robić testy - kod co prawda jest daleki od filozofii pythona, ale to nie jest ważne. Tyle Ci wystarczy by ekonomicznie programować i czytać kod programistów pythona, którzy będą pracować na twojego proszaka.

1

Python na początku kariery w ogóle się nie opłaca.
(...)
Natomiast największe projekty to źródło prawdziwej wiedzy.

Wchodzić w "największe projekty" na początku kariery też się nie opłaca, bo to trochę jak uczyć się pływać w oceanie.

Stety lub niestety żeby dalej się rozwijać potrzebuje trochę back-endu do zapisu chociażby danych z formularzy na serwerze

Mógłbyś też w JavaScripcie pisać back-end (NodeJS). Miałoby to tę zaletę, żebyś miał jeden język i tu i tu.

Druga opcja to pomyśl, czy w ogóle potrzebujesz jakiegokolwiek backendu. Teraz jest mnóstwo różnych usług internetowych, które same zapewniają backend (masz np. https://formspree.io/ do obsługi formularzy. Wysyłają ci się na maila wysłane na stronie formularze).

wybrałem sobie Python i Django do back-endu, poczyniłem pierwsze kroki, język przyjemny, ale no własnie, marna popularność tego języka w polsce?

Zastanawiam się, czy " marna popularność Pythona w polsce" jest stanem faktycznym, czy tylko mitem ciągle powtarzanym.

2
goldpython napisał(a):

Poza tym Python średnio nadaje się do większych projektów (zapytaj @Wibowit to Ci opowie). Natomiast największe projekty to źródło prawdziwej wiedzy.

Średnio to wiesz o czym piszesz :) Python świetnie sprawdza się również w dużych projektach. Częściej spotyka się małe, ale to nie wynika z tego, że język się do tego nie nadaje tylko z tego, że jest mało popularny.

0
goldpython napisał(a):>

Poza tym Python średnio nadaje się do większych projektów

Chyba jednak nie do końca, taki na przykład Mailman jest napisany w Pythonie, a nie jest to mały projekt.

0

Mailman is written primary in Python (in approximately 13,000 lines) with a few modules written in C (600 lines) for improved security (the C parts are the wrappers that handle securely changing to the correct permissions). Mailman exposes Python as an extension language that allows for customization of Mailman's interfaces.

13k linii to dość mało.

Natomiast Spring Framework wg https://www.openhub.net/p/spring :

has had 37,079 commits made by 550 contributors representing 1,271,127 lines of code

(z czego 1.1M LOC to Java, a reszta to inne rzeczy)

0
Wibowit napisał(a):

13k linii to dość mało.
Natomiast Spring Framework wg https://www.openhub.net/p/spring :

has had 37,079 commits made by 550 contributors representing 1,271,127 lines of code

Nie mówię, że to jakiś moloch, ale na pewno nie jest to mały projekt.

0

Dalej twierdzę, że 13k linii to dość mało.

Załóżmy, że przeciętny plik z kodem produkcyjnym ma 100 linii kodu. Do tego dochodzi np kolejne 100 linii kodu testowego. Wobec tego 13k linii kodu w ogólności daje powiedzmy 70 plików kodu produkcyjnego po 100 linii kodu na plik. To jest projekt, który można zmieścić w całości w głowie :]

0

13k to mało

przy 50k projekt w pythonie lekko w kurw**

potem to miazga

0

Średnio to wiesz o czym piszesz :) Python świetnie sprawdza się również w dużych projektach. (...)

Np. w jakich?

0
goldpython napisał(a):

przy 50k projekt w pythonie lekko w kurw**
potem to miazga

Około 2 miliony linii kodu w jednym projekcie, technologie java (investment bank).

2

"Dalej twierdzę, że 13k linii to dość mało."
Ale co Ty porównujesz człowieku Pythona do Javy, gdzie Java to najbardziej rozwlekły język programowania z możliwych, a Python jest językiem o najbardziej zminimalizowanej składni wśród języków. Tak jest jeszcze zwięźlejszy niż Ruby. Bez sensu porównanie i wychwalanie fanboyowo Javy...

1

"Jego nauka to 2-3 dni."
Jeżeli dla Ciebie nauka języka trwa dwa, trzy dni, to albo jesteś geniuszem w co nie wierzę. Lub po prostu taki jesteś programista, nauczyć się czegoś po łebkach.

3

Jeju jaka licytacja w ilości lini kodu 😅 Potem nikt tych 2M nie chce utrzymywać i się robi bigos 😊

0

Ale co Ty porównujesz człowieku Pythona do Javy, gdzie Java to najbardziej rozwlekły język programowania z możliwych, a Python jest językiem o najbardziej zminimalizowanej składni wśród języków.

Mało języków znasz, skoro twierdzisz, że Python ma aż tak kompaktową składnię. Nawet jeśli program w Pythonie jest 3x krótszy niż ten w Javie to i tak niczego to nie zmieni w porównaniach.

Jeju jaka licytacja w ilości lini kodu 😅 Potem nikt tych 2M nie chce utrzymywać i się robi bigos 😊

Korporacje płacą za pisanie kodu z masą funkcjonalności który działa przez lata, a nie przepisywanie w kółko małych projektów.

0

Cześć.
Przede wszystkim warto by zastanowić się w jakim kierunku chcesz się rozwinąć, jakim chciałbyś być programistą, możliwości jest wiele. Po pierwsze, czy podoba ci się frontend? Bo mnie na przykład mało rajcuje, bo wolę rozwiązywanie problemu, a nie prezentacja wyników, jęśli interesuje cię tworzenie interfejsów użytkownika, frontend na przeglądarkę to chyba najłatwiejsza opcja. Również dobre nauczene się frontendu pewnie byłoby dobrym wyborem ze względu na budowanie kariery zawodowej (jeśli przewidujesz).
W skrajnym przypadku pewnie mógłbyś uywać gotowego backendu, żeby skupić się na frontendzie, a jeśli chcesz się nauczyć linuksa, mógłbyś kodować backend w bashu – język powłoki to świetne narzędzie pracy (jak dla mnie jedno z najważniejszych), pozwala zautomatyzować wiele zadań, które inni wyklikują. Wydaje mi się też, że praca w trybie komend bardziej skupia na celu, bo trzeba wiedzieć od razu co chce się napisać, tryb graficzny zachęca do „zgadywania”. Dodatkowo jeśli będziesz chciał obrabiać grafikę, wideo czy dźwięk automatycznie, w bashu da się najprostrze rzeczy zrobić dużo prościej niż w jakimkolwiek języku ogólnego przeznaczenia. Do dużych rzeczy się kompletnie nie nadaje, ale do rozwiązań na szybko i tworzenia prototypów jest super. Python jest podobnym rozwiązaniem, niektórzy używają go w podobnym charakterze do skryptów powłoki. Lepiej wspiera interfejsy graficzne i trochę bardziej wchodzi w stronę języka ogólnego przeznaczenia, za to nie jest powłoką, przez co używanie innych programów i ogólna obróbka tekstu jest utrudniona. Również Node.js jest ciekawym, w miarę szybkim rozwiązaniem, zwłaszcza jeśli nie widzisz się na linuksie i linii komend w najbliższym czasie.
Jeśli sądzisz, że chciałbyś rozwiązywać w przyszłości logikę problemów, może Scala? Robi się co raz bardziej popularny na rynku pracy, chodzi pod JVMem, więc ma większość zalet Javy, lepiej wspierając programowanie funkcyjne (przyszłościowy kierunek). Oczywiście Java też jest jakimś rozwiązaniem rozwojowym jeśli chodzi o karierę, jednak z technicznego punktu widzenia, mało fajnym. Są też tacy, którzy lubią Microsoft, mogą myśleć o C# i ASP.NET (ale to nie moja działka).
W dłuższej perspektywie warto pamiętać, że to wszystko jest niewielki ułamek tego co się robi fajnego z komputerami. Może się okazać, że spodobałaby ci się administracja systemami (wówczas bash to podstawa). Programowanie niskopoziomowe – C, lub dalej assembler – to mało popularne kierunki w obecnych czasach, ale jeśli jesteś w tym dobry, daje perspektywy. Ja na przykład lubię te klimaty, bo w nich programujesz naprawdę komputer, a nie maszynę wirtualną, w wielu dziedzinach wciąż może się okazać oszczędne pisanie oprogramowania (jak za dawnych dobrych czasów :p). Jest to inny typ satysfakcji z pracy, inny typ rozkminy, może to właśnie jest dla ciebie? I tu praca się znajdzie, dla dobrego fachowca, za dobry pieniądz, z mniejszą konkurencją, a kierunków jest co najmniej kilka: oprogramowanie systemowe i sterowniki ktoś przecież pisać musi, bez tego ani rusz jeśli chcesz zgłębiać bezpieczeństwo lub reverse engineering – zabawy dla prawdziwych kozaków, hehe. :D
Niejeden pewnie marzy o robieniu gier – można na przeglądarkę, ale jeśli chcesz robić większe gry to pewnie C++ byłby najlepszym rozwiązaniem, choć część programistów wybrałaby C. Z resztą programowanie systemowe to też nie lada gratka, jeśli chcesz zmienić świat, bo u podstaw programowania mamy zastój od jakichś 20-30 lat, więc po mojemu co najmniej kilku mózgów może zdobyć sławę, pieniądze i kobiety w tej dziedzinie. :D
Te ostatnie rzeczy to wspominam bardziej w perspektywie dłuższego czasu, bo (może z wyjątkiem gier), wysokopoziomowe techniki warto jednak znać, nabarać trochę oglądu czym w ogóle jest IT, z czym to się je, skąd pochodzi i dokąd zmierza. Wspominam na wszelki wypadek, bo pewnie mało kto wspomni, że coś takiego jest.
Powodzonka życzę.

0

Korporacje płacą za pisanie kodu z masą funkcjonalności który działa przez lata, a nie przepisywanie w kółko małych projektów.

Zależy gdzie. Bo jeśli chodzi o taki frontend i aplikacje w JavaScript to właśnie generalnie chodzi właśnie o to, żeby w kółko przepisywać od nowa projekty np. po to, żeby zrobić nowy interfejs, jakieś wodotryski, odnowić design na bardziej modny w danym roku itp.

Chodzi o to, żeby był jakiś ruch, żeby było widać, że strona jest odświeżana co jakiś czas (innymi słowy kwestie wizerunkowe - nie wnikam już w to, czy to ma sens, bo jestem tylko programistą a nie Januszem Biznesu - ale widać, że wiele stron w internecie jest zmienianych tylko z zachcianki jakiegoś decydenta, bo ktoś sobie na górze zadecydował, że musi być nowa strona, bo stara już ma kilka lat, więc musi być odświeżenie, na podobnej zasadzie jak się zmienia wystawy sklepów. Nie chodzi o to, żeby działało, tylko ma przede wszystkim wyglądać).

Dochodzi do tego fakt, że w JavaScript czas życia frameworków to jakieś 2-3 lata, a potem trzeba przepisywać na nowy framework, bo stary już przestaje być modny i programiści marudzą, że nie będą się babrać w spaghetti kodzie pisanym w starym frameworku (nie zauważając, że ich prawdziwym problemem jest kiepska architektura projektu i złe praktyki programistyczne, które spowodowały spaghetti kod, a to przy użyciu jakiego frameworka to jest napisane już jest problemem pobocznym).

0

I właśnie dlatego wybrałem Pythona, w JS nie nadążył bym za wprowadzanymi zmianami, szkoda życia. Co do Pythona 3, to jego twórca powiedział, że wersja 4 nigdy nie powstanie. Będą tylko drobne zmiany w trójeczce. Python ma 4 miejsce w tiobe i cały czas idzie w górę.

0

Spotkałem się z twierdzeniami, że pisanie webowych aplikacji w Pythonie to męka.

0

Znany Reddit napisany był w Pylon, obecnie bazuje na frameworku Pyramid. Lubię też framework Tornado.
http://www.tornadoweb.org/en/stable/

0

Z ciekawości sprawdziłem, ile ma projekt Pythonowy, w którym siedzę - 200k LOC, podzielony na 2 monolity z niezależnymi modułami, które się komunikują - katorgą praca nad tym nie jest. Wielkość projektu - ilość LOC jest problematyczna, ale pytanie jak ocenić wielkość i złożoność? Na podstawie zagadnień i rozwiązań czy samych LOC?

Stety lub niestety żeby dalej się rozwijać potrzebuje trochę back-endu do zapisu chociażby danych z formularzy na serwerze, zresztą nieistotne, przechodząc do sedna...
... wybrałem sobie Python i Django do back-endu, poczyniłem pierwsze kroki, język przyjemny, ale no własnie, marna popularność tego języka w polsce?
Gdybym robił to tylko dla siebie spoko, ale

Wracając do tematu - może zamiast uczyć się backendu postawić na rozwiązania serverless i skorzystać z takich usług jak Firebase? Jest to usługa skalowalnej bazy w chmurze i programista dostaje jsowe API i webową konsolkę i nie musi mieć serwera/backendu, po prostu zapisuje z frontu dane i tyle.

0
Wibowit napisał(a):

13k linii to dość mało.

W Polsce jest parę firm, które rozwijają w tym języku dużo większe projekty. Nie chcę się tutaj licytować co ma krótszą składnię, albo który język jest ładniejszy, bo to akurat jest oczywiste.

0
LukeJL napisał(a):

Korporacje płacą za pisanie kodu z masą funkcjonalności który działa przez lata, a nie przepisywanie w kółko małych projektów.

Zależy gdzie. Bo jeśli chodzi o taki frontend i aplikacje w JavaScript

Ubezpieczyciele albo banki frontend zlecają agencjom reklamowym albo specjalizowanym zespołom z naciskiem na UI, web, iOS, różnice między Dalekim Wschodem, USA i Europą. Powiązanie z core systemami banku są takie jak powiązania hostess albo stoiska w galerii handlowej z obsługą ubezpieczeń a faktyczną pracę firmy ubezpieczeniowej, wspomaganiem analizy, oceny ryzyka i całej reszty.

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