Hallihallöle!
Ich habe vom Programmieren und eigentlich auch von Computern
und von Informatik allgemein nur vage Vorstellungen,
interessiere mich aber seit kurzem ziemlich dafür. Ich habe
auch großen Spaß an Mathematik und Abstraktion also denke ich,
dass das Themengebiet gut zu mir passt.
Um mich selbst aus dem Sumpf meiner Unwissenheit, die mich
ziemlich unruhig macht, zu retten, habe ich mir gedacht, wäre
es vielleicht eine gute Idee, eine Programmiersprache zu
erlernen.
Nun die beiden Fragen, auf die ich mir schnelle Antworten
erhoffe (Ich leider unter akutem Tatendrang!):
- Ist das überhaupt eine gute Idee oder sollte ich vielleicht
besser wo anders innerhalb des Themengebietes
Computerinformatik anfangen, mich zu bilden? Sprich: Braucht
ein Programmierer notwendigerweise großartige Vorkenntnisse
aus bestimmten anderen Bereichen?
Programmierung bedeutet das formalisierte Aufschreiben einer Rechenanweisung. Interessanterweise wurden Programme geschrieben bevor es Computer gegeben hat, weil Leute daran geforscht haben, was man überhaupt berechnen kann (Church, Turing).
Je besser eine Programmiersprache von konkreten Computern abstrahiert, desto weniger muss man über all die schmutzigen Hardwaredetails und sonstigen Kram wissen.
Aus didaktischer Sicht ist es daher für Anfänger empfehlenswert, möglichst gut designte, gut abstrahierende Sprachen zu verwenden.
- Welche Programmiersprache ist gut geeignet für einen
Einsteiger wie mich? Sollte ich von einer die Finger lassen?
Bauen manche auf anderen auf? Kann ich mit Haskell starten?
Das hat mir glaube ich einmal jemand empfohlen, aber ich kann
mich nicht richtig erinnern und der hat eigentlich selber
keine Ahnung.
Klassisch ist LOGO die Sprache um erste Programme zu schreiben.
Würde ich noch immer empfehlen, weil es Spaß macht und einen kinderleichten Einstieg in prozedurale Programmiersprachen gibt.
Unter den modernen Sprachen würde ich Scala, Ruby, Python, OCaml oder Haskell empfehlen.
Aus pragmatischer Sicht wohl am ehesten Ruby.
C, Java, C#, C++ sind alles Sprachen die äußerst schlecht designed sind, und die eher zeigen wie Computersprachen nicht aussehen sollen.
Leute die mit C oder Java anfangen verharren oft in süßer Unwissenheit darüber, was in den letzten Jahrzehnten so geforscht wurde, und was Sprachen eigentlich tun können, um einem Programmierer auf das Wesentliche konzentrieren zu lassen.
Nach einiger Zeit ist es aber egal: wer mal seine ersten Programme geschrieben hat sollte ohnehin bald anfangen *mehrere* Sprachen zu lernen.