Programmiergrundlagen



  • Hallo,

    was sind für Euch die Programmiergrundlagen, die man gut können sollte, egal mit welcher Programmiersprache man arbeitet, und wie kann man sich diese am Besten aneignen, um eine gute Grundlage zu haben?

    Ich frage deshalb, weil ich einerseits darauf angewiesen bin selbst programmieren zu können, lernen, und andererseits, weil ich es als Grundlage fürs IT-Projektmanagement brauche.

    Im Voraus vielen Dank!

    Viele Grüße,
    Martin36



  • Listen, Array, Map, Stack... einfügen/löschen/zugeifen...Funktion und Laufzeitkomplexität kennen.
    Rekursion, grundlegene Algorithmen, Resource Management...



  • Laufzeitkomplexität kennen? so ein schwachsinn. nur weil du ne vorlesung über algorithmen gehört hast, musst du jetzt nicht deinen prof nachplappern? warum muss er wissen was für ein O(n) irgendwelche sort funktionen haben? meine fresse hört auf so zu tun als ob du posen könntest



  • zutto schrieb:

    Laufzeitkomplexität kennen? so ein schwachsinn. nur weil du ne vorlesung über algorithmen gehört hast, musst du jetzt nicht deinen prof nachplappern? warum muss er wissen was für ein O(n) irgendwelche sort funktionen haben? meine fresse hört auf so zu tun als ob du posen könntest

    Stimmt natürlich, man muss es nicht wissen, wenn man sich mit beschissen langsamem Code zufrieden gibt. Und sorry, wenn ich dich damit überfordert hab, dachte das wäre ganz einfach.



  • das is ganz einfach, aber unter normalen umständen muss ein programmierer sowas keinesfalls wissen, um vernünftigen code schreiben zu können. 👎



  • Ab einem Gewissen Punkt sollte man über Laufzeitkomplexität bescheid wissen. Ob es aber zu den Grundlagen zählt, ist eine andere Sache. Aus mathematisch-formaler Sicht vermutlich schon.

    Naja, zu den allerersten Grundlagen zählen wohl:
    Datentypen / Variablen, Arrays, Kontrollstrukturen (Schleifen, Bedingungen, Fallunterscheidungen), Sichtbarkeit, Funktionen, Klassen, Methoden und dann der weitere OOP-Kram wie Vererbung usw.



  • Martin36 schrieb:

    was sind für Euch die Programmiergrundlagen, die man gut können sollte, egal mit welcher Programmiersprache man arbeitet,

    das ist abhängig von der programmiersprache und dem drumherum. irgendwelches grundlagenwissen über datentypen, schleifen, grundlegende algorithmen, usw. ist nur bedingt hilfreich.

    Martin36 schrieb:

    und wie kann man sich diese am Besten aneignen, um eine gute Grundlage zu haben?

    viel üben d.h. viel selbst programmieren. es hat noch nie einer schwimmen gelernt, nur weil er ein buch darüber gelesen hat.
    🙂



  • 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.


Anmelden zum Antworten