|
Re: Roboter in C# programmieren
[Re: TheShooter]
#382814
09/13/11 01:29
09/13/11 01:29
|
Joined: Jan 2003
Posts: 4,615 Cambridge
Joey
Expert
|
Expert
Joined: Jan 2003
Posts: 4,615
Cambridge
|
klar hilft dir Lite-C-Erfahrung. Du wirst etwas umdenken müssen in der groben Programmstrukturierung, eine wichtige Sache, die du lernen solltest, sind Klassen. Außerdem sind sehr viele Details anders (Speichermanagement, um mal das wichtigste zu nennen).
Je mehr Programmiersprachen du beherrschst, desto "abstrakter" kannst du Programmieren und grobe Konzepte entwickeln. Im Endeffekt geht es dann nur noch darum, die Syntax und Feinheiten der Sprache zu lernen.
(OT: Im Allgemeinen finde ich es immer besser, wenn man zuerst hardwarenähere Sprachen lernt. C ist äußerst prima. Ich kenne sehr wenige Leute, die mit Basic/PHP/whatever angefangen haben und ordentlich Programmieren können; da ist einfach die "Erziehung" anders.)
Lite-C ---> C# ist aber eine gute Richtung.
|
|
|
Re: Roboter in C# programmieren
[Re: Joey]
#382815
09/13/11 02:25
09/13/11 02:25
|
Joined: Mar 2002
Posts: 1,774 Magdeburg
FlorianP
Serious User
|
Serious User
Joined: Mar 2002
Posts: 1,774
Magdeburg
|
C# ist eine super Sache für alle kleineren Projekte - durch die ganzen eingebauten libraries kann man sehr schnell sehr viel erreichen. Ich programmiere seit 8-9 Jahren und hab mich erst vor kurzem das erste mal mit c# beschäftigt; und ich muss sagen - es gibt kaum eine Sprache die einen leichteren Einstieg bietet.
Wenn du von lite-c kommst würde Ich mir vor allen Dingen das Zeigermanagement(z.B. delegate und den base-'pointer') bzw die Garbage-collection anschauen. Ansonsten wie Joey schon sagt objectorientierte Programmierung natürlich.
zum OT: Ich selbe habe mit Basic angefangen und finde, dass das absolut egal ist. Wichtig ist nur, dass man irgendwann ein gewisses Spektrum kennt. Klar sind die Einflüsse andere und ich würde heute immer lieber auf c-sprachen zurückgreifen - aber die meisten c-kiddies, die Ich kenne denken zu sehr in 1en und 0en und verlieren den Überblick über das große Ganze. Hardwarenähe ist eine super Sache aber man muss auch damit umgehen können und vorallem c verleitet permanent dazu das Rad neu zu erfinden - da ist z.b. c# eine super Stütze(klar wird man irgendwo eingeschränkt, aber oft auch aus triftigem Grund). Was mir persöhnlich sehr geholfen hat ist das Lernen von logischer und prozeduraler Programmierung(in meinem Fall prolog und haskell) - zu erleben was möglich ist wenn ein bisschen mehr darüber nachdenkt was man haben will als wie es am Ende in 1en und 0er aussieht. ...Finds immer wieder erschreckend wie viele Leute die seit Jahren in der Hobbyspieleprogrammierung unterwegs sind und bei einfachsten Datenstrukturen wie linked-listen oder hashmaps aufgeschmissen sind...."Array, Array, Array...."
Hardwarenähe ist wie Autofahren - wenn mans kann, fährt man überall selbst hin - aber wenn man mal nach Australien will sollte man ein bisschen Kontrolle abgeben und den Flieger nehmen. Kann viel passieren und man braucht ein Shuttle(oder Leihwagen) zum Hotel aber am Ende ist man doch schneller!^^ Assembler/C ist super für nen kleinen roadtrip aber für die Weltreise sollte man lieber das gemanagete c++ framework chartern.
Edit: omg...man merkt es ist schon spät^^
Last edited by FlorianP; 09/13/11 02:40.
I <3 LINQ
|
|
|
Re: Roboter in C# programmieren
[Re: Joey]
#382823
09/13/11 07:27
09/13/11 07:27
|
Joined: Nov 2004
Posts: 7,121 Potsdam, Brandenburg, Germany
Machinery_Frank
Senior Expert
|
Senior Expert
Joined: Nov 2004
Posts: 7,121
Potsdam, Brandenburg, Germany
|
Ich kenne sehr wenige Leute, die mit Basic/PHP/whatever angefangen haben und ordentlich Programmieren können; da ist einfach die "Erziehung" anders. Das liegt vermutlich an Deinem Alter. Ich habe auch Basic zuerst gelernt und zwar noch mit Zeilennummern. Nicht destotrotz musste ich damals aus Performance-Gründen auf dem C64 zusätzlich für Grafikeffekte reine Maschinensprache und Assembler lernen. Dort arbeitete man mit Registern und kurzen Sprung- und Kopierbefehlen, mit Adressen und Hex-Zahlen. Hardware-näher geht es kaum. C ist dagegen genauso abstrakt wie Pascal oder C#. Aber heute stimme ich mit Dir überein. Wenn jemand Java als erste Sprache lernt und sich nicht weiter mit den Hintergründen beschäftigt, weiß er kaum noch, was tatsächlich auf Hardware-Ebene passiert, wie aus einem binären System eine Hochsprache entstehen konnte, die Prozeduren, Blöcke, Klassen und Vererbung versteht. Allein die Initialisierungs- oder Aufräumaktionen werden einem häufig abgenommen, was natürlich zu einem anderen Stil erziehen könnte. Allerdings muss ich auch zugeben, dass man damals eine Programmiersprache schneller lernen konnte, denn die APIs sind heute komplexer, die Vernetzungen vielfältiger und die Features der Programmiersprachen sehr viel umfangreicher. Ich hatte das Glück, die ganze Entstehung mitzuerleben. Ich meine, auch Pascal war damals noch zeilenorientiert. Diese Fixierung auf Zeilen war den Sprungbefehlen der Maschinensprache eigentlich viel näher. Erst die Blöcke mit den bedingten Befehlen begannen, Abstraktion und Struktur einzuführen. Und dann kamen auf einmal Objekte und Klassen, Vererbung und Komponenten. All das bot eine Menge Hilfe bei komplexeren Projekten, war aber jedesmal mit Lernen, Umstellen und Umgewöhnen verbunden. Und ja, bei ganz kleinen Beispielen war das jedesmal, dass diese neuen Konzepte umständlicher aussahen und mehr Code benötigten. Es zahlt sich eben erst aus, wenn eine bestimmte Komplexität in einem Projekt überschritten wird.
Models, Textures and Games from Dexsoft
|
|
|
Re: Roboter in C# programmieren
[Re: TheShooter]
#382888
09/13/11 17:10
09/13/11 17:10
|
Joined: Jan 2003
Posts: 4,615 Cambridge
Joey
Expert
|
Expert
Joined: Jan 2003
Posts: 4,615
Cambridge
|
das sind zwei paar Stiefel. http://de.wikipedia.org/wiki/C_(Programmiersprache) http://de.wikipedia.org/wiki/C-Sharp@Frank: ich stimm dir da voll und ganz zu, das ist ja auch genau das, was ich gemeint habe. Allerdings: C# und C/Pascal sind zwar rein technisch beides Hochsprachen der 3. Generation, aber garbage collection macht so einen großen Unterschied... @Flo: das war kein Basic vs. C, sondern ein Basic, dann C vs C, dann Basic . Und man merkt einen Unterschied, wenn man Leuten beim Programmieren zuguckt. Und meiner Erfahrung nach ist das in 80% ein negativer, wenn die Leute zuerst mit Basic anfangen... ich mag darüber aber keine Aussage treffen, kann gut sein, dass das mit irgendwas anderem korreliert. Ein Punkt dafür wäre aber, dass Basic wesentlich weniger populär ist.
|
|
|
|