Wie Programmieren lernen?

Naja, dann misch ich mich hier auch noch mal ein. :)

Es kommt ganz drauf an, was man machen will.

Hat man vor, professionell zu programmieren, also das Hobby zum Beruf zu machen, so sollte man als Anfänger unbedingt die Finger von Scriptsprachen á la PHP lassen. Nicht das diese Sprachen nun schlecht sind, aber sie zwingen einen zu Denkweisen, die in Hochsprachen wie C++ oder Delphi absolut unüblich und ineffizient sind. Bestes Beispiel ist hierfür PHP und C++. (ähnliche Syntax aber anderes Sprachkonzept)
Zudem sollte man, wenn man sauberes C++ lernen möchte, unbedingt die Finger von C lassen - man gewöhnt sich sonst viele Sachen an, die unter C++ gelinde gesagt "schmutzig" sind.

Möchte man hingegen Web-Sachen machen, sollte man sich mit PHP / Perl / Python (und was weiß ich noch alles) mal genauer befassen. Grundkenntnisse in HTML sind dabei schonmal Pflicht. Nur zur Anmerkung, HTML ist keine Programmiersprache - sondern eine Beschreibungssprache.


Meine persönliche Empfehlung wäre entweder Delphi oder C++, wobei ich C++ schon als etwas schwieriger einstufen würde. Delphi zwingt den Programmierer, einigermaßen sauber und strukturiert (nicht unbedingt im Sinne von "strukturierter Programmierung") zu denken und zu arbeiten. Kann man das erstmal gut, so ist das Lernen von C++ umso einfacher.
 
Genau meine Meinung, wobei der Umstieg von Delphi / VB auf C++ auch nicht unbedingt einfach iss, aber immerhin einfacher wie der Einsteig auf C++ :D

Aller Anfang iss schwer :cool_alt:
 
Wie vorne schon gesagt: Ich habe mich mit der Reihenfolge JavaScript -> PHP -> C(++) an die Syntax gewöhnt =)
 
@</Life>:
Deshalb habe ich ja auch die Betonung nicht auf die Syntax, sondern auf das Sprachkonzept gelegt. ;) Ich glaube gern, dass sich die Syntax so leicher lernen lässt. Aber das Verhalten einer Sprache ist das, was das Programmieren ausmacht. Und da Unterscheidet sich C++ doch schon recht stark von JavaScript oder PHP. Und aus diesem Blickwinkel halte ich das Lernen von C++ dadurch, dass man mit JavaScript und PHP anfängt, für nicht so ratsam. Man braucht schon einen erfahrenen Programmierer neben sich, der einem viel erklärt, sonst fällt man sehr sehr oft auf die Nase. Bittere Erfahrung :)
 
Tja C++ iss sowieso fast in allen Bereichen anders wie alle andern. :)
Zb. muss man das Speichermanagement übernehmen, was sonst überall der Compiler übernimmt ect.
 
dafür hat man aber auch eines der mächtigsten werkzeuge damit in der hand. ;)
wenn du echtzeit-gedöns (z.b. spiele) programmieren willst, bist du dankbar dafür dass du das speichermanagement in der hand hast. :)
 
Hmm... also... :) Drei Jahre Erfahrung mit PHP haben mir gereicht ;) Ok, in den ersten 2 Tagen hatte ich noch leichte Probleme mit dem Referenzieren und Dereferenzieren, aber das wars dann auch =)
 
Tja dafür biste in C++ n paar Jahre dran, wenn du was gutes machen willst :)
Und mit den Spieleherstellern konkurrieren kann man damit eh nich egal wie gut die eigene Engine iss. Ich kenn keine einzige Engine, die zb mit Quake 3 mithalten kann (obwohl dieses schon einige Jahre alt iss). Nagut gibt sicher auch ausnahmen.

Wie gesagt jede Sprache hat ihre Vor- und Nachteile :D
 
Öhm...
1.: Ich bastel grad ein Community-System mit C++... ist das nicht ordentlich? ;)
2.: Es gibt auch sehr gute Spiele, die graphisch nicht anspruchsvoll sind (z.B. http://www.textmodegames.com/ -> Downloads -> Snipes... ist von 1980 und macht immernoch Spass :))
3.: Es gibt auch geniale kostenlose 3D-Engines... Als Beispiele dazu nur mal CrystalSpace (ok, die ist relativ langsam) oder Ogre
 
Okok gibt auch gute Sachen. Ich hab sogar mal irgendwo so ne Art Diablo Klon gesehen, das wirklich geil aussieht. Die Leutz habens schon drauf.

Aber auf diese gratis 3D-Engines greif ich nich zurück, da mach ich mir lieber ne eigene. Bis ich mich in die fremde mal eingewöhnt hab, kann ich gleich ne eigene machen :D
 
Copy schrieb:
Richtig programmieren lernt man eh nur mit Assembler - alles andere ist ja fast so einfach wie scripten :D

eben asm rulez
:D

wer braucht schon c++ und so en schmarn? echte männer coden in asm :D
 
Ich gebe hier auch mal meinen Senf hinzu, als jemand der noch weiß, wie er von klein auf Programmieren gelernt hat.

Vielleicht vorher noch eine kleine Definition von "Programmieren": Programmieren ist eine Ingenieurttigkeit, d. h. ordentliches, strukturiertes Arbeiten, Vorbereitung (die Aufgabenstellung klar ausarbeiten, Anforderungsprofil erstellen), Ausarbeitung der Arbeitsweise des Programms (Struktogramme etc., über die Algorithmen nachdenken), modulares Erstellen der einzelnen Programmteile (besonders dazu ist OOP geeignet), testen der einzelnen Programmteile, zusammenfügen der einzelnen Programmteile, testen des fertigen Programms, Fehlerbehebung, testen, Fehlerbehebung, ...

Wie habe ich angefangen:
keinen Plan gehabt, aber dann mal in der Schule das Fach Informatik belegt. Dort nen coolen Lehrer in Jesus-Latschen gehabt, der voll auf Pascal (und Nik Wirth :D) stand. Schwärmte uns auch dauernd was von Oberon vor, gibt es dafür eigentlich noch IDEs und Compiler?
Aber mit Pascal ne Menge gelernt, besonders sauberes Programmieren. Zum Schluss auch OOP mit TP, was erstaunlich gut gelang.
Zwischendurch kam dann auch ein wenig Prolog. Das Prinzip habe ich nie richtig kapiert, ich stand davor wie der Ochs vorm Berg. Ein völlig anderes Konzept, von dem ich erstmal die Finger lassen würde. Oder gleich damit anfangen und dann bei den anderen Sprachen Probleme bekommen.

Dann der Schock: fürs Studium musste ich auf C/C++ umsteigen bzw. es wurde dort gelehrt. Als guter Pascalese war das eine schreckliche Zeit. "break", "exit", "goto". AAAAH!! Aber unser Prof fand das wohl besonders elegant, ließen sich doch so manch komplexe Schleifenbedingungen damit umgehen. Ich fands grauslich. Woraus ich schloss: Pascal ist einfach besser zum lernen. Das hier schon angesprochene strukturierte Programmieren wird viel konsequenter durchgesetzt. Das ist unheimlich wichtig, um später guten Code abzuliefern.

Zwischendurch durfte ich auch mal einen Blick auf Scheme werfen. Interessante Sprache, ich fühlte mich sofort (naja, nicht ganz, ich musste mich erst wieder in rekursives Programmieren einarbeiten) heimisch. OK, viele Klammern. Aber man konnte eine Menge mit der Sprache machen. Für Anwendungsprogrammierung völlig ungeeignet, aber eine gute Erweiterung allgemein zum Thema "Wie programmiert man richtig".

Doch das wichtigste um Programmieren zu lernen ist: es zu tun, d. h. alle möglichen Aufgaben wenigstens versuchen zu programmieren. OOP ist da besonders gut, indem man immer wieder Objekte aus dem alltäglichen Leben nimmt und in einem Programme beschreibt (Klasse Küchengeräte, davon abgeleitet: Herd, Mikrowelle, Kühlschrank, davon abgeleitet usw.).

Hoffe geholfen zu haben.

xe3tec schrieb:
echte männer coden in asm :D

Echte Männer stanzen noch Lochstreifen...

Gruß
Morgoth
 
Zuletzt bearbeitet:
Tja, Pascal...scheint wohl eine der meistgenutzten Schulsprachen zu sein...

Bei mir hat's ähnlich angefangen. Hmm, du brauchst noch ne gute Note...wählste halt Informatik, das soll ja relativ simpel sein. Ich hatte wirklich gar keine Ahnung, hab sogar ohne eigenes Zutun die Infoveranstaltung verpasst und dachte bis zuletzt, dass ich 1en und 0en eintippen müsste, bis ich vollkommen bescheuert werden würde...aber natürlich war das Müll :D

Tja, dann fing Pascal an...die Vorteile hat Morgoth ja schon aufgezeigt...allerdings konnte ich mich nie wirklich damit anfreunden...na ja.
Ich wollte dann ziemlich bald Windows-Applikationen erstellen, und zwar mit Fenstern usw. und hab nen Kumpel aus dem Kurs gefragt. Der sagte: Nimm Delphi oder VB6. Ich bin in die Bücherei und hab gefragt. Für Delphi gab's Bücher, aber keine IDE dabei, also hab ich mich für VB6 entschieden.
Dabei bin ich bisher geblieben (geht immer noch am schnellsten, finde ich).

Mittlerweile sind ca. 3-4 Jahre vergangen und es sind noch weitere Dinge hinzugekommen (ich hoffe, die Reihenfolge stimmt):

HTML, JS, CSS, PHP + MySQL, C++ (in Grundzügen), Delphi (gestern angefangen *g*).
Dazu noch rudimentärste Kenntnisse in Assembler (schon mal gesehen :D ) und auch Brainfuck *aua*.
An C# hab ich mich auch ganz kurz versucht...sieht ganz nett aus...(wer das Wortspiel findet, darf es behalten...)

So, das war bisher mein Weg...von allem irgendwie ein bisschen etwas...jetzt wird sich der Schwerpunkt wohl langsam auf die Kombination C++ - Delphi - PHP verlagern, je nachdem, was ich für eine nette kleine Ausbildung vor dem Studium brauche oder womit ich im Studium den lukrativsten Nebenjob bekomme...

Greets - SK
 
Also ich persönlich würde sagen, dass C++ zu lernen nicht schlecht währe. Is halt nur recht schwer zum Einstieg, da schon nach den einfachsten Sachen oft irgendwelche Gehirnakrobatik Aktionen in den Lernbüchern verlangt werden.

Java is einfacher zu lernen und ist auch recht gut.

Von VB würde ich eigentlich abraten. Obwohls hier halt drauf ankommt was du vor hast.

Mit Delphi habe ich überhaupt keine Erfahrungen - soll aber auch gut sein.

Falls du was fürs Internet programmieren willst würde ich PHP wählen. Damit kannst du recht leicht einsteigen und danach relativ leicht auf was anderes umsteigen falls dir der Sinn nach was anderem steht.


Du musst uns halt sagen was du vorhast. Es ist ( wie du wahrscheinlich auch merken wirst) n riesen Unterschied ob du ein Programm schreiben willst das irgendwelche Zahlen verwalten willst oder ob du vor hast ein Spiel zu entwickeln. ( obwohls irgendwo auch fast das gleiche is :) )

Wo die Sache schon angesprochen worden ist. Wie kann man eigentlich ne eigene 3D Engine proggen ? Also ich mein jetzt rein von der Theorie her. ICh hab irgendwie keine Ahnung wie das im ( selbstgeschriebenen) LEvel Editor dann in eine Datei abgespeichert werden soll, die hinterher auch noch von irgendwelchen Scipts ausgeführt werden soll. HAt das irgendjemand schonmal versucht ?
( Bin nur dran interressiert :) so Größenwahnsinnig bin nicht mal ich :D )
 
@daemon777
Java einfacher als C++? Das ist wohl nicht dein Enrnst, Java ist einfach viel zu instabiel und es wirken viel mehr Fatoren auf dein Prog ein. Bei Java könne Fehlermeldungen auftreten die gar keinen zusammenhang mit den Fehler haben. Und da soll man als Anfänger durchblicken.
Also da ist C++ besser, die C++ Syntax ist wohl die verbreitest oder es gibt zumiendes sehr viele Programmiersprachen mit ähnlicher Syntax: PHP, Java, JSP, C#...
Meiner Mainung nach ist es am besten erst in Pascal das Strukorierte programmieren zu erlernen und dann die C++ Syntax zu lernen. So hat man alle Wege offen.

Aber das Struktorierte Programmieren ist immer noch das A&O ohne das geht später gar nix mehr. Besonders bei gr. Projekten ist ohne Kommentarte und Strukotierung kein weiterkommen mehr möglich.
 
wird zwar langsam ziemlich off-topic hier, aber der thread-ersteller hat sein topic ja auch nicht allzu eng eingegrenzt.
zu einer 3d-engine gehört erst mal der kern, der die funktionalität bereitstellt, für physik, effekte und die geometrien an sich. dann ist ein editor von nöten, mit dessen hife eine (spiele-)"welt" gebaut werden kann, die von der engine dann dargestellt wird.
wie man sich leicht denken kann kann eine engine dementsprechend beliebig komplex gestaltet werden. das ganze basiert dann i.d.r. auf directx oder opengl.
streng genommen kann man schon ein kleines programm als engine bezeichnen, welches eine geometrie erstellt, darstellt, und irgendwelche interaktivitäten zulässt.

@vorgänger
ich kann dir ja mal ein paar c++-fehlermeldungen zeigen, bei denen du niemals auf den fehler kommst. ;)
das halte ich für absoluten unfug. undurchsichtige compilermeldungen bekommst du bei java, wie auch bei c++!
von der strukturierung ist java sehr wohl einfacher, es gibt nur referenzen, keine pointer. das ist ein entscheidender punkt!
 
Zuletzt bearbeitet:
Eine Sprache hab ich doch glat vergessen und wurde auch noch nicht erwähnt: Smalltalk.
Ein wirklich schönes, typfreies, vollkommen objektorientiertes Konzept, für das viele kostenlose und gute IDEs existieren und sehr einfach zu erlernen ist - wenn man mit OOP klar kommt.
Ich habe allerdings feststellen dürfen, das blutige Anfänger OOP besser verstehen als "alte Hasen", die vorher immer (wie nennt sich eigentlich das Gegenteil?) anders programmiert haben. Ich denke, jeder Anfänger sollte mal einen blick auf Smalltalk werfen.

Gruß
Morgoth
 
@XPG:

Bei C++ gute Fehlermeldungen? Naja, ich weiß ja nicht. In meinen ersten Anläufen habe ich über einem Tag nach einem Fehler in einer Datei gesucht (der Compiler meckerte etwas). Nachdem ich kapituliert hatte, musste ich mir zeigen lassen, dass ein Semikolon in einer völlig anderen Datei fehlte... Das sind so einfach Sachen, die man wissen muss, und auf die man von alleine fast nie kommt.

Strukturierte Programmierung ist sicherlich nicht schlecht, aber auch kein Muss. Ich kenne einen reinen Java-Programmierer, dem habe ich in C++ eine einfach Funktion gezeigt. Er war völlig erstaunt, wie sowas gehen kann - Funktionen, die nicht an eine Klasse gebunden sind. Also von daher, man muss den strukturierten Ansatz nicht gelernt haben, um gut zu programmieren. OOP ist ja heutzutage immer mehr gefragt ;)
 
Ich kann dir keine großen tipps geben wie du das lernen sollst, aber du fragst nach der progammiersprachen. da würde ich c++ empfelen.
meine meinung.
 
Zurück
Oben