Welche Programmiersprache ist die Richtige für mich?

...komplette Frage anzeigen

6 Antworten

Für das oben genannte brauchst du beide, Betriebssysteme aber nur C++,C und Assembler.

Ansonsten ist es meistens eine Mischung verschiedener Sprachen, weil C++ und Java aber syntaktisch sehr ähnlich sind, ist es ziemlich egal womit du Anfängst.

In 1 bis 2 Jahren von 0 weg ein OS komplett Programmieren zu können, halte ich aber für sehr sehr hoch gesteckt.

Für Spracherkennung brauchst du neben der Programmiersprache noch einen Haufen Mathematik, Wahrscheinlichkeitstheorie etc.

Clouds sind ja an sich relativ einfach gestrickt also das würde ich neben den UIs als das einfachste ansehen.

Als grobe Richtline:

Für alles, was User später bedienen möchtet, GUIs, Cloud Zugriffe etc. Java oder C#

Für Treiber, Betriebssystem Kernel, Compiler C oder C++

C++ ist eine schwere aber gute Sprache. Der Weg das zu lernen macht Dich am Schluss zu einem guten Programmierer.

Literatur für C++ (mit dem ich beginnen würde)
Bjarne Stroustrup: The C++ Programming Language
Nicolai Josuttis: The C++ Standard Library: A Tutorial And Reference

All diese Sprachen sind für unterschiedliche Dinge unterschiedlich gut geeignet.

Im Prinzip würde ich dir aus dem Bauch heraus empfehlen mit C anzufangen um grundlegende Abläufe der Programmierung zu verstehen. Wenn du dort die Grundlagen drauf hast, könntest du mit C++ weitermachen um das Konzept der objektorientierten Programmierung besser zu verstehen (klappt besser wenn man vorher ohne schonmal programmiert hat).

Was das entwickeln von Betriebssystemen angeht...das ist wirklich mehr als nur für fortgeschrittene...erstmal kleine Brötchen backen ;)

FitnessOfficer 01.08.2016, 00:07

Erstmal danke für die schnelle und informative Antwort!

Kannst du mir ein Buch empfehlen oder eine Website auf der man C oder C++ lernen kann? Sollte nicht gerade ein teurer udemy Kurs sein, außer dieser lohnt sich... :)

0
Neralem 01.08.2016, 00:11
@FitnessOfficer

Also es gibt diverse Crashkurse auf Youtube die teilweise gar nicht mal so schlecht sind...natürlich kratzen die alle nur an der Oberfläche.

Als gutes Buch fällt mir jetzt nur "Der C++ Programmierer" ein...recht gute Lektüre.

1
Orsovai 01.08.2016, 00:09

Immer dasselbe! Es ist keine gute Idee C als Grundlage von C++ zu lernen! C Programmierer nutzen Stil und Code, der in C++ schlecht ist!

0
Neralem 01.08.2016, 00:12
@Orsovai

Was denn zum Beispiel? An meiner Universität wird es so gelehrt...mit großen Erfolg.

0
TeeTier 01.08.2016, 01:48
@Orsovai

Wenn man es schafft, C und C++ als zwei völlig unabhängige Sprachen zu betrachten, dann ist diese Reihenfolge gar nicht mal so übel.

Aber ich muss dir darin Recht geben, dass diese beiden leider zu oft in einen Topf geworfen werden. Das sieht man oft bei Büchern oder Tutorials, in deren Titel die Rede von "C und C++" oder "C / C++" ist.

Trotzdem ist im Prinzip C als Grundlage für C++ nicht schlecht. Leider bleibt es meistens auch nur beim Prinzip. :)

0
TeeTier 01.08.2016, 01:59
@Neralem

Ganz allgemein (C vs. C++):

  • Makros vs. Constexpr und Templates
  • Error Codes vs. Exception Handling
  • memcpy() vs. move() und swap()
  • stdio vs. iostream
  • C-Strings vs. string-Objekte
  • Funktionssuffixe vs. Überladung
  • malloc()+free() vs. Smart-Pointer
  • File-static vs. anonymer Namespace

Und eine Million weiterer Dinge. Zumal meistens gar nicht ausreichend auf die inkompatiblen Unterschiede zwischen C und C++ hingewiesen wird. (Z. B. sizeof('a') liefert bei C das gleiche wie bei sizeof(int), bei C++ hingegen 1)

Wenn das Lehrwerk oder der Dozent ausreichend auf all diese Punkte eingeht, gibt es nichts zu meckern. Allerdings ist das eher die ganz große Ausnahme!

0
Neralem 01.08.2016, 07:51
@TeeTier

All diese dinge sind einfach entweder noch weiterhin in C++ enthalten und/oder halt weiterentwicklungen wie zb die string klasse.

Auch verstehe ich deine Gegenüberstellung von Makros in C und den Klassentemplates in C++ nicht so ganz...

Und vernünftiges Exception Handling und Errorcodes...ganz klare Weiterentwicklung deren nutzen doch noch deutlicher wird wenn, man vorher mal mit dem alten Konzept gearbeitet hat.

Auch kommt C ja heute noch zum einsatz in der Mikrocontollerprogrammierung.

0
TeeTier 03.08.2016, 05:35
@Neralem

Was ich sagen will ist: In C sollte man C programmieren und in C++ sollte man C++ programmieren.

Dass man das eine teilweise auch im anderen verwenden kann, heißt noch lange nicht, dass es auch gut so ist.

Noch mal zur Verdeutlichung: Man sollte C und C++ als völlig unterschiedliche und unabhängige Sprachen ansehen! Die einzigen, die sich darüber hinweg setzen dürften, wären alte Programmier-Hasen, die schon an die 10 Jahre in beiden Sprachen drin stecken. Für Anfänger (damit bist auch ausdrücklich DU gemint!) gilt das aber NICHT!

Ob etwas von etwas anderem die Weiterentwicklung ist, oder nicht, ist eigentlich irrelevant. Denn mit dieser Argumentation könntest du auch legitim for- und while-Schleifen durch if-goto-Konstrukte ersetzen. Das tut natürlich keiner, weil es einfach nicht in die Konzepte der Sprache passt!

Und genauso wenig passen Makros in die Konzepte von C++ (wohingegen man bei C oft keine andere Wahl hat)! Das gleiche gilt für alle oben aufgeführten Punkte ... es passt einfach nicht zu C++, einfache C-Strings zu verwenden, printf() zu benutzen oder Speicher mit malloc() zu reservieren.

Dass das möglich ist, ist natürlich keine Frage! Aber darum geht es hier auch nicht.

Ich hoffe, du fühlst dich nicht angegriffen, aber lass mich dir (und allen anderen Mitlesern) einen guten Rat mit auf den Weg geben: Zum Verinnerlichen der Konzepte einer Programmiersprache, braucht man Jahre. Syntax oder Standardlib sind primitiv, das lernt man in sehr kurzer Zeit. Nur leider hat das dann noch GAR nichts mit "Programmieren" an sich zu tun. Was das genau bedeutet, erkennt man in der Regel erst viele Jahre später!

Die Gegenüberstellung der obigen Punkte solltest du im Gedächtnis behalten. Die Dinge auf der linken Seite sind gut in C, aber ein absolutes NoGo in C++. Die Dinge auf der rechten Seite werden größtenteils nicht in C funktionieren, und sind die normale Herangehensweise bei C++.

Vermischen sollte man beides NIEMALS, denn das ist einfach nur Pfusch! :)

1
Neralem 03.08.2016, 10:28
@TeeTier

Wer kommt denn auf die Idee printf() statt cout, malloc() statt new und ähnliches in C++ zu verwenden? Steht doch in keiner Lektüre so und das goto sowohl in C als auch in C++ zu vermeiden und ganz schlechter Stil sind, ist auch überall nachzulesen und leuchtet relativ schnell ein.

Also ich verstehe was du sagst und es ist auch korrekt, aber nicht die Notwendigkeit das zu erwähnen.

Naja ich denke jeder hat gesagt was er sagen wollte und die Frage wurde beantwortet :)

0

Nach 1-2 Jahren Betriebssysteme und Spracherkennungen programmieren?

Nach 1-2 Jahren hast du z.B C++ noch nicht mal richtig drauf, geschweige denn Assembler oder die nötigen Mathekenntnisse um eine Spracherkennung zu progen.

Steck deine Ziele nicht so hoch, sonst wird es nämlich nichts.

Zu den Programmiersprachen:

Java ist zunächst einfacher und du wirst auch schneller kleinere Erfolge haben als mit C++. Und Java ist Plattformunabhängig, das heißt du musst dein Programm nur einmal Programmieren und es läuft überall, bei C++ musst du es extra auf die verschieden Betriebssysteme porten.

Wenn du wirklich den Willen hast würde ich dir aber raten mit C++ anzufangen, da man mit C++ mehr machen kann, wenn man die Sprache wirklich beherrscht. Problem: C++ ist komplizierter als Java und besonders für Anfänger wird das einem schnell mal alles zu viel. Du musst dich selbst einschätzen, ob du dir das zutraust.

FitnessOfficer 01.08.2016, 16:26

Danike für die Antwort!

Ich wollte nur klarmachen, dass ich Dinge wie die Spracherkennung verstehen möchte, aber das ich nach 1-2 Jahren kein Experte bin ist mir klar. Da ich mich auch für die Spieleentwicklung interessiere, bin ich heute auf C# gestoßen. Ist C# für Spiele besser geeignet als C++ und Java?

0
TheBassHead 01.08.2016, 23:46
@FitnessOfficer

Für die Spieleprogrammierung ganz und gar nicht! Das BESTE für die Spieleprogrammierung ist noch immer C++, ohne Diskussion. Für kleinere Indie Projekte ist Java auch geeignet. Wenn es aber größer als Indie wird oder man ein 3D Spiel erschaffen möchte fliegt Java schon fast raus.

C# ist eher dafür da um Programme für Windows zu schreiben, da es auf dem .net Framework basiert. Ich mag C# eigentlich, obwohl ich noch nicht viel damit gemacht habe - werde ich aber noch nachholen.

Man kann mit C# halt schnell nützliche Anwendungen schreiben, aber wie oben schon gesagt für die Spieleprogrammierung nicht geeignet.

0

Ich würde dir c++ entfehlen, da du damit einfach mehr möglichkeiten hast. Du sagst ja du möchtest ein betriebssystem programmieren. Hier könnte dir dann unix als stütze dienen da dieses ja in c geschrieben ist. Auch wenn du spiele machen möchtest ist c++ um einiges schneller als java.

Dominic121219 01.08.2016, 00:08

Solange er nicht ein GTA in Java Programmiert, wird man von der schlechteren Leistung von Java nichts mehr merken. Diese Zeiten sind vorbei ;)

0

Hallo,

Programmieren ist vor Allem - Vorausdenken. Also kein stures lernen und abarbeiten!

Die Programmiersprache richtet sich dann daran, zu welchem Zweck.das Programm dienen soll.

Ich empfehle Dir, wenn Du es ernst meinst, einen Kurs an einer Schule, die sowas anbietet, zu besuchen. Dort erstmal mitzubekommen ob Du dazu geeignet bist und ob Du das dann noch willst.

Einfach drauflos geht auch - wnn Du ein Naturtalent bist - das sind aber nur wenige.

Grüße aus Leipzig

Neralem 01.08.2016, 00:14

Ja oder einfach in die Vorlesung einer Hochschule/Uni setzen...meist haben die Dozenten damit kein Problem solange genug Plätze da sind und man still ist.

Grüß mir meine Geburtsstadt! <3

0
FitnessOfficer 01.08.2016, 00:17

Danke für die Antwort.

Ich bin in wenigen Wochen Schüler einer Abschlussklasse, deshalb kommt der Besuch eines Kurses kaum bis garnicht in Frage, da mir dazu die Zeit fehlen wird, diese gibt es frühestens 1h Autofahrt entfernt von mir...

Aber für 2-3h C++ oder C lernen sollte ich in der Woche Zeit finden.

0
Neralem 01.08.2016, 00:23
@FitnessOfficer

Sagen wir eher 2-3h täglich wenn du in 1 oder 2 Jahren wirklich so weit sein willst wie in deinem Anfangspost erwähnt.

2

Was möchtest Du wissen?