Frage von Blackskater, 22

Eine Programmiersprache oder Mehrere?

Ist es sinnvoll wenn man mehrere Programmiersprachen versucht zu lernen ? z.B C, Python und Visual Basic

Oder sollte man sich nur auf eine Konzentrieren und da dann "richtig" gut werden

P.s Hab auch scon Erfahrungen

Antwort
von TUrabbIT, 10

Ich denke am Anfang solltest du eine Programmiersprache richtig lernen um die Prinzipien zu lernen und Erfahrung zu sammeln. Das erleichtert das lernen, selbst bei Programmiersprachen anderen Typs helfen die Kenntnisse weiter.

Wenn du eine hinreichend verstanden hast und auch mal in kleines Projekt damit geschafft hast, dann kannst du nach Bedarf andere Programmiersprachen leicht und schnell lernen.

Antwort
von honigtopf3239, 21

Ich würde sagen, es kommt darauf an was du machst, welche dabei am besten ist und welche dir am ehesten liegt. 
Ich persönlich würde mir eine nützliche Programmiersprache die genügend Macht hat für weiteres (wie Python, C++ oder C#) beibringen und sich auf diese weiter fokussieren. Letzlich ist es nicht allzu schwer zwischen den meisten Sprachen zu wechseln.

Antwort
von triopasi, 11

Für den Anfang solltest du auf jeden Fall erstmal eine halbwegs lernen! Mehrere parallel lernen, das wird nix.

Wenn du eine kannst, ist es durchaus sinnvoll noch ne 2. oder 3. zu lernen..

Antwort
von TeeTier, 9

Konzentriere dich als absoluter Anfänger lieber auf eine Einzige, die du dann halbwegs vernünftig lernst.

Das heißt aber nicht, dass du nur bei einer Sprache bleiben sollst, ganz im Gegenteil: Jeder gute Programmierer beherrscht mehrere Programmiersprachen.

Aber am Anfang fehlen oft noch viele Grundlagen und Verständnis. Wenn du erst mal drei oder vier Sprachen kannst, ist es denke ich auch OK, wenn du langsam dazu übergehst, weitere parallel zu lernen, bzw. deine Lernaktivitäten mit anderen Themengebieten zu kombinieren und zu verzahnen.

Viel Erfolg! :)

Antwort
von tDoni, 11

Lerne erst eine Sprache und dann später die anderen.

Antwort
von netcx, 11

Würde am Anfang erst eine lernen. Wenn man das halbwegs gut kann ggf. noch eine zweite, wenn man dann etwas Erfahrung hat, dann kann man relativ leicht jede andere Programmiersprache in kurzer Zeit lernen. Die Methodik bzw. das Prinzip zu beherrschen ist das Entscheidende und nicht, möglichst viele Programmiersprachen zu können. Jemand der Fahrrad fahren kann, der kann auch ein Rennrad oder ein Moutainbike fahren, nur die Technik ist etwas unterschiedlich, so ähnlich ist das beim Programmieren auch.

Antwort
von kordely, 4

Auf längere Dauer sollst du mehrere  Programmiersprachen lernen.

Antwort
von 716167, 10

Man lernt Programmieren... also die reine Logik, wie Programme aufgebaut werden. Die verwendete Sprache ist da irrelevant.

Kommentar von TeeTier ,

Programmieren ist viel mehr als "if" und "for" in verschiedenen Syntax-Geschmacksrichtungen!

Allein schon Dinge wie das sichere Öffnen und Schließen einer simplen Datei funktioniert VÖLLIG anders in C, C++, C#, Python oder Java. Und damit sind nicht die Namen von Bezeichnern gemeint, sondern Konzepte.

Die Aussage, dass unterschiedliche Programmiersprachen bis auf die Syntax und Standardbibliothek fast identisch sind, ist Quatsch. Und deine Antwort klingt fast so, als hättest du das sagen wollen. :)

Kommentar von regex9 ,

Hmn, das mit dem Öffnen von Dateien ist wohl ein schlechtes Beispiel. Zum einen kann man das oft fast als Boilerplate-Code bezeichnen, zum anderen ist bei C++, Java und C# kein so großer Unterschied vorhanden. Alle 3 können irgendeine Art Stream benutzen, ob der nun dekoriert ist oder nicht. Dann muss man nur noch schauen, ob der Reader zeichen- oder zeilenweise liest und dementsprechend eine Schleife zum Datenauslesen anpassen.

Kommentar von TeeTier ,

Doch doch, gerade das Arbeiten mit Dateien ist ein prädestiniertes Beispiel, da fast alle Leute glauben, sie könnten es. :)

(Was letzendlich mit dem Stream gemacht wird, und ob der jetzt einzelne Zeichen oder größere Objekte liefert ist dabei egal.)

Es geht mir ausschließlich um die Öffnen- und Schließen-Operation. Mehr nicht. Und ich bezweifle, dass das mehr als 20% der Entwickler einer beliebigen Programmiersprache ausreichend beherrschen. Klingt unglaublich, oder? ;)

Wie macht man das denn "sicher" (so dass keine Ressourcen-Lecks entstehen können) in Java, C++ und C#? Die Antwort ist gar nicht mal sooo trivial, wie es auf den ersten Blick aussieht!

Das ist ja das gemeine an der Sache: Das, was man seit Jahren zu können glaubt, und in allen Programmiersprachen mehr oder weniger gleich macht, stellt sich bei genauerem Hinsehen als falsch oder gar gefährlich raus. Und dann verschwinden plötzlich wichtige Daten einer Business-Anwendung, und keiner weiß warum. :)

Wer in Python, Java, C++, C#, Ruby, o. ä. die "close()" Methode eines Streams direkt aufruft oder ein "nacktes" o. allein stehendes Stream-Objekt erzeugt, der macht es schon mal nicht richtig (im Sinne von ordentlich / sicher / defensiv).

Und jetzt mal Hand aufs Herz! Hast du in letzter Zeit "close()" oder "Close()" benutzt? Wenn ja, dann machst du etwas falsch. :)

In Python sollte man "Ressource Manager" benutzen, in Java "Try-With-Ressources", in C++ "RAII" bzw. damit verknüpfte "Smart-Pointer" bei Heap-Objekten, bei C# die "IDisposable" Schnittstelle in Kombination mit "using" und bei Ruby "Blöcke" mit "ensure".

(Wenn einem Entwickler einer der genannten Sprachen das genannte Schlüsselwort nichts sagt, dann SOFORT googeln und weiterbilden!)

All diese Dinge lassen sich in anderen Sprachen nur sehr schwer bis überhaupt nicht implementieren, obwohl alle genannten Sprachen eine Art Exception-Handling, Bedingungen, und Datei-Klassen besitzten.

Merke: Es sind die KONZEPTE, die eine Programmiersprache zu dem machen, was sie ist! Die Syntax und Bezeichnernamen an sich sind fast schon irrelevant. Und das gilt selbst für so einfache Dinge wie das Öffnen und Schließen von Dateien (und wir reden nicht mal vom Lesen o. Schreiben).

Kommentar von regex9 ,

Ok, das interessiert mich jetzt. Denn leider wirst du nicht richtig richtig konkret.

Wer in Python, Java, C++, C#, Ruby, o. ä. die "close()" Methode eines Streams direkt aufruft oder ein "nacktes" o. allein stehendes Stream-Objekt erzeugt, der macht es schon mal nicht richtig (im Sinne von ordentlich / sicher / defensiv).

Damit meinst du sicherlich folgendes (ich bin jetzt bei Java):

InputStreamReader reader; // = falsch, da nur deklariert

try { // .... } // usw...

Soweit wäre ich damit einverstanden, wenn man davon ausgeht, dass im try-Block der Stream geöffnet wird und man im catch-/finally-Block versucht, den Stream wieder zu schließen (gilt ebenso für den Fall, dass die Variable reader vor dem try initialisiert/definiert wurde). Daher sollte bspw. vor dem Schließen erst geprüft werden, ob der Stream überhaupt offen war und das Schließen des Streams selbst ggf. ebenso in einem try-catch ausführen.

Das try-with-Statement an sich ist eine schöne Sache, letzten Endes macht es aber auch nichts anderes, als zuletzt selbst die close-Methode aufzurufen. Nicht umsonst muss die angegebene Klasse der Ressourcen selbst das Interface AutoClosable implementieren.

Und jetzt mal Hand aufs Herz! Hast du in letzter Zeit "close()" oder "Close()" benutzt? Wenn ja, dann machst du etwas falsch. :)

In Java ja, wobei ich bisher noch nicht mit den neueren Versionen gearbeitet habe, wo man try-with bereits nutzen kann. Bezüglich C# nutze ich den Disposable-Block, wobei auch hier wieder gilt - sobald die vom Interface IDisposable implementierte Methode aufgerufen und das Objekt gelöscht wird, gibt es zuvor noch einen Aufruf der Close-Methode. Für mich ist das Syntactic Sugar.

Hinsichtlich C++ kann ich deine Aussage verstehen, bezüglich Python und Ruby kann ich nichts sagen, weil ich da, glaube ich, noch nicht in die Verlegenheit geraten bin, Dateien öffnen oder schließen zu müssen.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten