"guten" Code als Anfänger schreiben

  • Hallöle,

    kurzer Anmerkung zu mir: studiere Elektrotechnik im mittlerweile fünften Semester, hatten ein Semester eine Einführung in C/C++. Mit Python/Raspberry angefangen habe ich im letzten Jahr, mit einem zu ambitionierten Projekt. Habe dann mal alles über Board geschmissen und einfach mal verschiedene einfache Sachen gemacht und die dann immer erweitert. So ist dann etwas mehr "Routine" reingekommen.

    So und jetzt die eigentliche Frage:

    Woran merke ich als Anfänger in Python ob der Code den ich schreibe gut ist?

    Wohl nicht nur daran ob er das macht was ich mache....

    In der Uni hatten wir immer so Progammieraufgaben, wo die Aufgaben sehr kleinschrittig formuliert wurden.

    Ich versuche so auch möglichst kleinschrittig zu programmieren (eine Funktion schreiben/testen) nur wenn das Projekt wächst und das Gerüst schon nicht richtig ist, wie soll dann das Haus stehen?

    Wenn man dann sowas ließt und versucht zu befolgen und einige Ratschläge aus dem Forum annimmt, stellt sich für mich immer noch die Frage, ob jemand anderes das versteht was ich gedacht habe .

    Und manchmal denke ich mir, dass jemand, mit mehr Erfahrung, einige Probleme deutlich eleganter löst....

    Ich fühle mich dann immer hin und her gerissen, ob ich eine Frage posten soll, wenn ich keine Antwort finde, oder ob ich mit Methode Brechstange programmiere. Letzteres gefällt mir eigentlich überhaupt nicht, dass wirkt dann irgendwie wie gewollt aber nicht richtig?? gekonnt...

    Ist der Pi nicht dafür da, dass man einfach mal drauf los programmiert???

    Wobei ich auch ab und an schon gelesen habe, dass so sehr viele schlechte Praktiken verbreitet werden und naja, :conf::conf:

    Und nicht falsch verstehen, ich finde hier doch eigentlich immer hilfreiche Antworten auch in älteren Threads:thumbup::thumbup::thumbup::thumbup::danke_ATDE:

    Vielleicht habt ihr ja auch mal so gefühlt, wie ich mich gerade fühle...

    Vor mir ein großer Berg und ich irgendwo am Fuße...

    Beste Grüße

    JaGr0

    P.S. Ich hoffe, dass der Thread im richtigen Subforum steht....

  • Woran merke ich als Anfänger in Python ob der Code den ich schreibe gut ist?

    Wenn du PEP 8, das Zen of Python und generelle Programmiergrundsätze wie DRY befolgst bist du schon mal auf nem guten Weg. Ansonsten ist das gerade als Anfänger natürlich schwer mit der Beurteilung.

    stellt sich für mich immer noch die Frage, ob jemand anderes das versteht was ich gedacht habe .

    Einfache Lösung: Kommentare und Docstrings ;)

    Ist der Pi nicht dafür da, dass man einfach mal drauf los programmiert???

    Im Prinzip ja, ursprünglich entwickelt um Schülern im UK Programmierung und Hardware näher zu bringen. Aber eben mit jemandem daneben, der Ahnung davon hat.

    Wobei ich auch ab und an schon gelesen habe, dass so sehr viele schlechte Praktiken verbreitet werden und naja, :conf::conf:

    Ja, das Internet strotzt nur so von falschen und gar fahrlässigen "Tipps", "Tutorials" und "Programmen".


    Im Zweifelsfall kannst du auch einfach deinen Code zum review hier "vorlegen", dann spricngt sicher noch der ein ooder andere Hinweis bei heraus. Und ja, im OT-Forum darfst du jedes noch so Pi-fremde Thema ansprechen :cool:

  • Hallo,

    Zitat

    Woran merke ich als Anfänger in Python ob der Code den ich schreibe gut ist?

    Wohl nicht nur daran ob er das macht was ich mache...

    Richtig. Auch schlechter Code heißt ja nicht, dass der Code nicht lauffähig ist. Es ist auch viel Erfahrungssache. "Eleganz" und Effizienz von Code kommt halt in Teilen nur mit Erfahrung.

    Zitat

    In der Uni hatten wir immer so Progammieraufgaben, wo die Aufgaben sehr kleinschrittig formuliert wurden.

    Ich versuche so auch möglichst kleinschrittig zu programmieren (eine Funktion schreiben/testen) nur wenn das Projekt wächst und das Gerüst schon nicht richtig ist, wie soll dann das Haus stehen?

    Das ist das richtig vorgehen. Das Gesamtproblem in Teilprobleme zerlegen, die ggf. wieder in Teilprobleme und für alle "kleinsten" Teilprobleme ein Funktion /Methode / etc. schreiben.

    Zitat

    Und manchmal denke ich mir, dass jemand, mit mehr Erfahrung, einige Probleme deutlich eleganter löst....

    Richtig, siehe oben. Manchmal liegt es aber auch schlicht daran, dass man als Anfänger weniger (nützliche) Python-Module kennt als Fortgeschrittene.

    Zitat

    Ich fühle mich dann immer hin und her gerissen, ob ich eine Frage posten soll, wenn ich keine Antwort finde,

    Code posten und eine "kritische Würdigung" abholen kann nie Schaden. Entweder bekommst du eine Bestätigung, dass alless richtig ist (was gut ist) oder du lernst aus den Verbesserungsvorschlägen was (was auch gut ist).

    Gruß, noisefloor

  • [OT]

    Code posten und eine "kritische Würdigung" abholen kann nie Schaden. Entweder bekommst du eine Bestätigung, dass alless richtig ist (was gut ist) oder du lernst aus den Verbesserungsvorschlägen was (was auch gut ist).

    Die Schwierigkeit dabei, ist die Kompetenz des Antwortenden einzuschätzen.

    Wenn man keine Kenntnis von Python hat und zusätzlich neu im Forum ist, an welchen Kriterien orientiert man sich?

    meine Strategie:

    • Nicht Jedem glauben +
    • Vergleichen mit der offiziellen Python-Dokumentation/-Tutorials.

    [/OT]

  • Genau so ist.

    Empfehlenswerte (Klassiker-)Bücher nach meinem Gusto:

    Clean Code

    Der pragmatische Programmierer

    Preiswerte Bezugsquelle für durchaus häufig gute Lehrbücher gibt's immer mal wieder beim Humble Bundle (so denn Englisch keine Hürde darstellt).

    Derzeit auch was in der Python-Ecke:

    https://www.humblebundle.com/books/learn-you-some-code-books

    https://www.humblebundle.com/books/head-first-books

    Laufen beide noch ein paar Tage (kommt aber -wie gesagt- auch immer mal wieder neues rein)

    Grüße

    ghmartin77

  • Woran merke ich als Anfänger in Python ob der Code den ich schreibe gut ist?

    Wohl nicht nur daran ob er das macht was ich mache....

    Grundsätzlich schon. Wichtig ist, dass der Code immer und in jeder Situation genau das macht was er soll. Wenn du dann noch doppelten Code durch Funktionen ersetzt und Funktionen die prinzipiell zusammengehören bzw. Eigenschaften von bestimmten Denkmodellen als Objekte ansiehst, bist du schon richtig weit. Und wenn du dann noch nach einem Entwurfsmuster deiner Wahl (Ich hänge an MVC) folgst, kann der Code gar nicht mehr schlecht sein. Ich habe für mich guten Code durch Kommentieren gelernt. Immer, wenn ich nicht wusste was ich als Kommentar schreiben könnte, war was Faul, weil ich dann die Sache die ich machen wollte, noch nicht mal besschreiben konnte. Die Kommentare fliegen dann natürlich in der produktiven Variane raus.

    Im übrigen gibt es für jede Sprache Vorgaben der Entwickler, wie man sie handhaben sollte. Aber ehrlich gesagt, Enwickler sind auch manchmal komische Typen ;)

  • Und in 10 Jahren wirst du zufällig in deinen alten, sauberen Code schauen und dich fragen was du damals für einen Mist geschrieben hast ;)

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Und in 10 Jahren wirst du zufällig in deinen alten, sauberen Code schauen

    Wozu? Wen man mit Klassen und Objekten arbeitet und man eine ordentliche Dokumentation gemacht hat, schaut man eigentlich nie wieder rein. Man weiß nur noch, was in die Klasse rein kann und was rauskommt. Umgekehrt genauso, also ruft man im Controller Klassen auf, ist es dem Controller völlig egal, wie es in der Klasse aussieht, hauptsache die Rückgaben stimmen.

  • Woran merke ich als Anfänger in Python ob der Code den ich schreibe gut ist?

    1. wenn er funktioniert!

    wo die Aufgaben sehr kleinschrittig formuliert wurden.

    geht ja nicht anders, ohne kleinschrittige Formulierung wirds nie Code.

    Pasta kochen funktioniert auch nicht wenn

    kein Topf

    kein Wasser

    keine Pasta

    kein Herd

    kein salz

    kein Strom oder Gas oder Holz oder Kohle oder Spiritus uvam.

    je kleinschrittiger umso Erfolg.

    Wenn der Code nach Jahren noch verstanden wird ist er perfekt (sinnvolle Variablenamen, Comments, logisch)

    Gruss aus Greece Athen

    https://www.google.com/maps/place/EO9…33!4d23.7007846

    von Andreas und mir an alle alten und neuen Haudengen, Neustatt & Schmitthofengang.

    Bilder

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    2 Mal editiert, zuletzt von jar (5. Oktober 2018 um 22:13)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!