Python w czym najlepszy

0

Witam. Myślę nad rozpoczęciem nauki języka Python. Wiem, że teoretycznie jest językiem "dość łatwym" do nauki. Chodzi mi jaka ścieżkę mógłbym obrać po nauczeniu się podstaw i do jakiej najlepiej nadaje się Python? Czytałem, że jest bardzo dobry do bazy danych, analiz, nauczanie maszynowe. Te kierunki mnie nie interesują, a z tego co wiem z neta do innych kierunków niż wyżej wymienione są lepsze języki specjalizujące się w danym kierunku. Czy w takim razie lepiej uczyć się innego języka? Uczyłem się wcześniej trochę c++ i java, lecz jakoś Python najłatwiej przyswajam🙂

2
LuFCc napisał(a):

Te kierunki mnie nie interesują

Może prościej będzie jak odwróci się pytanie i powiesz co ciebie interesuje?

a z tego co wiem z neta do innych kierunków niż wyżej wymienione są lepsze języki specjalizujące się w danym kierunku

Ciekawe, chętnie poznałbym te jezyki. Możesz podrzucić nazwy?
BTW to że istnieje język lepiej wyspecjalizowany nie koniecznie oznacza że nie używa sie Pythona. Często o wyborze języka programowania do projektu nie decyduje programista tylko polityka firmy. Np tak gdzie pracuję większość rzeczy pisze się w Scali bo niektóre projekty używają Sparka (A Spark jest domyślnie dla Scali). Ale polityka firmy jest taka że nawet jeśli projekt nie używa sparka to powinien być pisany w Scali (chodzi np o łatwość przesywania programistów między projektami)

1

Gdzie python daje radę:

  • tam gdzie jest nisza. Całe data science, pisanie skryptów ułatwiających pracę dla specialistów nie będących za bardzo zainteresowanych szerokopojętym programowaniem
  • pisanie skryptów: łatwo piszę się proste rzeczy, każdy programista jako tako zna pythona
  • prototypowanie: trzeba coś napisać na szybko byle działało
  • testy: nie potrzeba wydajności, dużo testerów na ten język

Gdzie python jest średni:

  • pisanie ogólno pojętych backendów (czyli to co robi większość programistów): słaba wydajność, średni tooling, dynamiczne typowanie (zależy jak kto na to patrzy)

Gdzie python ssie:

  • oprogramowanie, które musi działać szybko tj. krótkie czasy odpowiedzi lub małe zużycie zasobów. Python może być szybki, jeśli ograniczysz się do używania funkcji napisanych pod spodem w C. Niestety taki kod często jest brzydki więc lepiej po prostu użyć czegoś innego
0

Np. aplikacje webowe, desktopowe, mobilne, strony www. Czytałem na innych forach i artykułach, że Python zyskał teraz na popularności przez nauczanie maszynowe bo jest na to bardzo duże zapotrzebowanie, że mobilne lepsza Java, webowe lepsza Java Script itd. Nie mowie, że tak jest tylko chce zacząć naukę i chciałbym się dowiedzieć jak w końcu jest z tym Pythonem.

0
LuFCc napisał(a):

mobilne,

Tu czesto dużego wyboru nie masz. Na Androida natywnie jest Kotlin, kiedyś była Java (w siensie Java dalej jest natywna, ale Kotlin jest promowany). Na iOS jest Swift, kiedyś był Object-c. Są języki i frameworki które mówią że są przenośne jak React Native (więcej nie powiem bo nie wiem). Na mobilki raczej w Pythonie aplikacji nie napiszesz

desktopowe

mało takich ofert pracy, Raczej języki natywne Rust/C++ lub na windowsie C#

aplikacje webowe
strony www.

Jak to rozróżniasz? Jeśli strony www mają mniej logiki od aplikacji webowych to strony www to PHP (jak to forum). Aplikacje webowe za to dzielą się na frontend i backend. Frontend to JavaScript. Backend - zwykle co sobie tylko zamarzysz. ja robiłem w Scali, Kotlinie i Javie (niekoniecznie w tej kolejności)

UPDATE nie znajdziesz jednego języka do wszystkiego. Musisz się określić co chcesz robić i wybrać pod to język. Albo wybrac jezyk i sprawdzić czy są do niego oferty pracy

UPDATE 2 Po manyśle stwierdzam że najbardziej uniwersalny może być JavaScript. Co prawda go nie lubię, ale jak chcesz spróbować wszystkiego to może to być najlepszy wybór

3

Zacznij zatem od Python. Naucz się rozwiązywać problemy przy pomocy tego języka.
W programowaniu język programowania nie jest najważniejszy. Najważniejsze jest to, czy umiesz rozwiązać jakiś problem zachowując czytelność, integralność i możliwość przyszłych zmian.
Tego nie nauczysz się z książek ale z praktyki, słuchania innych i ciągłemu doszkalaniu.

0

Powiem tak. Python wydaje mi się najlżejszy do przyswojenia. Lecz wnioskując jest on najlepszy w Data Science, machine learning co w ogóle mnie nie interesuje. Tak to teraz rozumie 🙂. Nie chodzi mi by był to język do wszystkiego, tylko w miarę możliwości "prosty" i specjalizował się w jednej dziedzinie co wyżej pisałem, a python chyba taki nie jest?

1

specjalizował się w jednej dziedzinie co wyżej pisałem

Ale w której dziedzie. Podaj dziedzinę to dostaniesz najlepszy jezyk do tego. A jak nie to JavaScript

4

Uczyłem się wcześniej trochę c++ i java, lecz jakoś Python najłatwiej przyswajam🙂

To w czym problem?

Myślę nad rozpoczęciem nauki języka Python.

Aha, wszystko jasne. "myślę nad rozpoczęciem" to eufemizm na "prokrastynuję".

Nie mowie, że tak jest tylko chce zacząć naukę i chciałbym się dowiedzieć jak w końcu jest z tym Pythonem.

Wejdź sobie na portale pracy z IT (JustJoin.it, NoFluffJobs itp.) i wyszukaj oferty z Pythonem, to będziesz miał pewne przybliżenie, jakie jest zapotrzebowanie na rynku.

zyskał teraz na popularności przez nauczanie maszynowe bo jest na to bardzo duże zapotrzebowanie

  1. Na wszystko jest bardzo duże zapotrzebowanie w IT. O wszystkim można tak powiedzieć. Jednak zwykle "dużo zapotrzebowanie" dotyczy osób z doświadczeniem, a nie juniorów, którzy zaczynają dopiero karierę.
  2. Uczenie maszynowe wymaga zaawansowanej matmy, więc ma duży próg wejścia (no chyba że już matmę znasz, bo np. kończyłeś kierunek ścisły i byłeś dobry w matmie)
0

Do grania w CTF. ALbo szybkiego przetwarzania danych, sprawdzenia czegos itp.

0

Aplikacje webowe, strony www. Jest sens nauki Python?

1
LuFCc napisał(a):

Aplikacje webowe, strony www. Jest sens nauki Python?

Na nofluffjobs jest aktualnie 17 ofert z frameworkiem Django, Chyba najpopularniejszym frameworkiem w Pythonie do robienia stron. Sam sobie odpowiedz czy to dużo czy mało

0

Więc chyba warto? Python, a później Django. Nie wiem czy 17 ofert na tym serwisie to dużo czy mało🙂

1
KamilAdam napisał(a):
LuFCc napisał(a):

Aplikacje webowe, strony www. Jest sens nauki Python?

Na nofluffjobs jest aktualnie 17 ofert z frameworkiem Django, Chyba najpopularniejszym frameworkiem w Pythonie do robienia stron. Sam sobie odpowiedz czy to dużo czy mało

to chyba zależy od stronki, bo na justjoin.it około 100, not bad chociaż java ma kilka razy więcej (edit bo jakoś dziwnie oni to policzyli i wyszło za dużo xD )

0

że Python zyskał teraz na popularności przez nauczanie maszynowe bo jest na to bardzo duże zapotrzebowanie

Ale ty serio myślisz że tu chodzi o klepanie crudów ML przez juniroów? to o czym mówisz to matematyka i statystyka która w pewnym momencie zostanie zapisana w kodzie pythona albo jakaś statystyka do analizy danych itd. To nie będzie klepanko model.detect(zdjecie) Chyba że mówisz o frontach na ta czymś takim.

0

Więc warto inwestować czas w python i django czy lepiej JacvaScript?

1

ale to ty chcesz sie przebranżowić czy co?

1

@LuFCc:

Nie ma znaczenia jaki pierwszy jezyk wybierzesz (byle nie był jakiś patologiczny, a python patologiczny nie jest)
I tak niewyobrażalnym jest etap pracy (zleceń) komercyjny ze znajomością jednego. Programista z jednym językiem, to jeszcze nie programista. Dopiero potem ma jakiekolwiek horyzonty

Statystycznie zawodowo używa sie innych/ego języków/a niż pierwszy uczony.

Więc spokojnie się ucz, w realnych projektach zobaczysz co ci leży, co nie pasuje,do jakiej dziedziny cie zycie zaniesie.

Chodzi mi jaka ścieżkę mógłbym obrać po nauczeniu się podstaw

Żadną.
15k odjeżdża, kolego

5

Wybór języka do nauki programowania przypomina mi wybór młotka. Czy lepszy mały, a może taki duży - a może jednak pneumatyczny ?
W tym wyborze, "najlepszego" narzędzia, pomija się aspekt tego czy w ogóle wiesz co to jest młotek, po co ten młotek, czy kiedykolwiek używałeś młotka ?
Ja mam takie przekonanie - że kurna użyj wreszcie jakiegoś młotka. Powbijaj nim pinezki, potem małe gwoździe.
Z czasem przyjdzie "objawienie" i będziesz wiedział, że dużego gwoździa małym młoteczkiem nie wbijesz, a młota pneumatycznego najlepiej używać mając słuchawki wygłuszające na uszach.

0

Jeszcze jedno pytanie🙂 Według was prostszym i przyjemniejszym językiem do nauki jest Java Script czy Python?

1
LuFCc napisał(a):

Jeszcze jedno pytanie🙂 Według was prostszym i przyjemniejszym językiem do nauki jest Java Script czy Python?

W sumie obojętnie. Oba też są podobnie przydatne z perspektywy bycia side-language w przyszłości, JavaScript bardziej przyda się osobom, które chcą robić full-stack, a Python osobom, które bardziej opsują. Prawdopodobnie większość osób tutaj zna w jakimś stopniu jeden i drugi.

1

Python to pełnoprawny język programowania po stronie backend-u. Tam gdzie pracuję, w tym języku powstaje aplikacja desktopowa. Pewnie dałoby się ją napisać też w Javie, czy C#. W pewnych zastosowaniach Python jest faktycznie wolny, ale w takim przypadku można pewien komponent napisać w czymś bardziej wydajnym, a wynik obrabiać już w samym Pythonie. Takie przypadki jak się zdarzają, to są raczej rzadkie. Bardzo niedojrzałe jest dla mnie stwierdzenie, że Python jest wolny, to napiszmy całą apkę w C++, bo to szybkie. I się potem ludzie katują z C++.

0
Saalin napisał(a):
LuFCc napisał(a):

Jeszcze jedno pytanie🙂 Według was prostszym i przyjemniejszym językiem do nauki jest Java Script czy Python?

W sumie obojętnie. Oba też są podobnie przydatne z perspektywy bycia side-language w przyszłości, JavaScript bardziej przyda się osobom, które chcą robić full-stack, a Python osobom, które bardziej opsują. Prawdopodobnie większość osób tutaj zna w jakimś stopniu jeden i drugi.

Nooo, są różnice ...
O ile w pythonie można uzyskać mały ale kompletny i użyteczny program (command line / bazowy, bardzo minimalistyczny desktop)

Użytecznego programu webowego w JS nie uzyskasz, musisz nadgonić podstawy HTML, CSS, a i to ubogo, bez backendu to zabawki.

Nie ma, nie istnieje użyteczność w większej skali, jak sie zna jeden język.

EDIT: ii jeśli od wczoraj poznanie JĘZYKA (syntax, z bibliotekki standardowej print) wydaje sie czymś na miare Himalajów, to mam złą wiadomosć. Bez "ekosystemu" to zalażek do wstępu (z tych dwóch w JS palcem nie kiwniesz nad czymś ambitniejszym bez obszernego ekosystemu).

Mając 24h i ciekawość życiową, to dzis byś zadawał szczeólowe merytoryczne problemy, a nie oczekiwał wskazań "czy" się uczyć.

2
LuFCc napisał(a):

Jeszcze jedno pytanie🙂 Według was prostszym i przyjemniejszym językiem do nauki jest Java Script czy Python?

Jako programista JavaScriptu (który zna również Pythona) mówię, że Python jest przyjemniejszy do nauki, jeśli chodzi o sam język.

Python jest bardziej spójny i przemyślany jeśli chodzi o język, składnię, bibliotekę standardową, a JavaScript jest pełen niespodzianek i zaszłości historycznych.

Z drugiej strony w JS można fajniejsze rzeczy zrobić, bo strony, animacje, grafikę, w Pythonie raczej się tego nie robi (chociaż jak ktoś się uprze, to można), więc jak będziesz się uczyć Pythona, to zwykle jakieś nudne rzeczy będziesz robić (chyba, że wejdziesz w machine learning albo będziesz robić jakieś wizualizacje w Jupyter, to może być fajne, ale to jednak ma wyższy próg wejścia).

Czyli:

  • łatwiejszy powinien być Python
  • ale w JS można fajniejsze rzeczy robić, chyba, że wejdziesz w machine learning, wtedy w Pythonie fajniejsze rzeczy będziesz mieć
5

Ja zacząłem naukę od Pythona. Ogarnąłem podstawy, napisałem jakieś apki konsolowe lub z GUI i przystąpiłem do nauki Django. Django ma bardzo dobrą dokumentację i wymusza pewną architekturę oraz strukturę projektu. Zrobiłem jakiś projekcik z użyciem djangowych templatów, więc oczywiście musiałem też ogarnąć HTML i CSS. Potem ogarnąłem, że jest takie coś jak Django Rest Framework, więc również jego zacząłem się uczyć. Doszedłem do momentu, kiedy napisałem małe Rest API i no fajnie, ale raczej nie zrobię na kimś wrażenia aplikacją wypluwającą JSONy.

Zacząłem się uczyć JS, żeby połączyć to w całość, a było to dużo prostsze przez jakąś już znajomość Pythona. Nawet nie oglądałem ani nie przerabiałem żadnego kursu, a po prostu zacząłem w nim pisać. Słyszałem wcześniej, że są jakieś Vue i inne Reacty, więc pomyślałem, że spróbuję Vue i tak napisałem front do mojego API. Potem zrobiłem kolejny projekcik DRF + Vue, ale większy. Następnie pomyślałem, że spróbuję zrobić apkę, ale tym razem z backendem w JSie, ale Typescript też wydawał się interesujący, więc finalnie przy jego pomocy napisałem back, a do tego oczywiście Vue.

Potem przez jakiś czas równolegle doszkalałem się w Pythonie i JS/TS, bo szkoda mi było stracić czas na poznanie Pythona, aż finalnie dostałem pierwszą pracę w JSie i do dzisiaj praktycznie nie pisałem już w Pythonie oprócz jakichś systemowych skryptów. Morał jest taki, że na początku w ogóle nie zakładałem, że będę się uczył Javascripta, co dopiero mówiąc o pracy w nim, a miałem do niego duży uraz, bo w technikum nauczyciel molestował nas JQuery oraz po prostu nie umiał uczyć.

Technologia nie jest ważna, a umiejętność rozwiązywania problemów. Ja też nie uważam czasu poświęconego na naukę Pythona, czasem straconym. Dał mi zalążki programistycznego myślenia i nawet jeśli teraz go nie używam, to poznałem jego możliwości, które być może w przyszłości wykorzystam.

49

Pytanie co chcesz robić. Jeśli crudy to są lepsze wybory niż python.

Python jest najczęściej wybierany do projektów typu data / cloud i w takowym stacku jest najlepiej opłacany. Nie każdego jednak takie projekty interesują.

Jako świeżak musisz nauczyć sie po prostu programować (Analityczne myślenie, rozbijanie problemów na mniejsze warstwy). Język to tylko narzędzie.

1

python jest swietny do szybkiego prototypowania, jakies szybkie MVP np w Django

0

Jeszcze mi sie przypomniało. Na Azure Functions documentation można odpalać Pythona. Znajomy miał taki projekt. Nie do końca rozumiem czemu wybrali Pythona zamiast Javy/Scali (może szybkość wstawania). JavaScript też tam jest (z szybko wstających)

1

Gdzie python najlepszy?

Do tematów powierzchownych, gdzie widzisz w głowie całe rozwiązanie i chcesz rozwiązanie wcielić w życie, bez nadmiernego angażowania się w obróbkę kodu.

Do tematów niepowierzchownych, gdzie nie widzisz w głowie całego rozwiązania i gdy chcesz lepiej zrozumieć problem, poprzez analizę danych / interaktywne programowanie, by szybciej znaleźć optymalne rozwiązanie.

Ja uznaję, że punktem sprzedaży pythona jest możliwość łączenia na raz obu wymienionych opcji, bez większego skupiania na inżynierii oprogramowania.

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