Haben diese beiden Bücher aus den 1980igern noch Lernwert?

  • Allgemein

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von Mandy.

    Haben diese beiden Bücher aus den 1980igern noch Lernwert?

    Guten Tag,
    ich habe beim Bücherausmisten meiner Eltern auf zwei Bücher über Programmierung gestoßen. Sie handeln von PASCAL, Algorithmen und Datenstrukturen.
    Es sind folgende Bücher:Die Bücher sind aus 1982 und 1983 aber noch in guter Verfassung. Jetzt wollte ich euch fragen, ob ihr meint, dass es noch Lernwert aus diesen Büchern gibt oder ob wir sie verkaufen sollten.
    Damals hat mein Vater mit diesen Büchern noch gelernt und deswegen glaube ich, dass da noch nützliches Wissen drinstecken könnte.

    Danke,

    Michdi

    *Topic verschoben*
    Die beste maschinelle Übersetzung der Welt - DeepL Übersetzer
    Alle Zitate, die ich seit dem 1.9.2017 übersetzt habe, wurden vollautomatisch mit DeepL übersetzt.



    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()

    ich kenn die Bücher nicht, also ich bräuchte mindestens das Inhaltsverzeichnis.
    Vom 1. Buch hab ich nun den Klappentext oder was das sein soll gelesen, und keinen Anreiz gefunden, mich für den Inhalt zu interessieren.
    Vom 2. gibts nichtmal das. Jedenfalls ist Pascal eine tote Sprache - wenn du .Net programmierst, lies lieber ein Buch zu .Net - Programmierung.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Hi
    in der Regel:
    Algorithmen verändern sich über die Zeit nicht, Sinnhaftigkeit/Anwendungsgebiet teilweise schon, allerdings müsste man das pro Algorithmus entscheiden und nicht pro Buch. Allerdings vermute ich, dass es inzwischen weit bessere Quellen für die Algorithmen und Datenstrukturen gibt, zumal du sie vmtl. in keiner modernen Sprache formuliert finden willst - ich würde hoffen, dass es zumindest Pseudocode ist oder mathematische Formeln, aber ich vermute anderes.

    Zum Thema PASCAL: Wenn du nicht alte Programme updaten willst, ist es vermutlich überflüssig, PASCAL zu lernen - höchstens historisch-kulturell könnte das sonst noch einen Zweck erfüllen oder auf sehr spezifischen Systemen, aber ich würde sagen, dass du lieber .Net gut oder andere Sprachen lernen solltest, die im Ranking weit oben stehen, wenn du im Berufsfeld arbeiten möchtest. Informatiker interessieren sich nach meiner Erfahrung übrigens weniger für die Programmiersprachen, als für die konkreten Probleme, die dort gelöst werden. Je mehr Werkzeuge du beherrscht, desto besser kannst du wählen - sofern du derjenige bist, der wählt. D.h. Algorithmen, Datenstrukturen, Architektur, Echtzeitfähigkeit und all die Mittel, Probleme elegant zu lösen, sind vorrangig vor der Sprache.

    Viele Grüße
    ~blaze~
    Niklaus Wirth war ein begnadeter Informatik-Pionier.
    Er ist der Erfinder der Programmiersprache Pascal (und vieler anderen Sprachen).

    Aber das war vor 50 Jahren.
    Damals war der Übergang von den maschinenorientierten Programmiersprachen (Assembler) zu den problemorientierten Sprachen.
    Die Programmiererei hat sich seither ein wenig weiter entwickelt.
    Das Wort "objektorientiert" gab's damals noch nicht mal im Wörterbuch.

    Die Bücher könntest du ggf. an ein Antiquariat verkaufen.
    Von praktischem Nutzen sind sie sicher nicht mehr.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Algorithmen und Datenstrukturen ist ein sehr gutes Grundlagenbuch - das war einmal sowas wie Pflichtlektüre für Programmierer.
    Ich denke dass es auch in heutigen Zeiten sehr wichtig ist sich mit grundlegenden Dingen zu beschäftigen.
    Deshalb sehe ich sehr wohl einen praktischen Nutzen.
    Ich bin mir nicht mehr sicher, aber ich glaube das war unabhängig von Programmiersprachen geschrieben.

    Meine Empfehlung: Arbeite es einmal durch, und du wirst es selber beurteilen können.
    Wenn du mich schon mit einem Hinweis auf Google IxQuick abspeisen willst...
    So schreib mir doch wenigstens die Suchbegriffe dazu :thumbup:
    @Mandy:
    Hmm - nehmen wir mal den Hashtable-Algorithmus - dazu 4 Fragen, und eine Information:
    1) taucht er in dem Buch auf?
    2) hast du ihn daraus gelernt?
    3) hast du ihn überhaupt gelernt?
    4) an welcher Stelle hast du das Gelernte jemals benützt?
    Information: Der Hashtable-Algo ist unglaublich wichtig, er liegt dem Dictionary(Of Tkey, TValue) zugrunde, dem HashSet(Of T), sowie ungefähr jeder 2. Operation, die mit Linq ausgeführt wird.

    Nächster Algo: Quicksort - dazu 4 Fragen, und eine Information:
    1) taucht er in dem Buch auf?
    2) hast du ihn daraus gelernt?
    3) hast du ihn überhaupt gelernt?
    4) an welcher Stelle hast du das Gelernte jemals benützt?
    Information: Der Quicksort-Algo ist unglaublich wichtig, er liegt der List(of T).Sort - Funktion zugrunde, der Array.Sort, sowie ungefähr jeder 2. Operation, die mit Linq ausgeführt wird.

    Nächster Algo: binäre Suche:
    1) taucht in dem Buch was dazu auf?
    2) hast du es daraus gelernt?
    3) hast du es überhaupt gelernt?
    4) an welcher Stelle hast du das Gelernte jemals benützt?

    Nächster Algo: Zufallszahlenfolge generieren:
    1) taucht in dem Buch was dazu auf?
    2) hast du es daraus gelernt?
    3) hast du es überhaupt gelernt?
    4) an welcher Stelle hast du das Gelernte jemals benützt?

    Nächster Algo: Fisher-Yates - dazu 4 Fragen:
    1) taucht er in dem Buch auf?
    2) hast du ihn daraus gelernt?
    3) hast du ihn überhaupt gelernt?
    4) an welcher Stelle hast du das Gelernte jemals benützt?

    Datenstruktur: Heap - dazu 4 Fragen:
    1) taucht der Heap-Algo in dem Buch auf?
    2) hast du ihn daraus gelernt?
    3) hast du ihn überhaupt gelernt?
    4) an welcher Stelle hast du das Gelernte jemals benützt?


    Ist iwie eigentümlich: Son Wissen ist die Grundlage unserer kompletten modernen Welt. Und ist auch voll faszinierend und interessant, und kann Heiden-Spass machen, sich damit zu beschäftigen.
    Aber der praktische Nutzen ist allenfalls ein gefühlter, und kaum zu belegen.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    @ErfinderDesRades

    Es geht bei den Grundlagen nicht um einzelne Algorithmen die man lernt wie z.B. Quicksort sondern um die Denkweise hinter den Algorithmen

    Beispielsweise sind Binäre Suche und Quicksort von der Denkweise her beinah identische Algorithmen (und werden auch als selbe klassifiziert nachdem Motto "Teile & Herrsche"):

    Man teilt eine Menge an Objekten und führt den Algorithmus auf den Teilmengen erneut aus.
    Solange bis man ein Problem mit trivialer Lösungsmenge hat (meist n = 0 oder n = 1 oder eben d)

    Wenn man das verstanden hat, dann kann man den Ansatz für jegliche Algorithmen (und Probleme die man damit lösen kann) anwenden.
    und das sind weitaus mehr als man denkt. Um genau zu sein: Jede Lösung eines Problems, dass aus den Lösungen ihrer Teilprobleme besteht

    Bei grundlegenden Problemen wie eine Liste filtern u.ä. braucht man sowas nicht, weil das ist ja schon fertig im Framework implementiert.
    aber wenn es zunehmend komplexer wird dann gibt es schon Situationen wo man das braucht.

    Als Beispiel:
    Eine Software muss bestimmen wie die Chancen stehen, dass eine bestimmte Aktion auftritt.
    Die erwähnte Aktion, besteht dabei aus 0-n Teilaktionenen.
    Jetzt kann man sagen die Wahrscheinlichkeit dass diese Aktion auftritt ist das Produkt aller Teilaktionen (da all diese ausgeführt werden müssen, damit die erwähnte aktion ausgeführt wird).
    Dann hat man mit dem Teile & Herrsche Ansatz auch schon die Lösung des Problems gefunden.
    ja, das mag sein, dass derlei Grundlagenstudien das Denken in eine bestimmte Richtung trainieren, mehr oder weniger.
    Aber die Wissensinhalte selber kommen bei diesem gefühlten Nutzen garnimmer zum Tragen.

    Und evtl. wäre man auch ohne dieses Training auf die Lösung gekommen - das lässt sich ja nicht messen (und das meine ich mit "gefühltem" Nutzen).
    Hmm - verwertbar scheinen mir Auflistungen, Rekursion und Bäume. Sequentielle Dateien - weiß garnet, obs das noch gibt, und ob das dort propagierte Verständnis von Datentyp mit heutigem OOP noch übereinstimmt...?
    Auflistungen ist imo heutzutage selbsterklärend: Nimm eine List(Of T), eine BindingList(Of T), eine SortedList(Of T) - was gibts da für Operationen: Add, Remove, Insert, Clear - feddich.
    Rekursion ist wichtig, dass man eine Methode schreiben kann, die sich selber aufruft - da gibts auch bischen was zu beachten, und gibts auch dolle Tricks (die wohl nicht in dem Buch stehen).
    Bäume - praktisch anzuwenden ist wohl nur die einfachste Form: Eine Liste, deren Elemente jeweils wiederum Listen enthalten.
    Da in B-Bäume, balancierte, Mehrweg-Bäume einzusteigen - du wirst es nie benutzen.
    Wie gesagt: die Einfach-Form allerdings - damit haste ja schon im Dateisystem zu tun, und auch wie in Winforms die Controls angeordnet und aufeinander gelegt werden.

    Also wenn du dich für Rekursion und Bäume (die einfachen) interessierst - frag mich, ich hab ein Tut dazu geschrieben (allerdings c#, aber das ist sicher noch einfacher als Pascal).
    :D
    Hallo zusammen,

    ich kann zu beiden Büchern nur sagen, dass diese als Referenz und Standardliteratur an diversen Unis geführt werden. z.b. an der Fernuni in Hagen. Natürlich sollte man die eher neueren Auflagen bevorzugen. Ist ja nicht so, das Pascal in der Wissenschaft, Forschung oder Wirtschaft, keinerlei Relevanz mehr hätte.. auch wenn andere das gerne glauben würden. ;)

    Naturgemäss sind Entwickler für MS-Systeme ja eher weniger interessiert an solchen Dingen: zu abstrakt, zu wissenschaftlich, zu wenig .Net, bunt oder sonst was.. da ist man vielleicht eher fokussiert auf anderes, wie schnelle Erfolge, "schnelle" Etnwicklung oder - wie oft hier zu lesen - mal "eben" einen Chat oder irgendwas mit FTP oder dergleichen zu programmieren. Gerade "Algorithmen und Datenstrukturen" enthält Grundlagen, die sich bis heute nicht geändert haben.

    Wer wirkliches Interesse hat an deutschsprachiger Literatur zum Thema, sollte diese beiden Büchlein einfach mal durchblättern. Die Prinzipien lassen auf jede Sprache übertragen.

    wertherchen schrieb:

    Ist ja nicht so, das Pascal in der Wissenschaft, Forschung oder Wirtschaft, keinerlei Relevanz mehr hätte
    Ich habe Pascal geliebt und große Werke damit programmiert.
    Und ich mochte es immer mehr als die "Konkurrenz" C.

    Aber die bedeutenden Compiler werden schon Jahrzehnte nicht mehr weiterentwickelt.
    Der letzte übrig gebliebene ist FPC (Free Pascal Compiler).

    Sicherlich gibt es in irgendwelchen eingefrorenen Umgebungen, wo sich keiner traut, die Systeme anzufassen.
    Aber wo, um Himmels Willen, gibt es in "Wissenschaft, Forschung oder Wirtschaft" noch relevante Pascal-Entwicklungen?

    wertherchen schrieb:

    Gerade "Algorithmen und Datenstrukturen" enthält Grundlagen, die sich bis heute nicht geändert haben.
    Aber weiter entwickelt.
    Wikipedia schreibt z.B. bezüglich der Sortieralgorithmen
    Although many consider sorting a solved problem ... useful new algorithms are still being invented, with the now widely used Timsort dating to 2002, and the library sort being first published in 2006.
    Deshalb halte ich es für gefährlich, veraltete Lehrbücher zu verwenden.
    Die Welt bleibt nicht stehen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Ich würde sagen hau weg den Shit. Gut möglich dass es potentielle Käufer gibt die das Werk aus Nostalgiegründen besitzen wollen - einen tatsächlichen Wert (hinsichtlich des Lernprozesses) stellt es nicht mehr dar.

    Link :thumbup:
    Hello World
    @ErfinderDesRades: Hashing selbst implementieren ist gerade in C# manchmal wirklich sinnvoll. Denn C# ich kann es nicht oft genug erwähnen ist beschissen optimiert(Nicht weil sie es nicht könnten, sondern weil sie es einfach nicht tun). Dictionary<int,...> könnte wunderbar optimiert werden, ist es optimiert? Nicht im geringsten.
    Es ist nie unsinnvoll einen Algorithmus zu verstehen. Oft kann man diese einfachen und bekannten Algorithmen für ganz andere Dinge verwenden, als sie ursprünglich vorgesehen wurden. Oder aber auch wenn es das Framework an ein paar stellen implementiert kann man den Zugrundeliegenden Algo nicht unbedingt sinnvoll auf die eigenen Datenstrukturen anwenden.
    Auch bei Sortieralgorithmen ist QuickSort(oder auch IntroSort mit .Net 4.5 oder bei gcc schon seit ewigkeiten :P) nicht unbedingt das optimale. Wenn man bereits bestimmte Eigenschaften seiner Datenstruktur kennt könnten andere Algorithmen performanter sein und man kann direkt den passenden implementieren. Schließlich bietet mir .Net ja nicht die Wahl zwischen den Algorithmen.
    Natürlich muss man nicht unbedingt alle Algorithmen auswendig kennen, aber es ist auf jeden Fall sinnvoll ein paar mal angeschaut und verstanden zu haben, denn dann wenn du ihn brauchst geht es um so schneller.
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Hallo ErfinderDesRades,

    spät aber doch ;)

    ErfinderDesRades schrieb:

    Ist iwie eigentümlich: Son Wissen ist die Grundlage unserer kompletten modernen Welt. Und ist auch voll faszinierend und interessant, und kann Heiden-Spass machen, sich damit zu beschäftigen.
    Aber der praktische Nutzen ist allenfalls ein gefühlter, und kaum zu belegen.

    Abgesehen davon, dass ich beim besten Willen nicht mehr weiß was ich in meinem Leben wo gelernt und angewendet habe,
    geht es mir normal um zwei Dinge, auch wenn ich alte Bücher in die Finger bekomme:
    • Zumindest ungefähr zu wissen was es gibt und wie man es einsetzen kann.
      Bei Bedarf suche ich mir dann schon eine aktuelle Beschreibung - oder die Erkenntnis, dass ich hoffnungslos veraltet bin
      Die Arbeitsweise hat sich mit Internet sowieso extrem verändert - aber Papier ist nach wie vor geduldiger als der PC :D
    • Dein Schlusssatz: Faszinierend und interessant
    Wenn du mich schon mit einem Hinweis auf Google IxQuick abspeisen willst...
    So schreib mir doch wenigstens die Suchbegriffe dazu :thumbup: