Einstieg in Python

  • Python

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von slice.

    Einstieg in Python

    Moin,

    kennt ihr ein gutes Buch (möglichst als PDF erwerbbar) für den Einstieg in Python?

    Oder könnt ihr was zu dem Angebot von w3schools.com/python/python_intro.asp sagen?

    Würde mich dahingehend weiterbilden wollen, da es bei vielen Jobangeboten als Kenntnis erwünscht ist, bzw von Vorteil ist und ich Ende des Jahres einen neuen Job brauche

    Grüße und Gesundheit Runshak

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @Runshak Hier gibt es auch 44 Lernvideos zu Python for Beginners: https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6

    Edit: und hier gibt es weitere Free E-Books (auch für Python): packtpub.com/free-learning und goalkicker.com/
    Mfg -Franky-
    Bei Kursen/Büchern/etc spezifisch kenne ich mich jetzt persönlich nicht besonders aus, worauf du aber bei Python achten musst, sind die Libraries: In Python gibt es einige Ökosysteme von Libraries, die teilweise sehr unterschiedlich aufgebaut sind, und ggf. lohnt es sich, zumindest mit ein paar von denen mal Erfahrungen zu sammeln. Erwähnenswert wären da bspw. Flask oder Django (Webserver), PyTest (Unit-Tests), Numpy & Scipy (mehrdimensionale & wissenschaftliche Rechensachen), Pandas (Tabellen), die diversen QT-/TK-Bindings, und, wenn du was in Richtung Data Science & Machine Learning machen willst, Scikit-Learn (klassisches Machine Learning) und entweder Tensorflow/Keras oder PyTorch (Deep Learning), und auf jeden Fall die MatPlotLib (unglaublich flexibles Plotting). All diese Libraries gehen erstaunlich unterschiedlich mit den verschiedenen Sachen um: Flask und Django haben untereinander komplett unterschiedliche Ansätze, und sind beide ziemlich anders als "Standard"-Libraries in Python; die QT-Libraries haben in meiner Erfahrung einige komische Eigenheiten (z.B. im Bezug auf Threading), und Tensorflow/Keras und PyTorch können zwar größtenteils genau die gleichen Dinge, werden aber sehr unterschiedlich verwendet.

    Grundsätzlich würde ich empfehlen, erstmal die Grundlagen etwas anzuschauen und dann zu schauen, ob es Richtungen gibt, wo ein paar wenige von diesen Libraries besonders relevant sein könnten und dann diese mal einfach praktisch auszuprobieren und ein paar Sachen zu bauen. Generell ist Python auch so eine sehr einfach zu lernende Sprache, speziell, wenn man schon mehrere andere beherrscht, und man sollte eigentlich durch Ausprobieren relativ schnell auf ein ziemlich hohes Niveau kommen.

    Ich selbst hab den Umstieg vor ca. 2 Jahren richtig gemacht (für Machine Learning, weil das in .NET nicht gut geht) - davor hab ich Python sehr selten mal zwischendurch verwendet -, und das ging bei mir so ca. ne Woche, bis ich die Grundlagen einigermaßen beherrscht hab. Seitdem hab ich diverse verschiedene Sachen (neben ML auch mal Webserver, GUIs, ...) in Python gemacht, und wie immer lernt man natürlich nicht so schnell aus, aber mit ~100h Praxiserfahrung (und die kann man ja über ein paar Monate relativ gut nebenbei aufbauen) kommt man in Python sehr weit würde ich sagen. Bei Python hat man ähnlich wie bei C# auch noch relativ gute Chancen, Lösungen auf Probleme, die man hat, entweder auf StackOverflow, in irgendeinem Tutorial oder auf GitHub-Issues zu finden, und die Google-Fähigkeiten bleiben ja sowieso erhalten.

    Edit: Das, was slice im nachfolgenden Post gesagt hat, ist auch ein sehr wichtiges (und erstaunlich tiefes Thema): die Verwaltung von Packages (über pip und conda), Virtual Environments (venv, virtualenv, conda) und das übergreifende Dependency Management (z.B. über Poetry) sind auch nochmal wichtige Themen, mit denen man sich beschäftigen sollte. Speziell Poetry hat ein paar Eigenheiten, denen man sich bewusst sein sollte, wenn man von der nicht ganzheitlichen Lösung mit pip und virtualenv kommt, wo man das meiste selbst macht.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nafets“ ()

    Mir fällt zu dem Thema noch Virtual Environments and Packages ein.

    Edit - Korrigiert mich wenn ich das falsch darstelle:
    Kurz zusammengefasst, es ist nicht empfohlen Packages global zu installieren, da es u.a. zu Konflikten mit Versionen kommen kann, dafür gibt es dann venv. Die Packages werden in den "Ordner" (?) installiert und gelten nur dort.