Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

19.10.2012, 15:44

Fernstudium C++/CLI... und dann?

Hallo zusammen,

ich durchstöbere dieses Forum nun schon bestimmt ein Jahr und finde immer wieder interessante Listings, an denen ich mich gut orientieren kann und zu denen ich auf jeden Fall immer gewisse Bezüge verstehe. Nun habe ich mich auch endlich mal dazu durchgerungen, mich hier anzumelden (warum auch immer erst jetzt...?)

Aber kommen wir zu meiner eigentlichen Frage:

Seit einem Jahr lerne ich nun C++/CLI über eine Fernuni, mache dort auch gute Fortschritte. Als Abschlussprojekt steht dann ein Spiel vor der Tür namens Pong. Natürlich jedem bekannt.
Da aber viel mit WindowsForms gearbeitet wird, quasi ein Baukasten und dazu nur kleinere Funktionen und Methoden geschrieben werden, frage ich mich, wie ich danach weiter machen soll?!
Klar, ich bin noch lange nicht fertig mit dem Studium und könnte schon andere Ansichten oder Einsichten bekommen haben, aber diese Frage brennt mir nun einmal aktuell auf dem Herzen.

Sollte ich evtl. nebenbei ein wenig mit dem häufiger schon genannten DarkBasic flirten oder einfach nebenbei C++ lernen? C++/CLI ist ja auch ein wenig vereinfachter, wie man häufiger liest.

Ich finde mein Fernstudium sehr interessant und werde auch immer bei der Sache bleiben, aber dennoch: Ein kleiner Denkanstoß wird nie schaden :)

Moe

Frischling

Beiträge: 85

Wohnort: München

  • Private Nachricht senden

2

19.10.2012, 19:56

Hi!
Programmieren lernst Du am Besten durch üben, üben und nochmals üben. Am Besten suchst Du Dir ein kleines Projekt, dass Dir Spaß macht, und baust es aus. Wenn Du auf neue Themen stößt, dann hilft es natürlich, wenn Du Dich einliest und es dann umsetzt.
Bei der Frage nach der richtigen Programmiersprache ist es nicht so einfach zu sagen, was Du machen solltest. C++ ist in meinen Augen eine tolle Sprache, sie hat aber leider viele Stolpersteine. Für den Einstieg sind Sprachen wie Lua oder Python einfacher zu lernen - DarkBasic kenne ich nicht - und Du wirst schneller Erfolgserlebnisse haben. Sobald Du mit solchen Sprachen an Grenzen stößt oder Du Dich in Low-Level-Programmierung einarbeiten willst, kannst Du immernoch C++ lernen.

3

19.10.2012, 20:21

Ich weiß ja nicht, in wie weit man sich hier im Forum mit C++/CLI auseinandergesetzt hat. Aber es scheint doch recht verpönt zu sein. Das es halt keine richtige Sprache sei und letztendlich auch gut geeignet sei für den Einstieg, weil es vereinfacht C++ anwendet, aber viel mit WindowsForms verknüpft ist. Halt sehr vereinfacht...

Letztendlich denkt man sich halt bei einem solchen Fernstudium, das es rausgeschmissen Geld ist.

Aber dann gibts da Vereine wie die Games Academy oder sae, die auch speziell für die Spielebranche Ausbildungen bzw. Studiengänge anbieten, verknüpft mit den Bachelor of Sciense. Aber es kostet halt eine Menge Geld und daher überlegt man sich das zweimal. Und eben, ob es überhaupt nötig ist. Vieles kann man sich ja durch Tutorials und Bücher aneignen.

Da ich das ganze Nebenberuflich mache, weil irgendwoher muss das Geld ja auch kommen und ich froh bin, diesen Schritt überhaupt gegangen zu sein, möchte ich unbedingt dran bleiben.
Und mein Traum ists natürlich, nicht jetzt irgendein riesiges Spiel rauszubringen, sondern mit einer Gruppe gemeinsam an einem eigenen Projekt zu arbeiten.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

4

19.10.2012, 20:42

Zitat

Ich weiß ja nicht, in wie weit man sich hier im Forum mit C++/CLI auseinandergesetzt hat.

Auf jedenfall einige gut genug um das beurteilen zu können.

Zitat

letztendlich auch gut geeignet sei für den Einstieg, weil es vereinfacht C++ anwendet

Nein, C++\CLI ist ganz sicher überhaupt nicht gut für den Einstieg.
Es wird ganz normal C++ benötigt mit den einzigen Unterschied, dass noch Dot.Net mit reinspielt.
Und der Interop zwischen den beiden "Welten" ist ziemlich komplex und überhaupt nicht anfängerfreundlich.
Nur durch den WinForms Designer wird die Einfachheit suggeriert ("Man kann Programme zusammenklicken wie in Excel").
Ich greife mal auf, was bereits einige andere hier im Forum dazu gesagt haben:
Eine Programmiersprache sollte nicht zu etwas missbraucht werden, zu dem sie nicht gedacht ist.
C++\CLI wurde zum C++ Native\Dot.Net Interop entwickelt und zu nichts Anderem.

Meine klare Empfehlung wäre C#:
"Einfache" logische Sprache mit relativ wenig Fußangeln.
Zwei Formdesigner(WPF, WinForms) hast du da auch, wenn es das ist, was du haben willst.

5

19.10.2012, 20:51

Bitte nicht in den falschen Hals bekommen, mir geht es ja nur darum, das diese Sprache scheinbar nicht anerkannt ist unter den Programmierern, zumindest liest sich das aus einigen Blogs etc., die man im Internet findet.
Und mein Gedanke ist einfach, ob ich überhaupt den richtigen Weg gegangen bin! Ich hätte quasi schon vor 8 Jahren mit dem Programmieren anfangen sollen, wenn nicht sogar noch früher. Vorher war ja schließlich auch mal die Jugend mein ein und alles. Die Faulheit hat dazu ihren Rest gegeben und man sucht sich dann eher eine Ausbildung, die man ohne große Probleme überstehen kann und sich dann im Berufsleben festigen und Geld verdienen.
Aber mittlerweile ist man im Kopf soweit, das man es nicht des Geldes wegen machen soll. Ich möchte auch Spaß bei der Arbeit haben und diesen möchte ich im Programmieren finden. Und vor einem Jahr hab ich mir dann selbst den Ruck verpasst und gesagt, fang einfach an.
So wurde ein wenig das Internet durchstöbert, viele Game Maker gefunden, direkt aus dem Kopf geschlagen und dann, der Motivation wegen, auf ein Fernstudium mit spielerischem Element gestoßen, eben diesem C++-CLI.
Und mit diesem Grundwissen, was ich mir durch dieses Studium angeeignet habe, möchte ich einfach einen ganz neuen Weg gehen mit einer völlig neuen Sprache.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

20.10.2012, 12:52

Und mein Gedanke ist einfach, ob ich überhaupt den richtigen Weg gegangen bin!

Wenn du mich fragst, hast du den richtigen Weg schon eingeschlagen, als du dich entschieden hast, was zu verändern und deinen Traum zu verwirklichen. Wenn du programmierst, weil es dir Spaß macht, dann bist du auf jeden Fall am richtigen Weg.

Es ist im Prinzip praktisch völlig egal, mit welcher Sprache man anfängt. Die Grundlagen sind unabhängig von irgendeiner konkreten Sprache. Dein Wissen und vor allem deine Erfahrung hast du immer mit, die jeweilige Sprache ist nur ein Ausdrucksmittel.

Soviel vorweg, nun erst mal zu der Frage, was genau das Problem mit C++/CLI ist:

Bitte nicht in den falschen Hals bekommen, mir geht es ja nur darum, das diese Sprache scheinbar nicht anerkannt ist unter den Programmierern, zumindest liest sich das aus einigen Blogs etc., die man im Internet findet.

Das Problem mit C++/CLI ist nicht die Sprache, die ist an sich völlig in Ordnung. Das Problem ist, dass so viele Anfänger von C++/CLI in die Irre geleitet werden. Der durchschnittliche Anfänger will eben gleich mal C++ lernen, weil er gehört hat, dass das die Sprache ist, mit der die großen Spiele geschrieben werden. Und natürlich will er schnelle Ergebnisse. Dann holt er sich die Visual C++ Express Edition und entdeckt dieses "C++/CLI"; ein Traum wird war, man kann schnell und einfach irgendwelche Dinge zusammenklicken und all das während man "C++" "lernt", immerhin ist da ja ein "C++" in "C++/CLI" ... right!?

Leider hat das, was diese Anfänger dann lernen, nichts mit C++ zu tun. Noch dazu könnten sie genau das Gleiche mit einer anderen Sprache wie z.B. C# sehr viel einfacher erreichen. Und wie wir in weiterer Folge sehen werden, hat es zusätzlich mit C++/CLI eigentlich auch nichts zu tun.
Aber natürlich ist das keinem dieser Anfänger bewusst, ja viele sind sogar überzeugt davon, dass sie C++ programmieren; bis zu dem Punkt wo die ersten Probleme auftauchen und unser, mittlerweile hinreichend verzweifelte, Anfänger den Schritt wagt, in einem Forum um Hilfe zu bitten, wo er im schlechtesten Fall einfach eine Antwort auf seine Frage bekommt. Im Idealfall wird er möglichst sofort darauf hingewiesen, dass das, was er da macht, kein C++ ist, sondern C++/CLI und dass er C++/CLI bitte möglichst schnell vergessen und C# lernen soll.

Für den Anfänger, der die ganze Problematik dahinter natürlich noch nicht wirklich verstehen kann, sieht das dann schnell einfach so aus, als wäre C++/CLI eine verpönte Sprache und fertig.

Aber das Problem mit C++/CLI ist nicht die Sprache, sondern dass sie ständig, meist mangels besseren Wissens, als etwas verwendet wird, was sie nicht ist. C++/CLI existiert nicht ohne Grund; es existiert aus einem ganz ganz ganz ganz speziellen Grund, nämlich Managed/Unmanaged Interop. C++/CLI erlaubt es z.B., normalen C++ Code mit .NET Code zu mischen, native von managed Code aus zu linken usw. C++/CLI verwendet man, wenn man eine große C++ Codebase, die man, aus den verschiedensten Gründen, nicht einfach nach .NET portieren kann, in .NET verfügbar machen muss; wenn man irgendwelche nativen Bibliotheken von .NET aus verwenden muss und die herkömmlichen Mechanismen dabei nicht ausreichend sind; für low-level Optimierungen, die in anderen Sprachen unmöglich sind etc.

C++/CLI ist nicht "vereinfacht" oder gar "keine richtige Sprache". Im Gegenteil, der einzige Sinn von C++/CLI ist es, dem Programmierer die volle Kontrolle über sämtliche low-level Aspekte von managed und unmanaged Code auf einmal zu überlassen. Wenn man es verwendet, wozu es gedacht ist, ist C++/CLI potentiell eine extrem komplizierte Angelegenheit...

C++/CLI ist ein Ort, an dem selbst die erfahrensten Entwickler am liebsten niemals sein wollen, eine Sprache, die man im besten Fall nie verwenden muss. Aber wenn es mal keine Alternative gibt, ist es da...

C++/CLI ist Klebstoff. Klebstoff dient zum Verbinden von Komponenten, wo andere Möglichkeiten erschöpft sind und nicht als Werkstoff, aus dem man ganze Produkte fertigt...

C++/CLI war nie, ist nicht und wird niemals dafür gedacht sein, ganze .NET Anwendungen darin zu schreiben. Microsoft selbst rät in der offiziellen Dokumentation mittlerweile sogar explizit davon ab, auch wenn ich den Link grad nicht finde. Der ganze Sinn von .NET ist, die Entwicklung von Anwendungen zu erleichtern. Wenn .NET das Land ist, in dem Anwendungsentwicklung so richtig einfach ist, dann ist der Sinn von C++/CLI, es dem Programmierer zu erlauben, aufzubrechen und dieses Land gen Osten zu verlassen, nur um zurückzukehren und exotische Güter und Abenteuer (in der Praxis vor allem letzteres) mitzubringen. C++/CLI ist der eventuelle Trip nach draußen, es ist nicht, was du verwenden willst, wenn du in .NET drinnen leben willst. Die Tatsache dass man in C++/CLI überhaupt komplette .NET Anwendungen schreiben kann, ist lediglich eine unvermeidbare Folge seines beabsichtigten Zwecks...

Wenn man mal drüber nachdenkt: Allein dass es eben "C++/CLI" heißt und nicht z.B. "C++/.NET", sagt ja schon alles... ;)

Von allen Programmiersprachen, die der Mensch sich bisher so ausgedacht hat, kann ich mir kaum eine vorstellen, die für Anfänger weniger sinnvoll ist, als C++/CLI. Und das soll jetzt keine Übertreibung sein, das mein ich wirklich ernst. C++/CLI zu verwenden macht keinen Sinn, wenn man kein solides Verständnis davon hat, wie .NET unter der Haube funktioniert oder ein solches erlangen will. Für einen Anfänger sind all die Dinge, die C++/CLI wirklich ausmachen, nicht nur jenseits dessen, was er überhaupt begreifen könnte, sondern vor allem völlig irrelevant.
Ja, ich hab vorhin gesagt, dass es prinzipiell egal ist, mit welcher Sprache man anfängt. Und das stimmt auch; auch C++/CLI ist am Ende des Tages nur eine weitere Programmiersprache, mit der man alles mögliche machen kann. Aber C++/CLI ist (notwendigerweise) voller Details, die einem die Sicht aufs Wesentliche versperren. Eine gut für einen Anfänger geeignete Sprache, ist eine Sprache, die Dinge tatsächlich einfacher macht, die einem uninteressante Details nicht unbedingt ständig ins Gesicht hält, wo man stets den Blick aufs Wesentliche behält, die einen nicht davon abhält, die Grundlagen zu lernen, weil man zu beschäftigt damit ist, aufzupassen, dass man nicht gleich wieder über den nächsten Stein stolpert...

C++/CLI für Anfänger ist wie ein Kleinkind in ein Auto zu setzen, wo der Schlüssel steckt, der Motor läuft und die Handbremse gelöst ist, ihm zu zeigen, dass man damit hupen kann und dann allein zu lassen: Völlig verantwortungslos. Sobald das Kind auch nur versehentlich was Anderes tut, als auf die Hupe zu drücken, findet es sich in einer Situation, mit der es nicht nur komplett überfordert ist, sondern wo es von vornherein nichtmal ansatzweise jemals auch nur den Hauch einer Chance für das Kind gegeben hätte, überhaupt zu begreifen, was nun passiert...und nur hupen wird schnell langweilig...und Kinder sind von Natur aus neugierig (und das ist gut so!)...

Es ist ja nix dabei, wenn man wieder mal einen Anfänger davor bewahren muss, sich im dunklen Wald zu verlaufen, weil er es einfach nicht besser wissen konnte und der C++/CLI Versuchung erlegen ist. Aber ich hab den Eindruck, dass es in letzter Zeit immer öfter vorkommt, dass Anfänger in Versuchung geführt und in den Wald gelockt werden...

Ironischerweise bin ich, grad während ich diesen Beitrag hier schrieb, selbst zufällig über so ein Werbebanner gestolpert, das mich in den Wald locken wollte. Wenn ich mir das Angebot so anschaue, dann lässt das imo nur zwei Schlüsse zu: Entweder der Kursanbieter hat selbst keine Ahnung von der Materie und sollte wohl besser nicht auch noch versuchen, diese zu lehren oder er weiß genau was er tut. Nicht dass ich irgendetwas unterstellen wollte (vor allem ersteres kommt ja heutzutage leider oft vor), aber wenn ich sehe, wie hier suggeriert wird, dass man da zum "C++ Programmierer" ausgebildet wird, dann schwirren mir unweigerliche Begriffe wie "vorsätzliche Täuschung" im Kopf herum. Auch wenn das Angebot natürlich rein technisch völlig korrekt ist, da ja im Kleingedruckten alles relativiert und auf den C++/CLI Hintergrund hingewiesen wird. Aber wer kennt schon den Unterschied, wenn er nicht schon Ahnung von der Materie hat. Faustregel für die Zukunft: Wann immer C++ (ohne CLI) und .NET gemeinsam genannt werden, ist zumindest größtmögliche Skepsis geboten...

Aber es ist nicht alles schlecht und verloren, immerhin konntest du einem vorgegebenen Pfad folgen, der dich geschickt um sämtliche Hindernisse herumgeführt hat. Wenn ich mir die Kursinhalte so anschaue, dann hast du sehr viel wertvolles Grundlagenwissen gesammelt, du hast lediglich nicht wirklich C++ gelernt. Vermutlich hast du effektiv eine extrem komplizierte Variante von C# und den Umgang mit .NET gelernt. Und das ist schon was wert.

Aber mittlerweile ist man im Kopf soweit, das man es nicht des Geldes wegen machen soll. Ich möchte auch Spaß bei der Arbeit haben und diesen möchte ich im Programmieren finden. Und vor einem Jahr hab ich mir dann selbst den Ruck verpasst und gesagt, fang einfach an.
So wurde ein wenig das Internet durchstöbert, viele Game Maker gefunden, direkt aus dem Kopf geschlagen und dann, der Motivation wegen, auf ein Fernstudium mit spielerischem Element gestoßen, eben diesem C++-CLI.
Und mit diesem Grundwissen, was ich mir durch dieses Studium angeeignet habe, möchte ich einfach einen ganz neuen Weg gehen mit einer völlig neuen Sprache.

Wunderbar, genau das hätte ich dir vorgeschlagen. Ich weiß natürlich nicht, wie weit du fortgeschritten bist, aber wenn du schon eher am Ende bist, mach den Kurs einfach fertig. Und danach lern C#, am besten mit einem guten Buch. Dank deiner vorherigen Beschäftigung mit C++/CLI, wirst du dich dort sofort wie zu Hause fühlen. Und du glaubst mir nicht, wie viel besser dir die neue Wohnung gefallen wird ;). C# ist eine saubere und nützliche Sprache, die sehr weit verbreitet ist, mit der du viel machen kannst und imo auch sehr gut für Anfänger geeignet. In unserer vorherigen Analogie, wär C# die Muttersprache im .NET Land. Und dann verwend einfach jede freie Minute um zu programmieren. Versuch Dinge umzusetzen, die dich begeistern, wachse an den Problemen, die es entlang des Weges zu lösen gilt. Programmieren lernt man nicht aus Büchern oder in Kursen, Programmieren lernt man nur, indem man es tut, ständig und intensiv. Wenn du im Programmieren deine Leidenschaft entdeckt hast: perfekt!

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »dot« (20.10.2012, 13:17)


idontknow

unregistriert

7

20.10.2012, 14:05

dot, dir ist klar, dass du gerade einen der besten und am unterhaltsamsten Post verfasst hast die ich je lesen durfte? :p. Danke dafür :D

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

20.10.2012, 14:34

*verbeug*

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

9

21.10.2012, 00:54

Jup. Find die Begründungen auch sehr gut.
dot mach doch einen Wiki Artkel draus, damit wir gescheit darauf verweisen können. Die Frage bzgl. C++/CLI kommt ja immer mal wieder.

@Topic:
Am wichtigsten ist es eigentlich programmieren mal mit den Grundlagen von Grund auf zu lernen. Mit welcher Sprache das ist, ist erst mal egal. Die Plattform, die du benutzt ist nicht gerade ideal, wie dot ja bereits super erklärt hat. Das rund herum spielt aber eigentlich für die wichtigen Grundlagen gar keine Rolle. Eigentlich braucht man nicht mehr als die Konsole um programmieren zu lernen.

Wenn du die Grundlagen mal hast kannst du dir mal ein Feld suchen, dass dir Spass macht. Also z.B. Spieleentwicklung, Web, Datenbank Anwendungen, Algorithmen usw. und dann machst du da sukzessive komplexere Sachen. Dann lernst viel mehr über die Design Grundlagen, wie man Komplexität in den Griff bekommt usw.



Wichtig ist auch, dass du auch mal eine neue Sprache anschaust und weiter lernst. Gelernt hast du einen neue Sprache relativ schnell und wenn du einem potentiellen Arbeitgeber sagen kannst, dass du bereits Ahnung von dem und dem hast, dann ist das super. Einarbeiten in die Frameworks und den Code musst du dich wahrscheinlich sowieso, aber zuerst die jeweilige Sprache lernen zu müssen ist schon ein wenig hinderlich.

Aber dann gibts da Vereine wie die Games Academy oder sae, die auch speziell für die Spielebranche Ausbildungen bzw. Studiengänge anbieten, verknüpft mit den Bachelor of Sciense. Aber es kostet halt eine Menge Geld und daher überlegt man sich das zweimal. Und eben, ob es überhaupt nötig ist. Vieles kann man sich ja durch Tutorials und Bücher aneignen.

Unterschätz den Nutzen eines Studiums nicht! Das, was du an Universitäten in Informatik lernst ist nicht programmieren. Programmieren ist, wie du fest stellst eigentlich recht einfach selbst zu erlernen. Was du aber an Hochschulen mitbekommst (ich kenne zwar deine Fern Uni nicht, aber ich bezweifle mal, das ihr das auch habt) sind fundierte Grundlagen der Informatik, was man sich nicht mal eben so nebenbei aneignet, während man sich das programmieren in den jeweiligen Sprachen selbst aneignen muss. Bei uns geht das eigentlich so:
"Ok, das ist eine Vorlesung über Rechnerarchitekturen und wir benutzen C. Wers nicht kann lernt es. Hier sind ein paar gute Bücher." und "Willkommen in parallele Programmierung. Wir benutzen Java. Nächste Woche gibt es eine 2h Einführung in Java für die Neulinge".

Ich will jetzt dein Studium nicht runtermachen, aber man kann einen 1-jährigen Kurs berufsbegleitend halt nicht mit einer 3-5 jährigen Vollzeitausbildung vergleichen. Du bist aber auf jedem Fall auf dem richtigen Weg, wenn du eine Stelle Entwickler haben möchtest. Wenn du aber Spass haben willst musst du möglicherweise noch einiges mehr da rein stecken, weil die interessanten Jobs in dem Bereich sind eigentlich immer für FH/Uni-Absolventen ausgeschrieben. Ich sage nicht, dass man die Jobs ohne die Ausbildung nicht bekommen kann, aber das Wissen, dass man haben muss, ist auf Hochschul Niveau angesiedelt und das müsstest du dir auch aneignen.

Die gute Nachricht dabei ist aber, dass wenn du das mal hast du sehr wählerisch sein kannst. ;) - Ich bin noch nicht mal fertig mit dem Studium und muss immer mal wieder Angebote ablehnen und sagen, dass mich das Gebiet nicht interessiert oder ich schon etwas habe (und dass die Jobs alle sehr gut bezahlt muss ich wohl nicht erwähnen).

Aber nochmal: Du bist auf dem richtigen Weg. Es ist zwar hart das nebenbei alles zu machen (kenne ich selbst auch), aber es lohnt sich!

Mastermind

unregistriert

10

21.10.2012, 11:46

Als Mitarbeiter von Deutschlands einziger staatlicher FernUniversität möchte ich an dieser Stelle darauf hinweisen, dass die "Institute" welche auf der Rückseite von Fernsehzeitschriften usw. Werbung machen keine Universitäten und auch keine "FernUnis" sind. Wir bieten Studiengänge an, keine Kurse in einzelnen Programmiersprachen.

Werbeanzeige