Programmiergrundlagen
-
Warum muss man es so konkret erklären? Ein Programmierer muss in der Lage sein, Probleme zu erkennen und Problemlösungen zu finden. Er muss komplexe Abläufe verstehen und selbst entwerfen können. Welche Werkzeuge er für eine bestimmte Aufgabe wählt (welche Sprache, welche Kontrollstrukturen, Datentypen Algorithmen usw.) ist doch erst mal nebensächlich.
-
Vielen Dank für Eure Anworten, die mir sehr weiterhelfen. Das mit dem Problem analysieren, und dann mit den wichtigsten Grundstrukturen arbeiten und diese üben ist sicher der beste Weg.
Viele Grüße,
Martin36
-
Unabhängig von der Programmiersprache gibt es noch ein paar grundlegende Regeln für das Programmdesign:
- Aufteilung des Programmes in (möglichst kleine) übersichtliche Teile mit der klaren Gliederung: Eingabe-Berechnung-Ausgabe.
- Sprechende Namensgebung für alle benutzten Datentypen, Strukturen, etc.
- Vorausdenken, welche Fehler auftreten können. Diese unbedingt abfangen!
- Vorbereitung einer eigenen Fehlersuche auch ohne Debug. Hier hilft immer ein mitlaufendes Testprotokoll.
Das fällt mir so auf die Schnelle ein. Es gibt sicher noch mehr nützliche Regeln sowohl für Konsolanwendungen wie die Windows-Programmmierung. Ansonsten beim Programmieren stets Disziplin wahren!
-
berniebutt schrieb:
klaren Gliederung: Eingabe-Berechnung-Ausgabe.
EVA ist ja sowas von 70-er jahre.
-
zutto schrieb:
Laufzeitkomplexität kennen? so ein schwachsinn.
doch doch, das ist dringend notwendig. nur mit ein wenig theorie im hintergrund kann man ein gefühl für skalierbarkeit entwickeln.
-
zutto schrieb:
das is ganz einfach, aber unter normalen umständen muss ein programmierer sowas keinesfalls wissen, um vernünftigen code schreiben zu können.
Premature optimization is the root of all evil.
-
volkard schrieb:
berniebutt schrieb:
klaren Gliederung: Eingabe-Berechnung-Ausgabe.
EVA ist ja sowas von 70-er jahre.
Genau, die heißt jetzt MVC.
Kenner des O(n) schrieb:
zutto schrieb:
das is ganz einfach, aber unter normalen umständen muss ein programmierer sowas keinesfalls wissen, um vernünftigen code schreiben zu können.
Premature optimization is the root of all evil.
Nene, diesmal nicht. Laufzeitkomplexität sollte man schon kennen.
-
zutto schrieb:
das is ganz einfach, aber unter normalen umständen muss ein programmierer sowas keinesfalls wissen, um vernünftigen code schreiben zu können.
Ja, bau Du schön weiter Deine Hello Worlds!
-
Walli schrieb:
zutto schrieb:
das is ganz einfach, aber unter normalen umständen muss ein programmierer sowas keinesfalls wissen, um vernünftigen code schreiben zu können.
Ja, bau Du schön weiter Deine Hello Worlds!
ich baue kernel für linux du volln00b. bau du weiter deine wxwidget gui programme und sei ruhig du newbier!
-
zutto schrieb:
ich baue kernel für linux du volln00b.
ich glaub nicht, daß man mit 12 da schon hilfreich sein kann.
-
zutto schrieb:
Walli schrieb:
zutto schrieb:
das is ganz einfach, aber unter normalen umständen muss ein programmierer sowas keinesfalls wissen, um vernünftigen code schreiben zu können.
Ja, bau Du schön weiter Deine Hello Worlds!
ich baue kernel für linux du volln00b.
ach darum ist linux so lahm
-
Kommt es nicht ein wenig darauf an in welchem Bereich man codet ?
Wenn man Libs baut wäre es natürlich schade wenn man ein Händchen für langsamen Code hat. Wenn man aber einfach stumpf das 1 Manntag Projekt umsetzt bei dem ohnehin wenig Zeit ist wird man auf die Routinen zurück greifen, bei denen sich andere schon Gedanken um die Laufzeitkomplexität gemacht haben. (Oder anders: Man hat wenig Zeit und Einfluss).
-
volkard schrieb:
zutto schrieb:
ich baue kernel für linux du volln00b.
ich glaub nicht, daß man mit 12 da schon hilfreich sein kann.
-
Knuddlbaer schrieb:
Wenn man Libs baut wäre es natürlich schade wenn man ein Händchen für langsamen Code hat. Wenn man aber einfach stumpf das 1 Manntag Projekt umsetzt bei dem ohnehin wenig Zeit ist wird man auf die Routinen zurück greifen, bei denen sich andere schon Gedanken um die Laufzeitkomplexität gemacht haben. (Oder anders: Man hat wenig Zeit und Einfluss).
Was soll den ein 1 Manntag Projekt sein? Excel-Tabelle mit lustigen Formeln und Diagrammen versehen?
Die Leute die Container Libs schreiben, können die Laufzeitkomplexität der Methoden eines Containers nicht ändern (mal angenommen sie sind nicht Hirnamputiert). Du musst den richtigen auswählen, für das was du machen willst, aber das ist doch meist in weit weniger als ner Minute entschieden, wenn man sich auskennt.
-
Hallo,
erst mal vielen Dank für Eure Antworten, auch wenn die Diskussion teilweise etwas abgedriftet ist. Könnt Ihr mir ein Buch, Bücher empfehlen, in denen die von Euch erwähnten Grundlagen gut besprochen, erklärt werden?
Viele Grüße,
Martin36
-
Martin36 schrieb:
erst mal vielen Dank für Eure Antworten, auch wenn die Diskussion teilweise etwas abgedriftet ist. Könnt Ihr mir ein Buch, Bücher empfehlen, in denen die von Euch erwähnten Grundlagen gut besprochen, erklärt werden?
die grundlagen mach besser sprachbezogen. also such die eine sprache aus und zieh ein gutes buch drüber.
für c++ wären das
breymann: c++ einführung in die professionelle programmierung
meyers: effektiv c++ programmieren (nur band 1)
stroustrup: die c++-programmiersprachedanach würde ich
sedgewick: algorithmen in C
und
bentley: programming perls
empfehlen.aber das ist nur ne allgemeine empfehlung. genauere empfehlungen kann man nur geben, wenn man dich genauer kennt.
-
für alggeo würde ich SGA lesen
-
volkard schrieb:
EVA ist ja sowas von 70-er jahre.
Stimmt! Kann man aber auch heute noch gut gebrauchen, um stabile Programme zu entwickeln. Was nützt eine noch so gute Problemanalyse, wenn man (wegen einfacher Fehler) dann aufwendig debuggen muss?
-
volkard schrieb:
Martin36 schrieb:
erst mal vielen Dank für Eure Antworten, auch wenn die Diskussion teilweise etwas abgedriftet ist. Könnt Ihr mir ein Buch, Bücher empfehlen, in denen die von Euch erwähnten Grundlagen gut besprochen, erklärt werden?
die grundlagen mach besser sprachbezogen. also such die eine sprache aus und zieh ein gutes buch drüber.
für c++ wären das
breymann: c++ einführung in die professionelle programmierung
meyers: effektiv c++ programmieren (nur band 1)
stroustrup: die c++-programmiersprachedanach würde ich
sedgewick: algorithmen in C
und
bentley: programming perls
empfehlen.aber das ist nur ne allgemeine empfehlung. genauere empfehlungen kann man nur geben, wenn man dich genauer kennt.
Vielen Dank für die Buchtipps. Ich bin mit C++ auf jeden Fall vertrauter als mit anderen Programmiersprachen, liegt mir auch mehr, auf der Arbeit bräuchte ich allerdings eher Java. Ist das erst einmal egal, und ich kann mir die Basics auch über C++ aneignen und dann wechseln? Gibt es eigentlich auch Bücher über Problemanalyse, Herangehensweise beim Programmieren, oder lernt man das bei den Grundlagenbüchern dann auch parallel dazu?
Viele Grüße,
Martin36