Re: Programmieren und Psychologie
Verfasst: Di Mär 30, 2021 12:42 pm
Deutschsprachiges Forum zur Statistikumgebung R
http://forum.r-statistik.de/
Beim Programmieren von Computern geht es im Wesentlichen um Abstraktion. Du kannst nicht einen Forumseintrag schreiben, indem Du Nullen und Einsen über das Telefonkabel schickst. Du brauchst dazwischen mehrere Schichten von Abstraktion. Wenn Du programmieren willst, dass Dein Computer sich mit Deinem Handy verbindet, dann muss sich irgendjemand Gedanken machen, ob das dritte übertragene Bit eine Eins oder eine Null sein soll. Sowas macht man in Assembler oder C oder C++. Beim Programmieren einer Faktorenanalyse willst Du nicht über einzelne Bits nachdenken. Du brauchst dafür eine Programmiersprache mit einem höheren Abstraktionsniveau. C++ ist der Versuch einer Sprache, alles zu sein: Das Verschieben einzelner Bits wie in C genauso zu ermöglichen wir eine hoch abstrahierte Programmierung eines Egoshooters. Seit über 40 Jahren wird C++ ständig weiterentwickelt, ständig kommen Dinge dazu, aber es werden nicht wirklich welche weggenommen, weil man unbedingt rückwärtskompatibel bleiben will. Das bläht die Sprache gewaltig auf, weshalb der "Chef" der Programmiersprache, Bjarne Stroustrup selbst empfiehlt nur die jeweils aktuellen Aspekte der Sprache tatsächlich zu nutzen. Sei Buch "The C++ Programming language" hat über tausenddreihundert Seiten. Als Einsteigerbuch in die Dinge, wie er die Sprache heute sehen würde gibt es von ihm "A Tour of C++" mit 240 Seiten. Das kann man ganz gut mal lesen.rotezora hat geschrieben: ↑Di Mär 30, 2021 12:42 pmAlso sehe ich es richtig, dass ihr beide einen Vorteil darin seht mit C++ zu starten, weil es auch die Grundlage für andere Sprachen bildet, so etwas wie die ‘ancient language’, die mehr Arbeit braucht, aber auch zum Verständnis anderer Sprachen beiträgt...?
Für das Büchlein "A Tour of C++" reichen ein paar Tage im Schwimmbad, für Meisterschaft braucht es Jahre. Das gilt aber für die meisten Dinge. Schnelle erste Erfolge hat man wahrscheinlich woanders leichter, aber mit C++ im Werkzeugkoffer the sky is the limit.Ich frage mich da, ob zum Einen das Ziel zu hoch gesteckt ist (braucht es nicht Jahre?)
Das wäre meine Empfehlung. Es macht Sinn, mit einer der Mainstreamsprachen einzusteigen und nicht mit irgendwas exotischem das zwar vielleicht mehr sex appeal hat (Smalltalk, Haskell, Rust oder Elixir), wo man aber vielleicht keine Hilfe findet, wenn man mal feststeckt.zum Anderen ob es auch umgekehrt Sinn macht: mit Python/HTML,CSS,JavaScript einsteigen und später tiefer lernen.
Dann versuche besser zu beschreiben, was Du damit machen willst und was Deine Erwartungen sind. Nur dann lässt sich die Welt der Programmiersprachen näher eingrenzen. Es gibt nicht gute und schlechte Sprachen, nur passende und unpassende für gegebene Bedingungen.Da würde ich mich nochmal über Feedback sehr freuen.
Du kannst auch auf einem Holzkohlefeuer so ziemlich alles kochen. Trotzdem benutzen Köche gerne Elektroherde und Gasgrills. Oder wie ich mal in einer Diskussion über einen Programmiersprachenvergleich gelesen habe: Ich kann auch mit einem Stein eine Schraube in eine Wand schlagen.Ich habe gelesen, dass man mit C++ so ziemlich alles programmieren kann - das wäre ein riesen Vorteil.
Doch, C++ hat eine Menge Nachteile. Memory leaks, segfaults, dass man sich mit einem riesigen Toolstack vertraut machen muss bevor man Fremdlibraries benutzen kann usw. Vielleicht magst Du mal auf dieser Seite https://www.reddit.com/r/rust/comments/ ... st_vs_c_c/ den ersten Beitrag des Users matthieum anschauen. Wir verstehen beide längst nicht, was er da alles auflistet, aber Du kannst ja mal schauen, wieviele Leute geantwortet und wieviele davon widersprochen haben. Keine Programmiersprache ist gut oder böse. Es kommt immer auf den Anwendungszweck an.Es scheint mir von dem, was ich gelesen habe, dass C++ nicht so viele Nachteile hat, sondern einfach aufwendig ist zu lernen.
In Sachen Julia erstaunt mich das. War Julia nicht mal mit dem Anspruch angetreten, ähnlich schnellen Code wie C++ erzielen zu können? Und C Funktionen direkt aufrufen zu können?
Geschwindigkeitsmäßig ist C++-Code der Benchmark, an dem alle anderen sich messen. Wenn man in einer anderen Sprache X -die nicht C/C++ ist- eine Routine/Funktion für R schreibt, dann kann man in C++ eben nur diese eine Funktion übersetzen. In anderen compilierten Sprachen muss immer noch mindestens der garbage collector mit übergeben werden, was für große Programme kein Ding, für eine einfache Funktion halt ineffizient ist.Die Belohnung ist ein absolut effizienter Code.
Es ist klar, ich werden natürlich nicht alles mit C++ erledigen, ...
Deine erste Programmiersprache wird nicht Deine letzte sein, Go gilt hier als etwas langweilig aber verlässlich, also genau das, was man als Anfänger braucht. Der Compiler ist kostenlos, auf der oben verlinkten Homepage der Sprache gibt es Links zu Tutorials (beispielsweise, wie man MySQL mit Go verbindet), es gibt reichlich Videos bei Youtube und Amazon hat mehrere Titel für kleines Geld. Ich selbst habe noch gar keine Erfahrung damit gesammelt, kann also nur Hörensagen berichten, dafür bin ich aber auch sicher kein Fanboy.Big and notable companies are known to be using the Go language, including Google, Dropbox, Docker, Medium, Heroku, Lyft, and Uber to name a few.
Danke, Bernhard!Die Argumentation hinter diesem Vorschlag: Wenn Du Userinterfaces studieren willst und Dich mit Datenbanken beschäftigen und etwas über die Hintergründe des Netzes lernen willst, dann sind das ziemlich viele Dinge auf einmal, die Du Dir vorgenommen hast. Was Du vor allem nicht brauchst, ist dazu noch eine möglichst umfangreiche und komplizierte Sprache. Du brauchst vor allem Einfachheit und leichte Erlernbarkeit, gleichzeitig eine aktuelle Sprache, die nicht an den Anforderungen des frühen 20. sondern des frühen 21. Jahrhunderts orientiert ist.Und genau dafür wurde Go entwickelt.