Python und was noch?

  • Mahlzeit zusammen,


    seit einiger Zeit bin ich recht interessiert einige Dinge mit dem Pi und/oder Microcontrolern zu bauen.

    Auf jeden Fall wollte ich im Vorfeld schon mal anfangen mich mit Programmierung auseinander zu setzen und so einen Grundstock an Wissen zu haben bevor ich den ersten Pi kaufe und anfange.

    Recht schnell hat sich hier Python als ein gutes Werkzeug präsentiert, daher habe ich angefangen erstmal die kostenlosen Quellen des Internet zu nutzen um zu schauen, ob ich damit überhaupt klar komme. Wenn die Feiertage rum sind werde ich aber auf jeden Fall mal zum Buchdealer und mir das Buch 'Einstieg in Python: Ideal für Programmieranfänger' kaufen.

    Die letzten Tage hab ich auch mal geschaut, was ich so gerne verwirklichen möchte, und ob das überhaupt realisierbar ist.
    Auf jeden Fall ist mir dabei auch aufgefallen, dass ich wohl die eine oder andere Anwendung via Internet steuern möchte bzw muss.

    Nun hab ich aktuell ein paar Grundlagen in HTML und CSS drauf, das reicht für nette Webseiten, aber nicht um damit etwas auszulesen, abzufragen oder anzusteuern.

    Jetzt gibt es ja einige ... ich sage mal ... Erweiterungen wie RubyRails, jQuery, php etc...
    Daher wollte ich mal fragen, was davon ich mir ggf schon mal mit anschauen sollte und ob/oder ob hier jemand andere Tipps geben kann was noch von Interesse sein könnte/sollte.

    Übrigens wird der erste Pi wohl Mitte bis Ende Januar hier auf dem Basteltisch sein. Bis dahin werdet ihr wohl noch relativ Ruhe vor meinen Problemfragen haben.

    In diesem Sinne, allen noch festliche Feiertage.

    Gruß Mario

  • Mit Rails, PHP und jQuery wirfst du aber drei komplett unterschiedliche Dinge in einen Topf. Dass du serverseitig mit einem Python WSGI Framework wie Flask, bottle und co nichts falsch machst unterschreibe ich. Aber neben CSS und HTML Grundlagen ist JS sicher kein Fehler. Zu allen drei Themen gibt es gute Bücher für Anfänger und sehr Fortgeschrittene, bitte aber darauf achten, dass nicht die Versionen von vor 10 Jahren behandelt werden. Soll heißen: CSS3, HTML5(.1) und am besten ES6. Wenn dir die ersten beiden nichts sagen, hast du einiges nachzuholen. Und jQuery vergisst du meiner Meinung nach am besten gleich wieder, durch die HTML5 APIs ist das IMHO komplett überflüssig geworden. Azch wenn viele es gleichsetzen: jQuery ist zwar in JavaScript geschrieben, aber JavaScript ist kein jQuery.

  • bootsmann  meigrafd und Linus

    Danke für die Infos.

    Die von mir genannten sind mir halt bei den Onlineangeboten wie CodeCademy, FreeCodeCamp etc im Zusammenhang mit Webprogrammierung aufgefallen.

    Ja, wenn dann rede ich von HTML5 und CSS3, damit habe ich vor einigen Monaten mal angefangen und ein paar Seiten zum Test erstellt, aber arbeite im Grunde eh meist mit Wordpress... aber das ist ein anderes Thema.

    Ich werde auf jeden Fall mal nach bottle, Flask und JS (EDIT: gerade geschaut was JS ist, soll wohl für JavaScript stehen.... ok, davon hab ich dann doch schon was gehört...) schauen, davon hab ich nämlich noch nichts gehört.


    Ja, Bücher werde ich mir auch nach und nach anschaffen, finde ich zum lernen und Nachschlagen immer noch besser als Onlinedokumentationen. Nur sind diese ja meist auch nicht ganz günstig und wenn man nach günstigen gebrauchten schaut sind dass meist wirklich welche mit 10 Jahren + für Uraltversionen.

    Wie schon geschrieben, vielen Dank für die Tipps und die Richtung in der ich mich orientieren sollte.

  • Hofei

    Ja, das Buch hab ich schon auf meiner Liste.
    Das wäre für das Thema Python das Buch nach dem Einsteigerbuch.
    Hab mich schon mal schlau gemacht, welche Bücher für mich von Interesse wären und die alle bei Meyersche gespeichert.

    Und ich bin wirklich eher der Freund von richtig Büchern, sowohl bei Fachbüchern wie auch bei "normalen" Büchern. Hab zwar nen Kindle, aber den nutze ich fast gar nicht... aber das ist wieder ein anderes Thema.

  • Hallo,


    das genannten Buch ist ok - in den neueren Auflagen. Es gibt im Web wohl auch kostenlos die 1. und / oder 2. und / oder Auflage - lies' die nicht, die sind in Teilen schlecht bis falsch. Ab der 4. Auflage ist es ganz gut (und zeigt idomatisches Python und ist fehlerfrei).


    Gruß, noisefloor

  • Hofei hab mal etwas nach dem Buch gegoogelt. Auf www.python-forum.de kannst du die Forenmitglieder damit anscheinend an die Decke treiben ^^ . Da wird klar davon abgeraten dieses Buch zu kaufen (Siehe Link) .


    Da wird jedoch das Python Cookbook uneingeschränkt empfohlen. Kann über den link frei über github aufgerufen/heruntergeladen werden, voraussetzung halt dass man Englisch einigermassen beherrscht. Find aber für Anfänger wie mich fehlt da irgendwie eine Einleitung in das ganze (Z.B. das klassische Hello World!). Das erste Kapitel fängt gleich damit an eine Sequenz in einzelne Variablen zu packen. Aber als weiteres Nachschlagewerk bei spezifischen Problemen sicher nicht schlecht so vom ersten Eindruck her.

    Ich suche nicht nach einer fertigen Lösung sondern nach dem Weg dahin ;)

    Edited 2 times, last by Apop85 ().

  • Klar gibt es auf Englisch bessere Lektüre. Ich besitze oben genanntes Buch in der neusten Auflage ebenfalls und kann nicht klagen. noisefloor sagt es ja schon, eine ältere Auflage (1 oder 2) hatte ich mal aus der Bibliothek ausgeliehen, war nicht so prickelnd. Noisefloor spricht sich aber auch im Python-Forum nicht gegen das Buch aus: https://www.python-forum.de/viewtopic.php?t=37253#p286376 ;)

    Ansonsten muss ich allerdings sagen, dass ich bei den vorderen Kapiteln schon lange nicht mehr hineinschaue und deshalb möglicherweise mittlerweile eine Andere Meinung der Einleitung dort haben würde. Habe es aber als sehr "basic" in Erinnerung, mit einigen leichten Abschweifen in die allgemeine Informatik.

    Aber als weiteres Nachschlagewerk bei spezifischen Problemen sicher nicht schlecht so vom ersten Eindruck her.

    Ein brauchbares Nachschlagwerk das genannte Buch auch. Es wird ein großer Teil der Standardbibliothek bearbeitet mit kurzen Beispielen jeweils. Am Ende muss es jeder selbst wissen, ich bin der Englischen Sprache mächtig und bevorzuge Literatur zu technischen Themen auf Englisch, für einen Einsteiger mit unter Umständen auch nur einfachen Englischkenntnissen ist ein Buch auf Deutsch aber wohl möglich um einiges brauchbarer.

  • Hallo,


    Apop85: deine Aussage

    Quote


    Auf www.python-forum.de kannst du die Forenmitglieder damit anscheinend an die Decke treiben ^^ . Da wird klar davon abgeraten dieses Buch zu kaufen (Siehe Link)

    ist in dieser pauschalisierten Form falsch, du wiederholst da einfach nur unreflektiert Vorurteile, die von alten, schlechten Auflagen auf die neueren, guten Auflagen übertragen wurden. Richtig ist, wie es in meinem Post#8 und linusg Post #10 gesagt ist. Wenn du auf der Webseite von freiesMagazin, findest du auch eine Rezension zu der neueren Auflage - und diversen anderen (Python-) Büchern.

    Wichtig ist halt immer, die Auflage zu beachten, für das das Gesagte gilt. Glücklicherweise verbessern einige Autoren ja ihre Fehler aus alten Auflagen, wie auch im Fall des "Python 3 - Das umfassende Handbuch".


    "Python Cookbook" gilt auch als einer der besseren Bücher - da sollte man aber mindestens fortgeschrittenere Anfänger sein, um das Buch nutzen zu können.


    Für einen sehr guten Überblick über die Standardbibliothek von Python 3 ist das Buch Python 3 Standard Library by Example sehr gut, den Inhalt gibt's aber auch vom Autor frei verfügbar online: Python 3 Module of the Week


    Das IMHO beste Python-Buch, was man gedruckt bekommt, ist "Fluent Python". Ist aber definitiv kein Einsteiger Buch, sondern eher für Fortgeschrittene, die mehr über Python lernen möchten, um es (noch) effektiver zu nutzen.


    Gruß, noisefloor

  • Mahlzeit und Danke für eure Anregungen zu dem Buch, bzw zu den weiteren Büchern.

    Mein Englisch ist so lala. Im Urlaub komme ich damit alle mal aus, müsste ich jetzt in einem englisch sprachlichen Land leben, dann würde ich da auch überleben. Aber bei Fachliteratur ist das dann oft doch etwas anderes.
    Ohne Frage werden die englischen Werke die wohl bessere Lektüre zu dem Thema.
    Wie geschrieben werde ich mir erstmal das Einsteigerbuch kaufen, wenn ich dass dann durchgearbeitet habe, und die Grundlagen (viel mehr erwarte ich von einem Anfängerbuch nicht) verinnerlicht habe, ggf kann ich damit auch weiterführend englische Bücher nutzten. Ich finde es halt nur etwas mühselig beim lernen von Basics ggf. nebenbei noch die Erklärungen übersetzen zu müssen. Wenn aber die Grundlagen klar sind, dann kann ich mir gut vorstellen, dass mein Englisch für weitere Literatur reicht.
    Aber wie auch schon angemerkt glaube ich, dass die neuer Auflage vom Python3 Buch schon recht gut sein wird. Zumindest sind die Rezessionen die ich gelesen habe überwiegend sehr positiv gewesen.

    Für einen totalen Anfänger wie mich wird wohl eh noch viel trockene Theorie, und für mich persönlich erstmal uninteressante Themen auf mich zu kommen, und da kommen dann auch immer wieder Punkte, wo die Motivation etwas nachlässt, da will ich nicht unbedingt noch mit "zu schwerer" Lektüre draufhauen.

    Die Links zu dem 'Python Cookbook', 'the Python 3 Standard Library' und 'Python 3 Module of the Week' hab ich auf jeden Fall schon mal gespeichert.
    Besten Dank hierfür.

    Aber erstmal eines nach dem Anderen und die Grundlagen verinnerlichen. Mit dem Pi zum Mond möchte ich erst im Sommer, aber nur wenn er gleichzeitig noch Retrospiele und den Spotify Stream auf dem Klo schafft ;)

    Gruß Mario

  • Vielleicht solltest Du Dich mal nach einer richtigen Programmiersprache umsehen.


    So sehr ich C hasse, aber es scheint mir immer noch besser als Python: Eine Sprache, die Verschachtelungen anhand der Anzahl der vorgestellten Leerzeichen erkennt, wie krank ist das denn? Und dann läuft alles im Interpreter, arschlahm. Für ein kleines Script muss erst der hundertmal größere Interpreter geladen werden.


    Um mal schnell paar Blöcke im Minecraft zu setzen mag das ja ganz nett sein. Aber als ernstzunehmende Programmiersprache...?

  • Hallo Timm Thaler ,


    warum empfiehlst dann nicht auch gleich Deine favorisierte Programmiersprache FreePascal/Lazarus? (;


    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • warum empfiehlst dann nicht auch gleich Deine favorisierte Programmiersprache FreePascal/Lazarus? (;

    Weil ich weiss, dass Pascal für einige Leute schon "zu strukturiert" ist.


    Natürlich wäre das eine Empfehlung, zumal es in der neuen Stretch ja sogar eine recht aktuelle Lazarus-IDE und einen aktuellen Freepascal-Compiler gibt, Cross-Compiling von Windows auf Raspberry-ARM funktioniert, man von Dateizugriffen (Tabellen, Datenbanken, XML-Konfigs) über GPIOs, SPI-, I2C- und serieller Schnittstelle bis Netzwerk (Telegram-Bot) auf Alles Zugriff hat, Programme mit GUI oder Commandline erstellen kann, CGI und Fast-CGI ist ebenfalls möglich.


    Aber in Pascal muss man halt richtig programmieren. Nicht einfach nur "coden". Dafür läuft das Programm auch in 3 Jahren noch, während am Pyhton-Script jedes neue Update für Überraschung sorgen kann.

  • Hallo,


    Timm Thaler: du hast di Frage in 1. Post nicht gelesen oder verstanden oder willst einfach nur das Betrieben, was landläufig als "Scheißhauspropaganda" bekannt ist. Python steht doch gar nicht zu Disposition.


    @Marie Be: Lesen ist am Anfang ok, aber Programmieren ist auch viel "learning by doing". Was immer hilft ist, dass man ein konkretes Projekt hat, was man umsetzen möchten. Das Projekt darf ambitioniert sein, aber sollt mit dem vorhandenen Wissen umsetzbar sein. Schlecht ist z.B., wenn man direkt ein größere GUI-Anwendung plus Datenbankanbindung programmieren will. Das tut's nur, wenn man die Datenstrukturen und Objektorientierung von Python verstanden hat.

    Was auch immer hilft ist, den programmierten Code zu posten, Kritikabholen, verbessern und beim nächsten Mal besser machen.

    Das gilt aber im Prinzip für alle Programmiersprachen.


    Gruß, noisefloor

  • Timm Thaler

    Und wieso sollte ich mich jetzt mit C rumärgern, wenn Du es doch selber hasst?


    Ich habe mich im Vorfeld ja schau geschaut mit welchen Programmiersprachen so welche Projekte verwirklicht wurden, und da scheint so ziemlich alles mit Python zu gehen. Hinzu kommt, dass es wohl einfacher zu lernen ist als C.


    Und wieso Python jetzt keine richtige Programmiersprache sein soll verstehe ich auch nicht.


    Programmiersprachen sind doch nichts anderes Werkzeuge. Und ich wähle für meine Aufgaben in der Regel ein Werkzeug von dem ich mir verspreche mit dem geringsten Aufwand so genau wie nötig mein Ziel zu erreichen.

    Aus dem Grund habe ich z.B. auch drei Bohrmaschinen im Keller oder fünf Fahrräder im Schuppen.


    Aber ich lasse mich immer gerne belehren.

    Daher, was spricht dafür C anstelle von Python zu nutzen?

  • Das Python anscheinend so oft verwendet wird hat genau den Grund: Man kann damit "mal schnell" was hinbasteln. Und das sind dann die Tutorials, wo gezeigt wird, wie man "mal schnell" GPIOs anspricht oder "mal schnell" einen Sensor abfragt und "mal schnell" die Werte in eine Datenbank klopft.


    Python ist insofern eine richtige Programmiersprache, dass es turing-vollständig ist.


    Ich habe noch Amiga-Basic programmiert. Damals war Basic verpönt, weil es eine Interpretersprache ist und dadurch langsam. Das hängt Basic bis heute an, obwohl es längst gute Compiler für die verschiedensten Basic-Dialekte gibt. Mit diesem Hintergrund kommt es mir allerdings komisch vor, dass heute Python als Interpretersprache über den Klee gelobt wird, obwohl es arschlahm ist. Von der grottigen Syntax mal abgesehen.


    Wie gesagt, für mal schnell was zusammenhacken mag das gehen. Aber wenn Du z.B. ein CGI-Programm hast, welches bei Aufruf einer Webseite gestartet wird, um an diese Werte zu übergeben, dann mag es schon einen Unterschied machen, ob das Programm sofort ausgeführt wird oder ob erstmal ein Interpreter geladen wird, der sich das Programm anschaut, und dann Schritt für Schritt ausführt.


    Oder um bei Deinen Bohrmaschinen zu bleiben: Python baut Dir jedesmal die Bohrmaschine erstmal neu zusammen.