Laden...

Strukturierte Programmierung erlernen

Erstellt von Gruwe vor einem Jahr Letzter Beitrag vor 10 Monaten 1.005 Views
G
Gruwe Themenstarter:in
5 Beiträge seit 2011
vor einem Jahr
Strukturierte Programmierung erlernen

Hallo zusammen,

ich habe das Problem, dass ich zwar verschiedene Programmiersprachen beherrsche (im Studium Elektrotechnik hab ich damals C bzw. C++ und ein wenig Assembler gemacht, anschließend privat mal einiges in C# und auch ein bisschen Python), diese Kenntnisse auch privat gerne ausbauen möchte weil mir Programmierung schon Spaß macht, meine Programme aber sehr schnell unübersichtlich werden, wenn es mal ein bisschen umfangreicher wird. Das hemmt natürlich auch meinen Lernfortschritt bei den Sprachen, die ich verwende, was ich schade finde. Das war bei uns auch leider nie irgendwie Thema im Studium.

Daher mal die Frage an die Experten unter euch:

Wie kann ich denn strukturierte Programmierung erlernen? Also mit welchen Themen sollte ich mich beschäftigen, wenn ich sauberere Programme (nicht von den Codezeilen, sondern vom Aufbau, etc.) schreiben möchte?

Ich habe mir schonmal Bücher angeschaut zum Thema Software-Technik, aber irgendwie startet das immer sehr theoretisch mit irgendwelchen Lebenszyklusmodellen, etc. was imho sicherlich sinnvoll und wichtig ist, aber irgendwie auch erst, wenn man halbwegs brauchbare Programme schreiben kann. Oder nicht?
Gibt es da nicht irgendwelche Themen, die man auch recht schnell praktisch hands-on erlernen kann?

Was bietet sich da an? Erstmal UML lernen? Oder lieber erstmal sowas wie Design Patterns, oder oder? Habt ihr da Empfehlungen, wie ihr vorgehen würdet, wenn ihr wieder an dieser Stelle stehen würdet? Irgendwelche Literaturempfehlungen, etc.?

MfG und Danke!

16.806 Beiträge seit 2008
vor einem Jahr

Wie kann ich denn strukturierte Programmierung erlernen? Also mit welchen Themen sollte ich mich beschäftigen, wenn ich sauberere Programme (nicht von den Codezeilen, sondern vom Aufbau, etc.) schreiben möchte?

Programmieren. Programmieren. Programmieren.
Struktur ist vor allem a) Standards einhalten b) Pattern anwenden und das mit Abstand wichtigste: c) Erfahrung.

Standards bekommst Du über die "Best Practise" des jeweiligen Frameworks/Runtime.
Pattern bekommst Du aus Büchern (Design Patterns. Elements of Reusable Object-Oriented Software) / Blogs / anderen Projekten

Erfahrung bekommst Du aber nur über die Zeit und Praxis.
Das kann Dir niemals ein Video, Buch oder sonst was beibringen.

Bezogen auf C# ist meine Beobachtung, dass 90% der C# / .NET Devs nicht die Grundregeln von Namespaces verstehen und damit die absolute Basis von .NET Software Architektur missachten. Das ist eigentlich super traurig.

4.931 Beiträge seit 2008
vor einem Jahr

Hallo,

das m.E. Wichtigste ist, sich an die [Artikel] Drei-Schichten-Architektur zu halten, so daß man klar getrennte Zuständigkeiten und wenig Abhängigkeiten in seinem Programmcode hat.

Aber so wie Abt schreibt, ist ein Großteil Erfahrung.
Es kann auch dazu lehrreich sein, ein älteres Projekt neu zu erstellen, um zu erkennen, was man daran verbessern kann.
Die Design-Patterns sollte man grob kennen bzw. erkennen, wann man evtl. eines in seinem Programm gebrauchen kann und dann gezielt die passenden Design-Patterns heraussuchen.

M
368 Beiträge seit 2006
vor einem Jahr

C++ ... C# ...Python ..strukturiert

Die SOLID-Prinzipien könnte man noch recherchieren. Die bereits genannten Stichwörter stellen bekannte Bearbeitsmöglichkeiten dar, deren Vor- und Nachteile man kennt (oder kennen sollte). Ein Vorteil besteht aus menschlicher Sicht im einfacheren Ändern/Erweitern/Nutzen/... des Codes (an einer Stelle)

In C# ist alles (Methoden, Variablen,...) zwingend innerhalb einer Klasse zu defnieren. Mehrfachvererbung gibt es nicht und vermeidet das "diamond problem".

Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉

2.078 Beiträge seit 2012
vor einem Jahr

Zu der Frage nach dem "Wie" kann ich nichts mehr sagen, ich stimme Abt und Th69 zu.

Aber etwas, was man mMn. immer auf im Hinterkopf haben sollte: S.O.L.I.D
Das sind fünf Prinzipien, die nicht unbedingt einfach zu verstehen aber sehr wichtig sind.
Es gibt aber keine Anleitung, was man wie machen sollte und dann wird alles gut, es sind stattdessen sehr abstrakt formulierte Prinzipien, von denen man die Gründe und die Ziele verstehen muss, nur dann kann man sie auch richtig anwenden.

Am besten behält man sie immer im Hinterkopf und liest sich da alle paar Monate/Jahre neu ein, um sein Verständnis mit den neu gemachten Erfahrungen aufzufrischen.
Ansonsten kann ich noch das Buch "Clean Architecture" von Robert C. Martin (Uncle Bob) empfehlen, da sind unter Anderem die mMn. besten Erklärungen für die SOLID-Prinzipien enthalten. Oder in Video-Form eine Reihe von David Tielke auf YouTube, dessen Erklärungen ich auch gut finde - wenn auch nicht am besten: SOLID Principles von Robert C. Martin (Uncle Bob)

PS:
Und M.L. war schneller 🙂

A
764 Beiträge seit 2007
vor einem Jahr

Hallo Gruwe

Das wichtigste ist ja schon gesagt worden. Ich wollte noch ergänzen, dass es auch stark darauf ankommt, was für ein Produkt man entwickelt.
Eine Enterprise-Solution mit 10Millionen Zeilen Code wird anders aufgebaut, als ein Kommandozeilen-Tool.

Diverse Patterns oder [Artikel] Drei-Schichten-Architektur machen bei einem kleinen Beispiel-Projekt nicht direkt Sinn. Sollte die Anwendung aber wachsen, dann wird es ohne schnell unübersichtlich.

Gruss
Alf

6 Beiträge seit 2023
vor einem Jahr
Muss da mal was loswerden!

Bezogen auf C# ist meine Beobachtung, dass 90% der C# / .NET Devs nicht die Grundregeln von Namespaces verstehen und damit die absolute Basis von .NET Software Architektur missachten. Das ist eigentlich super traurig.

Ist ja auch kein Wunder. Wenn ich da an meine Umschulung denke (2017 Abschluss), habe ich immer gesagt "Das kann doch nicht alles sein!". Recht hatte ich, Absolute Grundlagen wurden nur angeschnitten und mehr als HTML, CSS und ein bissel PHP gab es nicht. Und damit sollst du als "Fachinformatiker für Anwendungsentwicklung" einen Job finden. 🙄
Nur wer sich dann wirklich alles selber sich erarbeitet und etwas Hilfe wie hier im Forum bekommt, der macht Fortschritte. Ich weiß ja nicht wie die richtige Ausbildung abläuft und ob die Azubis alles mitgeteilt bekommen, aber das wäre Glück in meinen Augen.
Selbst bei den Studierten die ich kenne fehlt viel Wissen 🙁

Ich selbst habe damals mit QBasic angefangen, und dann mit PHP. Selbst beigebracht habe ich mir dann Java und etwas Kotlin, C++.
Nun bin ich seit knapp 3 Monaten bei C# und das auch noch auf Linux (mit Avalonia). Das ist gerade nicht so einfach, vor allem weil mein Chef auch Resultate sehen will.

LG Maik

Java und PHP war meins.
Jetzt mit .Net eins.
Auf dem Linux muss es sein....s

Gott segne Avalonia.

16.806 Beiträge seit 2008
vor einem Jahr

Ich weiß ja nicht wie die richtige Ausbildung abläuft und ob die Azubis alles mitgeteilt bekommen, aber das wäre Glück in meinen Augen.
Selbst bei den Studierten die ich kenne fehlt viel Wissen 🙁

Bei beiden Varianten lernst Du i.d.R. "nichts".
Azubis lernen durch Eigeninitiative und durch den Betrieb, Studierende durch Eigeninitiative und Praxissemester - und mit viel Glück wenn sie gescheite Dozenten aus der Wirtschaft mit aktueller Praxiserfahrung haben.

Ansonsten hast Du in den meisten Berufsschulen Quereinsteiger als "Lehrer"; bei mir war es ein Ex-Druckervertriebler, der dann Software "beigebracht" hat.
Beim Studium hatte ich Uralt-Professoren, die auf dem Stand von 1990 waren; Mentoren, die weniger konnten als ich (und selbst Studierende waren). Ohne Dozenten von Microsoft / IBM wär mein Studien-Fazit zum Thema Software fatal gewesen.

Eigeninitiative ist das A und O bei Software.
Ohne das, kannst den Job an den Nagel hängen.

G
Gruwe Themenstarter:in
5 Beiträge seit 2011
vor einem Jahr

Hallo zusammen,

danke für eure Rückmeldungen! Ich werde mich dann mal dranmachen und üben, üben, üben 😉

M
368 Beiträge seit 2006
vor einem Jahr

üben

Und Fallstricke -trotz S.O.L.I.D.- vermeiden: Beitragsreihe bei Informatik-aktuell.de

Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉

T
73 Beiträge seit 2004
vor 10 Monaten

Na ja,

es gibt schon einige Regeln um Code sauber zu strukturieren.

  • Clean Code
  • Domain Design
  • immer wieder gerne Design Patterns
  • und schließlich Functional Programming
  • mit Funktoren und Monaden

(aufsteigend nach Schwierigkeit geordnet 😉)

und zu guter Letzt, eine ordentliche Portion Erfahrung, welche sich, zugegeben, halt nur im Laufe der Jahre ergibt.

Es ist immer gut, sich mit "alten Hasen" auszutauschen und offen zu sein wie die's machen.

L
1 Beiträge seit 2023
vor 10 Monaten

Vielen Dank für die informativen Artikel