Welche Literatur, Artikel, Papiere rund um das Programmieren würdet ihr empfehlen?



  • Hallo,

    mich würde einmal interessieren, welche Literatur ihr empfehlen würdet die eurer Meinung nach besonders wertvoll oder hilfreich für euch war. Um das ganze einzugrenzen, es soll sich dabei nicht um Literatur einer bestimmten Programmiersprache drehen, sondern wie im Titel erwähnt um die Programmierung. Gab es Bücher, die euch bestimmte Aha-Erlebnisse brachten oder euch in anderer Weise weitergeholfen haben? Schön fände ich den Titel und ein kurzes warum ihr dieses Buch, Papier oder Artikel empfehlen würdet.

    Schon einmal vielen Dank und einen schönen restlichen Sonntag! 🙂



  • Raw schrieb:

    Um das ganze einzugrenzen, es soll sich dabei nicht um Literatur einer bestimmten Programmiersprache drehen, sondern wie im Titel erwähnt um die Programmierung.

    Das ist auch trotz der Eingrenzung eine sehr allgemeine und schwer zu beantwortende Frage. Und "Programmierung" ist eigentlich nicht wirklich ein Begriff, der irgendwas aussagt. Und grad wenn du von der "Programmierung" redest, ist die Wahl einer bestimmten Programmiersprache sehr wichtig. Vor allem, wenn die Programmiersprache C++ ist. Ansonsten gibt es immer noch viele Bereiche, die interessant sein könnten, z.B. "Informatik". Ist das für dich "Programmierung"? Keine Ahnung, was du meinst, viele Themen aus der Informatik können sehr wichtig und interessant sein, auch wenn man nur ein Programmierer ist. Oder "Softwareentwicklung". Oder oder oder...



  • Danke für die Kritik, falls das etwas schwammig war bzw. unpräzise, dann versuche ich es nochmal: Was ich ursprünglich meinte waren Werke in der Richtung "Clean Coder", die sich auf die Dinge rund um die Softwareentwicklung bzw. Programmierung beziehen. Und dass viele Dinge wichtig sind oder für jeden einzelnen eine andere Priorität besitzen, ist mir klar, deshalb fände ich es interessant, was z.B. dich persönlich weitergebracht hat bei diesen Themen. Ich hoffe mit dieser Beschreibung wurde meine Absicht etwas klarer und verständlicher! 🙂





  • Was ich z.B. interessant fand, war das GoF Buch über die Design Patterns, das war für mich damals auch komplett neu. Fand die C++ Bücher von Scott Meyers sehr wichtig, weil ich davor die Sprache nicht verstanden hatte. Ansonsten fallen mir jetzt keine Bücher ein, die eine besondere Bedeutung für mich gehabt hätten. Habe viele Bücher über Softwarearchitektur gelesen, einige fand ich auch gut, aber das war dann alles nicht mehr grundsätzlich neu für mich. Natürlich liest man auch im Internet sehr viele verschiedene Blogs, Paper usw. Da ist es auch schwierig zu sagen, "das hat mich jetzt wirklich weiter gebracht". Die Softwareentwicklung ist einfach sehr umfangreich und besteht aus sehr vielen Bausteinen, da ist es sehr schwer, ganz bestimmte Bausteine rauszusuchen 😉





  • wenig schlechter progger schrieb:

    Weniger schlecht programmieren | ISBN: 3897215675

    Klingt vom Inhaltsverzeichnis sehr nach dem was ich suche, hast du denn persönliche Erfahrung mit dem Buch? Wenn ja, wie würdest du es beurteilen? 🙂



  • Manche leute verstehen unter sauberem Programmieren die Faehigkeit, UML-Diagramme zu malen und dann entsprechende Klassen mit Dokumentation umzusetzen.

    Fuer mich wird saubere Programmierung durch die Beherrschung von high-level abstraktionen, die einfach lesbaren, trotzdem schnellen und nach Moeglichkeit wiederverwendbaren code liefern ausgemacht. Haskell lernen bringt nach meiner Ansicht viel, weil man dabei lernt, dass man Code nicht nur als schrittweise Folge von Anweisungen, sondern als Hintereinanderausfuehrung von map-, filter- und foldoperationen ansehen kann und man dadurch auch sehr generischen Code schreiben kann. Die monaden bieten eine gute Vorlage, um komplizierte Probleme einfach und uebersichtlich darzustellen und lassen sich auch gut in OOP umsetzen, z.B. fuer effizientes Multithreading.



  • Marthog schrieb:

    Manche leute verstehen unter sauberem Programmieren die Faehigkeit, UML-Diagramme zu malen und dann entsprechende Klassen mit Dokumentation umzusetzen.

    Darüber hinhaus darf es gerne gehen 😉 Was mich bspw. interessiert, sind die Art und Weise des Denkens, wie man Lösungen zu einem Problem so formuliert, dass am Ende des Prozesses ein Programm steht, dass dieses Problem sauber löst. Ich habe öfters festgestellt, dass ich denn Sachverhalt zwar erkenne aber Probleme habe, das ganze nun in ein Programm umzusetzen, wenn jemand etwas aus dieser Ecke hätte, wäre das super! 🙂


  • Mod

    Bei Mikrocontrollern ( http://www.mikrocontroller.net/ ) ist (oder war) ja das Lesen des Datenblattes sehr wichtig. Je besser man die Technik verstanden hatte, desto besser ließ es sich programmieren, da man Möglichkeiten im Hinterkopf hat und so aussschöpfen kann.
    Generell gilt, Grundlagen gut verstanden haben (auch was im Compilerhandbuch steht), dann programmiert es sich schon viel leichter. Hierbei hilft didaktisch aufgemachte Programmier-Literatur oder Bücher über professionelle Programmiertechniken zu einer bestimmten Sprache.
    Wenn ich mich mehr auf AHA-Erlebnisse konzentriere, dann fallen mir da eher Sourcecodes ein.
    Ganz grob drei Gruppen außer normal:
    eher schlechter Code (das will man nicht nachmachen (oder überhaupt sehen...)
    sehr guter Code (läd ein zum Abgucken, inspiriert)
    sehr sehr guter, technisch brillianter Code (hat man oft die Technik noch nicht verstanden (z.B. trickreiche Datenkompression, Zufallsalgos o.ä)
    (hier braucht man Literatur zur Technik selbst, wie ist R2D2 aufgebaut, wie funktioniert eine Langstrecken-Flugabwehrrakete, was sind "Shell-Code-Exploits"
    http://www.exploit-db.com/shellcode/ o.ä.
    Aber welche Gruppe auch immer, Sourcecodes besorgen, studieren, umgestalten, lohnt sich auf jeden Fall.

    (z.B. http://www.computerhistory.org/atchm/microsoft-ms-dos-early-source-code/ 😃 )

    (ergänzend vielleicht noch
    http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-36.html#%_chap_Temp_849



  • Dann gibt es eine ganz einfache Loesung: Erfahrung 😉

    Man muss sich einfach viele Beispielalgorithmen anschauen und viel selber machen. Auch hier muss ich wieder Werbung fuer Haskell machen (ich hoffe, ich nerve nicht), denn mit etwas Uebung lassen sich manche Probleme sehr gut auf abstrakte Weise darstellen und damit viel besser loesen.

    Die Standardwerke fuer Algorithmen (z.B. von Sedgewick) sind wahrscheinlich hilfreich, weil man grundlegende Loesungsstrategien wie Breiten- und Tiefensuche, Baum- und Graphtraversierungen, Divide-and-Conquer, dynamic programming oder backtracking lernt.



  • Raw schrieb:

    Was mich bspw. interessiert, sind die Art und Weise des Denkens, wie man Lösungen zu einem Problem so formuliert, dass am Ende des Prozesses ein Programm steht, dass dieses Problem sauber löst.

    Das wirst du in keinem Buch, keiner Vorlesung und keiner Ausbildung lernen. Das ist einfach Erfahrung, die bekommst du durch gute Entscheidungen und um gute Entscheidungen zu treffen musst du woher viele falsche getroffen haben.

    Es gibt keinen Shortcut um ein guter Progammierer zu werden.



  • man könnte diese Aufgabe immerhin dem Computer überlassen. Mit Sprachen wie Prolog aus der deklarativ-logischen Abteilung geht das schon lange.

    Spezifikation -> Compiler -> Programm.

    Dann werden auch wir Softwareentwickler allmählich wegrationalisiert oder durch Problembeschreiber (im Ggs zu Problemlöser) ersetzt.



  • Raw schrieb:

    Hallo,

    mich würde einmal interessieren, welche Literatur ihr empfehlen würdet die eurer Meinung nach besonders wertvoll oder hilfreich für euch war. Um das ganze einzugrenzen, es soll sich dabei nicht um Literatur einer bestimmten Programmiersprache drehen, sondern wie im Titel erwähnt um die Programmierung. Gab es Bücher, die euch bestimmte Aha-Erlebnisse brachten oder euch in anderer Weise weitergeholfen haben? Schön fände ich den Titel und ein kurzes warum ihr dieses Buch, Papier oder Artikel empfehlen würdet.

    Schon einmal vielen Dank und einen schönen restlichen Sonntag! 🙂

    Hier zwei Bücher die ich interessant fand:

    Wirth: Grundlagen und Techniken des Compilerbaus: Verständnis dafür, wie diese magische Blackbox namens Compiler funktioniert. Das Thema wird auf unter 200 Seiten sehr gut erklärt (ab und zu muss man im WWW nachschlagen, wenn etwas zu kurz erklärt wird). Übrigens ist Wirth der Erfinder der Sprache Pascal. Wer kann das schon von sich behaupten 😉

    Erickson: Hacking: The Art of Exploitation: Wie funktionieren Angriffe auf Programme. Viele Low Level Dinge werden erklärt, an die man nicht denkt, wenn man in Hochsprachen wie C programmiert.
    Die Angriffe werden genau erläutert, mit einer Linux Live CD kann man das alles (gefahrlos) auf seinem PC ausprobieren. Habe damit einiges gelernt, was man in "normalen" Programmierbüchern nicht findet.

    Publikationen gibt es viele, die ich als interessant einstufen würde. Am besten bei der Universität deiner Wahl Onlinezugang besorgen, dann kann man in den Publikationen stöbern und diese bei Interesse auch runterladen.

    Taigman: DeepFace: Closing the Gap to Human-Level Performance in Face Verification: Vorstellung der Gesichtserkennung bei Facebook mit einem Deep Learning Ansatz (neuronales Netz)

    Krizhevsky: ImageNet Classification with Deep Convolutional Neural Networks: Vorstellung des neuronalen Netzes wie in obiger Publikation verwendet


Anmelden zum Antworten