Ist es einfacher, eine Programmiersprache zu lernen, wenn man eine andere schon kann?
Ich will gerade c# lernen und wenn ich das kann ist es einfacher für mich c++ zu lernen? Die Programmiersprachen sind ja ziemlich ähnlich.
6 Antworten
Es ist einfacher, aber nicht wahnsinnig viel.
Wenn du in Algorithmen und Grundelementen wie Variablen, Schleifen, Funktionen usw. denken kannst, hast du schon einen großen Teil des Aufwands erledigt.
C++ und C# sind beides statisch typisierte, objektorientierte Sprachen mit funktionalen Elementen. C# hat eine C-ähnliche Syntax wie C++. Das hilft ein wenig.
Dann hört es sich aber auch wieder auf. Hinter der Fassade funktionieren die Sprachen dann doch in sehr, sehr vielen kleinen und größeren Aspekten sehr anders, C++ ist vom Sprachumfang auch sehr viel größer.
Dass Microsoft die Sprache "C#" genannt hat ist eigentlich ein Etikettenschwindel, denn es ist keineswegs eine Sprache der C/C++-Familie.
Ja es ist einfacher.
Viele Programmiersprachen funktionieren halt ähnlich und wenn man einmal das Prinzip von etwas verstanden hat kann man dieses dann auch für andere Sprachen anwenden.
Gerade wenn sich zwei sprachen stark ähneln ist es auch nochmal einfacher, da man hier dann zum Großteil nur die neue Syntax lernen muss.
Definiere "kann".
Die Syntax selbst ist kein Problem.
Es geht viel mehr um die Architektur und Prinzipien.
Das ist wie mit Fremdsprachen: nur weil man Englisch kann, heißt es nicht, dass man alle Formen (z. B. formell) von Englisch anwenden kann.
Baue dein Wissen lieber in die Tiefe statt in die Breite auf. Sonst besteht die Gefahr, dass du viel kannst - aber nichts richtig.
Und C# ist lediglich ein Klon von Java und hat nichts mit C++ gemeinsam.
Wer C++ lernen möchte, sollte erst mal C gelernt haben:
Er weiß dann nämlich viel besser, was an C++ hilfreich bzw. mindestens für Anfänger einfach nur deutlich zu umständlich (und nur schwer zu verstehen) ist.
C ist die einfachste, C++ aber die mit Abstand komplizierteste aller aus C entstandenen Programmiersprachen.
Wer nicht gezwungen ist, C++ zu nutzen, sollte sich gar nicht erst antun, seine Zeit damit verschwenden zu wollen.
Da irrst Du dich gewaltig, denn: C kann man sehen als kleines Subset von C++, welches — zusammen mit dem Klassenkonzept aus C++ — eine Programmiersprache darstellt, die
- sehr viel einfacher ist als C++
- und dennoch nicht weniger leistungsfähig.
Sie hat keinen eigenen Namen (obgleich ich selbst sie C+ nenne und damit seit etwa 1995 in allen Projekten gut zurechtkam, die offiziell C++ zu nutzen hatten).
C kann schon allein aus dem Grund kein Subset von C++ sein da es gültigen C-Code der kein gültiger CPP-Code ist.
Ansonsten kannst du das mit deiner gedanklichen Eigenkreation "C+" gerne so sehen. Nur frage ich mich, ob solche Projekte auch funktionieren wenn sie aus mehr als einem Entwickler, deren Zusammenarbeit und sowas wie gemeinsamen Konventionen bestehen. Da funktioniert dieses "ich benutze die Sprache so wie (nur) ich es für richtig halte" nämlich nur sehr bedingt.
Ja, die Sprachen mit C-artiger Syntax (C, C++, C#, Java, Javascript u.v.m) sind sich alle sehr ähnlich.
Aber selbst wenn man "nur" eine Sprache mit Nicht-C-artiger Syntax beherrscht, hat man einen Wissensvorsprung gegenüber jemandem, der noch nie programmiert hat.
Es gibt ja genügend Konzepte, die überhaupt nicht von der Sprache selbst abhängig sind und verstanden werden wollen.
C++ ist in meinen Augen viel zu kompliziert.
C# ist deutlich einfacher nutzbar und liefert Code, der deutlich robuster und besser wartbar ist als in C++ geschriebener.
Kurz: C# ist — ebenso wie Java — maximal hilfreiche Sprache zur Impementierung von Enterprise-Applikationen und hierfür dem C++ auf jeden Fall vorzuziehen. Es gibt keine dritte Sprache, für die man das auch sagen kann.
Ist ungefähr so sinnvoll wie: Wer Französisch lernen will, sollte erst mal Latein gelernt haben.