# Welche Programmiersprache für den Einstieg?



## Voldemôrd (7. März 2011)

Hallo, ich hoffe jemand hier hat Ahnung davon und kann mir helfen  
Ich würde gerne Programmieren lernen, klingt jetzt erstmal nach einer hohlen Milchmädchen Aussage, aber ich würde das gerne lernen  mit dem Ziel in 1-2 Jahren ein kleines 2d Spiel zusammengebastelt zu haben, ich finde das sehr interessant zu programmieren und auch eine einfache grafische Oberfläche zu erstellen. Meine Frage dazu wäre, welche Programmiersprache man dazu nehmen sollte? Habe schon ein wenig gegoogelt und bin auf C# gestoßen was eine gute, recht neue Programmiersprache sein soll, mit der man auch solche kleinen spiele und darüber hinaus programmieren kann wenn man sie dann beherrscht. Jetzt wollte ich aber lieber nochmal selber fragen bevor ich anfange irgendeinen Müll zu lernen  Also welche Programmiersprache sollte man zu diesen zwecken anfangen zu lernen?? Und wo sollte man sie lernen, also welche Toutorials oder Bücher sollte man sich zu Gemüte führen ? 
Vielen dank im voraus


----------



## ichbinnichtschuld (7. März 2011)

da es bei dem thema eh nur subjektive fanboys gibt:

http://www.java-forum.org/


----------



## Zukane (7. März 2011)

Also mit Flash kann man gut Bilder auf Bilder sozusagen legen diese verziehen etc.

Dort gibt es auch Scripts aber ob das ne richtige Programmiersprache ist weiß ich nicht.

Mit C++ wirst du sicher was machen können aber ob das so für Einsteiger gut ist weiß ich nicht.
Außerdem msust du da viel lernen und musst fast alels können bist du mal ein "Spiel" anfangen kannst.


----------



## spectrumizer (7. März 2011)

Delphi
Java
... oder Visual Basic wenn's sein muß.


----------



## Klos1 (7. März 2011)

Als .Net-Entwickler würde ich dir natürlich ganz klar Microsoft .Net empfehlen und da natürlich C#.  Aber Java ist auch gut. Mir persönlich gefällt C# aber noch ne Ecke besser, auch wenn es sich sehr ähnlich ist.
Von Visual Basic würde ich abraten. Das hat die grindigste Syntax, die mir jemals untergekommen ist, was aber vielleicht auch daran liegen mag, dass ich mit Java und C# gelernt habe und dann nur noch am kotzen war, als ich in der Firma ein Programm, welches mit Visual Basic geschrieben wurde, anpassen musste. Ich glaube, in unserer ganzen Firma würdest du keinen C#-Entwickler finden, der nicht am liebsten schreiend davon laufen würde, wenn er etwas in Visual Basic machen muss. 

Bezüglich C oder C++: Für den Einstieg sicherlich am schwersten, aber du lernst bezüglich der Speicherverwaltung mehr, denn um diese musst du dich noch selbst kümmern.
In Java oder C# macht das der Garbage-Collector für dich. Wenn dann würde ich aber auf jedenfall gleich C++ nehmen. Ich persönlich sehe keinen Grund, warum man mit einer prozeduralen Sprache wie C anfangen sollte. Lieber gleich direkt objektorientiert.


----------



## spectrumizer (7. März 2011)

Ja, wer ehrgeizig ist, sollte wohl auch mit C++ anfangen. Ist auf längere Sicht schon effektiver, da du unterm Strich mehr mit dem Code machen kannst. Das kann aber auch der Nachteil sein, da du bei einigen Konstrukten schon wissen mußt, was sie machen, selbst nach "Jahren" noch, wenn's mal was am Code zu warten oder zu erweitern gibt. Und deswegen hat C++ schon eine steile Lernkurve, wo ein Einsteiger die ersten Wochen wohl nur Bahnhof verstehen wird.

Es gibt nicht umsonst diese Satire über C: Creators Admit Unix and C was a Hoax


> We stopped when we got a clean compile on the following syntax: for(;P("n"),R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);




Ich programmiere zB seit ich 14 Jahre jung war, hab früher viel mit C und ASM gemacht, meine persönliche Lieblingssprache ist dann aber Pascal und inzw. Delphi geworden. Und wenn ich heute in einem C++ Buch oder Code stöbere, verstehe ich an vielen Stellen nur Bahnhof. Und manchmal bereue ich es auch, mich nicht tiefer in C++ reingearbeitet zu haben, da zB ein großer Nachteil von Delphi die fehlende Portierbarkeit auf andere Systeme (Linux, Mac, ...) ist oder du mit Delphi zB nicht einfach so Kernelprogramme (Treiber z programmieren kannst. Diese Problem hast du mit C / C++ nicht und Java lässt sich auch gut portieren.

Aber das ist auch der einzige Nachteil. Delphi ist bis heute noch DIE "Rapid Application Development" Umgebung, wenn es darum geht, einfach nur Anwendungen zu entwickeln, ohne sich mit Pointern rumprügeln zu müssen.


----------



## Klos1 (7. März 2011)

Wer will den schon Treiber schreiben? Bist du völlig verrückt?


----------



## Tikume (7. März 2011)

vb.net oder C#

Warum:
- Du bekommst die Express Version mit der Du verdammt viel anfangen kannst umsonst
  http://www.microsoft.com/germany/express/download/default.aspx
- Du kannst relativ fix sinnvolle Programme machen was auch eine starke Motivation darstellt
- Es ist für Anfänger geeignet

Programmiersprachen unterscheiden sich natürlich, aber hat man eine mal halbwegs drauf dann fällt einem auch ein eventueller Umstieg wesentlich einfacher.


----------



## Voldemôrd (7. März 2011)

also ist c# schon eine gute wahl gewesen  oder soll ich doch wie beschrieben mit c++ anfangen und später auf c# umsteigen wegen dem garbage blabla  ?


----------



## Tikume (7. März 2011)

Ganz ehrlich: Wir wissen ja nicht was Dir liegt, wie stark Du dich reinhängst, wie begabt Du bist, etc.

Als ich damals am Amiga programmieren wollte hat mir der Bruder von nem Freund was gegeben und ich bin keinen Schritt weitergekommen.
Kein Wunder, der Typ hat sich in Assembler ausgetobt ...
Ich hab dann später mit Amos angefangen, das war paar Stufen drunter aber ich konnte wenigstens mal meine eigenen Spiele schreiben und begreifen wie die Grundfesten vom programmieren aussehen.

Was glaubst Du hat mir mehr geholfen?


----------



## Klos1 (7. März 2011)

Voldemôrd schrieb:


> also ist c# schon eine gute wahl gewesen  oder soll ich doch wie beschrieben mit c++ anfangen und später auf c# umsteigen wegen dem garbage blabla  ?



Perfekte Wahl.  Du kannst damit so gut wie alles machen. So lang du nicht so freakig unterwegs bist, wie Spectrumizer und Treiber entwickeln willst, ist C# perfekt.
Für Treiber wäre dann C++ die bessere Wahl, weil dafür brauchst du unmanaged Code.


----------



## Voldemôrd (7. März 2011)

Treiber brauche ich jetzt nicht unbedingt schreiben  Nagut dann geh ich mal auf Toutorial suche für C# =D<br><br>Edit:<br><br>Falls nochmal jemand auf den Thread stößt, hier ist ein Tutorial, einfach auf der Seite auf die Guide Sektion drücken<br><br>www.guidetocsharp.de/<br>


----------



## Klos1 (7. März 2011)

Für den Einstieg:

http://openbook.gali.../visual_csharp/

Entwicklungsumgebung:

http://www.microsoft...ermany/express/

Für das Buch brauchst du die Windows-Express-Edition

Wenn du danach auf Web Bock hast, dann zieh dir die Web-Developer Edition und SQL-Express. Spätestens dann solltest du dich auch mit SQL auseinandersetzen.

Bücher über ASP.NET gibt es als Open-Book leider nichts brauchbares. Auf Google-Book findet man zwar alles, aber da verlink ich lieber mal nichts, da die Bücher da 100%ig nicht legal sind.
Suchen würde ich da dann nach Büchern mit ASP.Net 4.0 und C#. Auch sehr interessant und in meinen Augen besser als ASP.Net Webforms wäre, wenn du dir ASP.Net MVC anschauen würdest.

Und wenn du dann immer noch nicht genug hast und dir Web gefallen sollte, dann wären auch Bücher über Webservices sehr interessant.


----------



## Ogil (8. März 2011)

Auch wenn ich nachvollziehen kann, dass man zum Direkteinstieg in objektorientierte Programmierung raet - ich finde schon gute Gruende fuer eine prozedurale Sprache wie C. Man darf halt nicht vergessen, dass Programmierung nicht nur daraus besteht Programme zu schreiben, die auf PCs oder Servern laufen. Embedded C fuer hardwarenahe Programmierung (wo kein OS laeuft) oder Objective-C fuers iOS oder Mac OS X sind weit verbreitete C-Dialekte.


----------



## Tikume (8. März 2011)

Umschwenken kannst Du aber jederzeit. Wer hier ist denn bei seiner ersten Sprache geblieben? 
Wichtig ist, dass er erstmal den Einstieg findet (mit etwas das für ihn selbst passt).


----------



## Klos1 (8. März 2011)

Natürlich besteht sie nicht nur daraus. Aber nicht jeder Programmierer macht alles. Vielmehr schießt du dich auf etwas ein und versuchst dann, darin wirklich gut zu werden. Ein Web-Entwickler wird sich im Normalfall niemals mit low-level-Kram beschäftigen. Und jemand, der Treiber programmiert, wird sehr wahrscheinlich niemals wirklich viel mit Web zu tun haben. Ich entwickle komplexe Web-Portale für Logistikunternehmen.
Ich tue gut daran, mich mit Sachen wie Web-Services, Ajax, Entity-Framework, SQL und noch vieles mehr zu beschäftigen. Das bringt mich im Leben viel weiter, als mich mit low-level-Programmierung aufzuhalten.
Letzteres wäre einfach nur Zeitverschwendung für mich. Alles kannst du nie lernen. Kein Programmierer kann wirklich alles. Es macht einfach Sinn, sich auf etwas zu konzentrieren und darin aber dann möglichst viel Know-How aufzubauen, als alles nur ein bisschen zu können. Spezialisten in bestimmten Bereichen sind es, die in der Programmierung richtig Kohle einstreichen.

Und das Prinzip der prozeduralen Programmierung ist ja jetzt nicht so das Geheimnis. Obwohl ich mit Java und C# gelernt habe, könnte ich dir dennoch ein Programm schreiben, dass prozedural programmiert ist. 
Damit verstehe ich natürlich noch nicht sonderlich viel von hardware-naher Programmierung. Aber wie gesagt, da wo meine Reise hingeht, da werd ich es sehr wahrscheinlich niemals brauchen.


----------



## RedShirt (8. März 2011)

Sog. "Low-Level" Programmierung (aka assemblerähnliche Sprachen) bestimmen z.b. das Sondermaschinengeschäft.

Als kleine Info, unter 100 Euro/h kriegt man da keinen Programmierer her.
(in dem Bereich war ich auch ne Weile tätig)

Das pauschal zu sagen "kleinvieh bringt mir nix" halte ich für gefährlich.

@TE
Je nachdem wie tief Du reinwillst... Java ist recht handzahm und schön erlernbar.
Um C wirst nicht rumkommen, wenn Du "richtig" programmieren willst.

Qt ist ein tolles Framework, .net geht auch. C# ist halt MS-spezifisch, musst also selber wissen.


----------



## Klos1 (8. März 2011)

RedShirt schrieb:


> Das pauschal zu sagen "kleinvieh bringt mir nix" halte ich für gefährlich.



Das sag ich nicht pauschal, sondern aufgrund meiner Erfahrung. Mich persönlich hätte es bisher nicht weitergebracht. Es wäre verschwendete Zeit gewesen.
Es gibt für mich wie gesagt genug zu lernen. Ich arbeite 10-12 Stunden täglich und könnte, wenn ich bei allem, was für mich relevant ist, up-to-date bleiben will, meine komplette Freizeit damit verbringen, irgendwelche Bücher
zu wälzen. Was soll ich mich da mit Assembler rumschlagen? In meinen Augen total sinnlos. Klar kannst du als solcher gut Kohle machen. Das kannst du aber als jemand, der richtig Ahnung von Datenbanken hat auch.
Jetzt nur mal so als Beispiel. Und davon werden die wenigsten sich schon mal intensiv mit Assembler befasst haben.

Mir gefällt auch dein Vergleich mit dem "Kleinvieh" nicht. Ich habe maschinennahe Programmierung nicht als Kleinvieh bezeichnet. Vielmehr geht aus meiner Aussage hervor, dass es eben eine Sache für sich ist.
Damit kann man sich beschäftigen, aber dann richtig. Etwas anzukratzen bringt nicht sonderlich viel. Bevor ich mich aber intensiv mit etwas wie Assembler befasse, was ich noch nie gebraucht habe, befasse ich mich lieber mit Dingen,
die ich in der Arbeit verdammt oft brauche und versuche diese zur Perfektion zu bringen. Wie gesagt: kein Programmierer kann alles wirklich gut. Wenn das einer sagt, labert er Müll. Meiner Erfahrung nach bist du als Programmierer
aber nur gefragt, wenn du irgendwo richtig gut bist. Und das kann alles mögliche sein. In allem aber richtig gut zu sein, wirst du niemals schaffen.

Außerdem bleibt da auch noch die Frage, was ich denn eigentlich machen möchte. Geld allein ist für mich nicht alles. Ich möchte Spass bei der Arbeit haben. Das ist mit Geld nicht aufzuwiegen in meinen Augen.
Deswegen hab ich mich nun mal für das entschieden, was ich gerade mache.


----------



## kaepteniglo (8. März 2011)

Bei uns in der Firma gibt es 2 Entwicklungsabteilungen.

1. Geräteentwicklung inkl. Firmware
Da wird mit C++ auf Mikrocontrollern, DSP, Touchscreenansteuerung & Co. entwickelt.

2. PC Software (da gehöre ich dazu)
Wir entwicklen mit C#, .NET 4.0, EF, SQL Compact / SQL Server, DevExpress.

Ich seh  bei den Geräteentwicklern nicht wirklich durch und die sehen bei uns nicht wirklich durch.

Jeder hat halt seine Spezialgebiete.

.NET Compact Framework oder gar Windows Embedded sind dann auch wieder andere Welten.

Ach ja, ein anderer entwickelt mit J2ME, weil das Modem, mit dem wir arbeiten, nur J2ME unterstützt.

Echt toll.


----------



## Ogil (8. März 2011)

Ich wollte auch nicht ausdruecken, dass man nun unbedingt C lernen muss. 

Ging halt eher um den Hinweis, dass es (wie Klos ja auch sagt) massenhaft verschiedene "Richtungen" und Teilbereiche in der Programmierung gibt und jeder Teilbereich halt "seine" Sprachen hat. Im Grunde ist es relativ egal womit man anfaengt. Wenn man erstmal eine Sprache gelernt hat, faellt es deutlich leichter auf andere Sprachen umzusteigen. Spaeter wird man sich vielleicht auf einen Teilbereich und eine Sprache spezialisieren - was das genau sein wird, haengt halt auch davon ab was man genau machen moechte und in welchem Umfeld.

Wenn man sich zum Beispiel im Open-Source-Umfeld bewegt, wird man merken, dass da auch Sprachen beliebt sind, die vielleicht kommerziell nicht so stark genutzt werden. Python oder Ruby zum Beispiel.


----------



## Tikume (8. März 2011)

Fürs lernen ist es auf jeden Fall positiv wenn man sich selbst motiviert. Wenn man Spass an Elektronik Baukästen hat die man dann mit C programmiert dann wird dies sicher z.B. eine starke Motivation sein.
Ich fand es immer gut wenn ich Sachen machen konnte die ich selbst benötige und verwende.


----------



## xdave78 (8. März 2011)

Also ich hab damals mit Basic begonnen, bin dann zu TurboPascal (gibts das eigentlich noch?) und letzendlich zu C++ gekommen. Es geht ja hier darum, welches den grössten "Wert" hat gelernt zu werden...wenn ich das ma so sagen darf. Da bin ich der Meinung uist man mit C schon wirklich auf dem rechten Weg. Denn viele Sprachen sind dem recht ähnlich von der Syntax her und sie ist vielseitig einsetzbar. Wenn man C drauf hat kann man Syntax in fast jeder Hochsprache "entziffern" bzw sich vorstellen was im Programm abgeht.


----------



## Klos1 (8. März 2011)

xdave78 schrieb:


> Also ich hab damals mit Basic begonnen, bin dann zu TurboPascal (gibts das eigentlich noch?) und letzendlich zu C++ gekommen. Es geht ja hier darum, welches den grössten "Wert" hat gelernt zu werden...wenn ich das ma so sagen darf. Da bin ich der Meinung uist man mit C schon wirklich auf dem rechten Weg. Denn viele Sprachen sind dem recht ähnlich von der Syntax her und sie ist vielseitig einsetzbar. Wenn man C drauf hat kann man Syntax in fast jeder Hochsprache "entziffern" bzw sich vorstellen was im Programm abgeht.



Wenn du C kannst, hast du aber noch überhaupt keinen Plan von objektorientierten Programmieren. Das heißt, wenn du ein solches Programm vor dir hast, dann kannst du dir zwar vorstellen, was die Methoden im einzelnen machen, vom Objektmodell hast du dennoch keinen Schimmer.
Bis man dieses objektorientierte Denken drauf hat, vergeht einige Zeit. Man sieht bei uns schon im Code, wenn da ein Programmierer dran war, der Jahre lang nur prozedural programmiert hat. Und nur weil du als jemand aus der C-Ecke zum Beispiel C#-Code deuten kannst, heißt das in meinen Augen noch lange nicht, dass man mit C anfangen sollte. Ich kann auch C-Code deuten. Ist kein Problem. Meiner Meinung nach hängt es davon ab, was man machen will. Und da ist es nun mal Fakt, dass das Erlernen von C nicht in jedem Fall die glücklichste Entscheidung sein muss. Für meine persönliche Situation wäre es zum Beispiel absoluter Humbug gewesen, wenn ich mich während meiner Ausbidlung intensiv mit C beschäftigt hätte, anstelle der Dinge, dir für mich elementar sind.

Du kannst also nicht pauschal sagen, dass Erlernen von C hat den größten Wert. Kann es haben, ja. Es kann sich aber später auch gut herausstellen, dass es die denkbar schlechteste Alternative gewesen ist.
Je nachdem, was du halt machst.


----------



## RedShirt (8. März 2011)

Ich meinte auch eher, dass er durchaus bei maschinennaher Programmierung anfangen kann, ich seh das nicht als Nachteil. Das kann man sogar noch ganz gut gebrauchen.

Du hast stark von Dir und Deinem Job gesprochen - der ist aber nicht alles und eventuell liegt Dein Jobprofil ihm auch nicht.

Ich hab überall reingeschnuppert: Basic, Pascal, C, C++, Step7, S7 Graph, PHP, Perl... usw usw
Und auch in den Bereichen was gemacht. 

"Programmierer - Generalist oder Spezialist" war an der Uni mal ne Vorlesung.

Summa summarum: "Der Programmierer ist Generalist, der die Sprache lernt/kann, die gerade nötig ist".

D.h. v.a. das Denken muß er vorher können. Prozeduren, Objekte, etc muss er können.

Klar, im Endeffekt macht man dann X Projekte mit Sprache/Typ A, und ist dann hier eher Spezialist.
Aber im Grundsatz: Alles kann kommen.


----------



## Klos1 (8. März 2011)

Die Aussage sollte aber dennoch nicht sein, dass er sich mit dem befassen soll, was ich in meinen Job mache. Die Message sollte sein, such dir etwas und konzentriere dich darauf. Ob das nun maschinennahes Programmieren ist, oder was auch immer.
Und als Spezialisierungsmöglichkeit sehe ich jetzt nicht unbedingt nur die Sprache, sondern eigentlich vielmehr, was du damit machst. Prozesse, Web, Treiber, Spiele oder was auch immer. Das du von der Sprache her bei einen Jobwechsel mal umsteigen musst, ist völlig klar.
Wenn du aber jemanden, der sein Leben lang nur Web gemacht hat irgendwo hinsetzt, wo er jetzt Treiber entwickeln soll, dann sitzt er erstmal dumm da. Von daher teile ich deine These mit dem Generalisten, egal, welchem hochrangigen Professor sie auch entfallen sein mag, nicht wirklich.


----------



## Ol@f (8. März 2011)

Kennt zufällig jemand gute Literatur für C++? Müsste es mir mal so langsam aneignen.. 
Es sollte möglichst mit Grundlagen beginnen.

Werde es demnächst für algorithmische Mathematik benötigen. Das sind unter anderem die  Themen: Elementare Algorithmen, Diskrete Algorithmen; Lösung linearer Gleichungs­syste­me; Approximation, Interpolation, numerische Differentiation und Integration; Algorithmische Stochastik; Iterative Nähe­rungsverfahren, Fehlerabschätzungen


----------



## kaepteniglo (8. März 2011)

C++ von A bis Z: http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-2156?GalileoSession=07359748A4.Yp-t6e7M
C++ programmieren: http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-2418?GalileoSession=07359748A4.Yp-t6e7M
C/C++: http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-1299?GalileoSession=07359748A4.Yp-t6e7M
Coding for Fun mit C++: http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-2259?GalileoSession=07359748A4.Yp-t6e7M

Einstieg in C++: http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-2083?GalileoSession=07359748A4.Yp-t6e7M
Grundkurs C++: C++-Programmierung verständlich erklärt : http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-2313?GalileoSession=07359748A4.Yp-t6e7M

Es gibt noch sehr viele andere Bücher dazu.

Wäre MathLab für die algorithmische Mathematik nicht besser?


----------



## Ol@f (8. März 2011)

Ja, das nutze ich auch. Aber der Prof. wills (lieber) in C++.

Edit. Achja, danke für die Links.


----------



## Tikume (8. März 2011)

xdave78 schrieb:


> Es geht ja hier darum, welches den grössten "Wert" hat gelernt zu werden..



Dann habe ich den Threadtitel "Welche Programmiersprache für den Einstieg?" vermutlich missverstanden.


----------



## xdave78 (9. März 2011)

Naja für den Einstieg kann man auch Basic nehmen...


----------



## eaglestar (9. März 2011)

Für Anfänger (aus meiner Sicht) klar C++ und dann C#. (Client-Programmierung...Software die auf dem PC läuft)

Für Webanwendungen (mein Favorit) Java (nicht JavaScript*!*).

Für WEB2.0-Anwendungen Java+Google Web Toolkit (GWT)



Gruß


----------



## Klos1 (9. März 2011)

@eaglestar:

Für 111 Jahre hast du dich aber gut gehalten.


----------



## spectrumizer (9. März 2011)

Klos schrieb:


> So lang du nicht so freakig unterwegs bist, wie Spectrumizer und Treiber entwickeln willst


Kommt selten vor, aber 2x stand ich in meiner Laufzeit schon vor dem Problem, hab mich geärgert und mußte das Teilprojekt dann halt an jemanden abgeben. 



xdave78 schrieb:


> bin dann zu TurboPascal (gibts das eigentlich noch?)


Ja, heißt heute aber Delphi. Oder die unabhängige OpenSource Weiterentwicklung "Free Pascal" und dem damit verbundenen Lazarus .


----------



## Schrottinator (9. März 2011)

Klos schrieb:


> So lang du nicht so freakig unterwegs bist, wie Spectrumizer und Treiber entwickeln willst...



Was ist bitte schön freakig daran Treiber zu schreiben?


----------



## Sugarwarlock (10. März 2011)

Fang mit C# oder Java an. Das ist am verbreitesten. Den Rest vergisst du erstmal wieder. Es gibt keinen Grund, warum man nicht eine der beiden Sprachen am Anfang lernen sollte. Basic lohnt sich nur, wenn du deinen Horizont auf AddOns für WoW, RoM, LotRO und WAR beschränken willst. Die Syntax von lua ähnelt Basic sehr.

Sobald du ohne Probleme damit klar kommst, vergisst du Java und C# auch wieder und fängst mit C/C++ an. Java und C# versauen Programmierer. Die Compiler compilen dir jeden Dreck den du denen gibst und du lernst nichts dabei. Meiner Meinung nach muss jeder Programmierer sich mit Speicherverwaltung auskennen. Das ist einfach ein großer und wichtiger Bestandteil des Computers und du willst schließlich nicht sowas wie Photoshop lernen sondern du willst einige Level nach unten und Spiele programmieren. Ich persönlich mag eigentlich c++ auch nicht so gerne. Bin eher der Objective-C Typ (ich liebe diese Sprache). Aber ohne Mac lohnt sich die Sprache nicht.
Wenn du in C++ ein wenig weiter bist, kannst du dir ja mal LWJGL angucken. Die Schnittstelle bringt dir OpenGL nach Java. Momentan programmiere ich in Java mit ein paar Freunden ein kleines Spiel. Das gute ist, dass die normalen OpenGL Funktionen benutzt werden. Wenn dein Spiel in Java läuft, kannst du es einfach nach C++ portieren und somit auch aufwendigere Grafiken benutzen und das Programm dann in C++ fixen und weiterentwickeln. Somit hast du vielleicht mehr Arbeit, aber du siehst schneller Erfolge ohne dich vorher mit Pointern und Speicherverwaltung zu stressen. Aber da wären wir wieder bei Java und C#. Habe mit C# angefangen und die Fehlermeldung "Makes Pointer from Integer without a Cast" hat mich erstmal lange beschätigt xD.

Ich wünsch dir mal viel Erfolg und hoffe dadrauf, dass du besser als Notch wirst und dein Spiel nicht so viele Ressourcen frisst wie Minecraft.


----------



## Tikume (10. März 2011)

Sugarwarlock schrieb:


> Fang mit C# oder Java an. Das ist am verbreitesten. Den Rest vergisst du erstmal wieder.



Ähm nein. Ich verstehe nicht warum so viele leute die es eigentlich besser wissen müssten nicht verstehen dass je nachdem was man macht viele Sprachen ihre Berechtigung haben.


----------



## eaglestar (10. März 2011)

Tikume schrieb:


> ... dass je nachdem was man macht viele Sprachen ihre Berechtigung haben.



Für Client-Software würde ich kein Java (Swing) nehmen, obwohl ich beruflich nur mit Java programmiere.
Außerdem, wie sagte in grauer Vorzeit mein Lehrer zu mir: "...Wir lernen hier Programmieren und nicht wie man C++ programmiert!"


Variablen, Schleifen, Operatoren, Verzweigungen, Klassendiagramme, Struktogramme...sollte doch jeder Entwickler kennen, egal welche Sprache
er bevorzugt, oder!?


----------



## Ennia (10. März 2011)

Die Diskussion wird irgendwie jedes Jahr neu ausgegraben und jeder weiß es besser, vor allem die, die sich beruflich mit dem Programmieren beschäftigen. Ich geb jetzt trotzdem meinen Kommentar ab, obwohl mich der thread schon wieder anwidert.

Ich hab mich mit 12, 13 Jahren an VB versucht, weil doch ein Windows- bzw. GUI-Kind bin - also die ersten Erfahrungen hab ich in der Objektorientierten Programmierung gesammelt. Ich muss aber zugeben, dass das mehr Malen nach Zahlen, als sonstwas war (mit MS-Press Handbuch).

Im Gymnasium (8 Wochenstunden INF) hat man uns dann näher an die Materie rangeführt. TurboPascal (V6.0, glaub ich) stand da in der ersten Klasse auf dem Lehrplan! Juhu, das war ein Spaß! Naja, als wir da dann bis hin zu graphischen Anwendungen ausgelebt hatten, wurde es dann spannend und wir durften uns an Delphi ranwagen. Im vorletzen und auch letzten Jahr kam dann noch Flash dazu. Nebenher, und das war wirklich nur nebenher, HTML, PHP, Pearl und SQL.

Ihr merkt schon, hier wurde eine gewisse Reihenfolge befolgt und so wird es auch im Informatik-Studium an Universität XY praktiziert. Es hat schon einen Sinn, dass man auch beim Programmieren von vorne anfängt und nicht quer einsteigt.

Pascal ist doch eher unbekannt/ausgestorben, also würd ich als Compilersprache dann eben mit C anfangen, ist ja im Prinzip das Selbe.


----------



## Tikume (10. März 2011)

eaglestar schrieb:


> Variablen, Schleifen, Operatoren, Verzweigungen, Klassendiagramme, Struktogramme...sollte doch jeder Entwickler kennen, egal welche Sprache
> er bevorzugt, oder!?



Ja, vor allem fällt der Umstieg viel leichter wenn man die Konzepte die es so gibt kennt. Es ist ja nicht so dass man eine Programmiersprache anfängt und dann niemals wieder umsteigen kann oder für den Rest seines Lebens davon besudelt und verdorben ist.

Auf der Schule hatten wir auch Cobol und als wir dann eine größere Abschlussarbeit machen mussten hat ein Großteil angefangen und sich selbst Visual Basic beigebracht. Warum? Weils mehr Spass machte und die Erstellung einer Benutzeroberfläche nicht Pain in your ass war.

Oder ganz am Anfang nach meiner Assembler-Pleite habe ich dann mit CanDo angefangen. Das war nur bedingt Programmierung und mehr Geklicke. Ich merkte nach ein paar Programmen  dass ich dabei nicht bleiben will. Aber ich habe dadurch einige Grundlagen erfahren und hab dann mit Amos Basic weitergemacht. 
Wenn man dann mal sein erstes Spiel macht und bei Sachen wie Highscore Listen landet dann denkt man das erste mal über Problematiken wie sortieren oder suchen nach.

Und um- und weiterlernen muss man bei der Programmierung eh immer.


Man neigt halt schnell "seine" programmiersprache als die beste und allein seeligmachende darzustellen. Das ist aber kompletter Unsinn.


----------



## Mordhorst (10. März 2011)

Wenn er dann mal ein 2D Spiel machen will, wird er spätesten bei Bildmanipulation an einen Punkt kommen, wo das Basiswissen nötig ist.
Hab auch mit C angefangen (Anno 1987 ) und dann etwas später mit C++ und SmallTalk die Objektorientierung gelernt.

Mit den Grundkenntnissen von C und dem Konzept der Objektorientierung arbeite ich heute noch.
Fang jetzt zwar auch mit C# an, auf der Arbeit programmiere ich aber oft noch Mikrocontroller, bei denen man manchmal die Bits noch eigenhändig schieben muss 

Bei C# geht zwar alles wunderbar schnell und einfach, ich persönlich fühle mich dadurch aber auch oft gegängelt.
Besonders, wenn ich dann den Code sehe, der bei C# automagisch generiert wird -.-


----------



## Ogil (10. März 2011)

Im Grunde sagt hier grad jeder das Selbe - und betont, dass sein Vorredner totalen Quatsch erzaehlt hat und ihn anwidert 

Also nochmal zum Zusammenfassen: Man kann mit jeder Sprache anfangen - aber es macht sicher Sinn eine fuer seine "Zielanwendung" geeignete Sprache zu waehlen. Ausserdem ist es sicher schlau eine Sprache zu nutzen, die auch von anderen genutzt wird - was im Normalfall bedeutet, dass man mehr Literatur dazu findet und im Zweifelsfall auch Leute, die einem bei Problemen helfen koennen.

Da der TE nur ein kleines 2D-Spiel erstellen will, gibt es eigentlich keine grossartigen Anforderungen an die Sprache und alle ueblichen Verdaechtigen (C/C++/C#/Java/usw.) sind tauglich.


----------



## kaepteniglo (10. März 2011)

Mordhorst schrieb:


> Bei C# geht zwar alles wunderbar schnell und einfach, ich persönlich fühle mich dadurch aber auch oft gegängelt.
> Besonders, wenn ich dann den Code sehe, der bei C# automagisch generiert wird -.-



Man sollte so wenig wie möglich Code generieren lassen, da weiß man wenigstens im Nachhinein, was man gemacht hat.


----------



## Klos1 (10. März 2011)

Ihr redet alle Quatsch und widert mich an. C# ftw!!!


----------



## Schrottinator (10. März 2011)

Wenn er ein 2D-Spiel machen will hat er mit C# noch einen Vorteil: XNA.

Mit dem Framework kann man wirklich schnell Resultate erziehlen kann, auch wenn man nicht so viel Ahnung hat. Ich muss aber zugeben, dass ich kein Vergleichbares Framework zu XNA kenne. Deshalb kann ich nicht sagen ob es ein besseres gibt.

Das wäre mein Argument für Visual Java als Einstieg.


----------



## Sugarwarlock (11. März 2011)

Tikume schrieb:


> Ähm nein. Ich verstehe nicht warum so viele leute die es eigentlich besser wissen müssten nicht verstehen dass je nachdem was man macht viele Sprachen ihre Berechtigung haben.



Das will ich auch gar nicht bestreiten. Aber C# und Java sind weit verbreitet und C# ist noch relativ neu. Da Java viel von C# übernommen hat, ist es auch relativ modern. Wenn ich damals, als ich mit C# angefangen habe, etwas nicht wusste, habe ch bei google innerhalb con wenigen Minuten Beispiele gefunden. Darum passt C# und Java für Anfänger.

Die anderen Sprachen sollte er erstmal vergessen, weil es unsinn ist, sich über andere Sprachen Gedanken zu machen, wenn man gerade eine andere Sprache lernt und mit Programmieren anfängt. Es ist ja wohl totaler Unsinn sich zu denken "OH! Da würde ich mit C++ besser fahren" wenn man gerade Java aufgrund der Einfachheit der Sprache lernt. Und wie jeder (Hobby) Programmierer weiß: Kann man eine Sprache, kann man (fast) alle Sprachen.



Schrottinator schrieb:


> Wenn er ein 2D-Spiel machen will hat er mit C# noch einen Vorteil: XNA.
> 
> Mit dem Framework kann man wirklich schnell Resultate erziehlen kann, auch wenn man nicht so viel Ahnung hat. Ich muss aber zugeben, dass ich kein Vergleichbares Framework zu XNA kenne. Deshalb kann ich nicht sagen ob es ein besseres gibt.
> 
> Das wäre mein Argument für Visual Java als Einstieg.



Mit Java ist das auch kein Problem. Gibt genug Bindings für OpenGL oder DirectX. So wie ich das verstanden hab, kombiniert XNA die Vorteile von allen gängigen Frameworks. Problem: .Net. Sollte er irgentwan mal größere Sachen vor haben, müsste er mit DirectX oder OpenGL fast neu anfangen. Und was meinst du mit Visual Java? J#? wWird nicht weiter entwickelt. War nur dafür da, den Java Entwicklern den Umstieg auf .Net zu erleichtern.


----------



## Sugarwarlock (13. März 2011)

Mich würde es mal interessieren, was du denn jetzt genommen hast. Java? C#? Basic?


----------

