Welche Sprache für den Einstieg?

Fischer04

New member
10 April 2007
4
0
Hallo,
schon seit längerem interessiert mich das Gebiet "Programmierung". Deswegen habe ich mir heute 5 Bücher aus einer Bibliothek besorgt. Ein Buch konnte mir auch sehr weiterhelfen, sodass ich einen kleinen Überblick über die Programmierung allgemein bekam. Jeddoch waren alle Bücher, und so auch die Sprachen die sie verwenden, sehr alt.Da ich gerne so etwas als Beruf machen würde (Bin 14,Schüler)
wollt ich nicht mit einer Sprache aus dem Jahr 1999 anfangen, wo mich Firmen in 5 Jahren belächeln würden.Also frag ich hier nach einer geigneten Sprache.Ein Paar Angaben zu dem was ich genau machen will kommen hier:
-eventuel Beruf
-Hobby
-Tools und andere Programme
-Spiele(2D oder auch 3D)
Da ich wirklich sehr interessiert bin kann es ruhig auch eine etwas komplexers sein.(Erste Erfahrungen mit HTML hab ich schon). Sie sollte auch bekannt und aktuell sein.Über Links zu bestimmten Sprache die mir die Entscheidung erleichtern würden wäre ich auch sehr dankbar.

Danke im Voraus und MFG
Jan Fischer
 
also ich habe mit webseiten angefangen, sprich html/js und dann mich in delphi rein gefummelt. irgendwann dann php und heute bereue ich, dass ich mir delphi vorgenommen habe. habe bücher gekauft und alles jedoch denke ich heute mist, hätte ich doch gleich mit C/C++ angefangen.

wenn du wirklich großes interesse hast dann würde ich dir gleich C/C++ empfehlen. das ist was ordentliches und du kannst, sofern du später wirklich was auf dem kasten damit hast, wirklich große achen machen!

für webseiten halt normal html/js denn dass ist auch ein muss für php/mysql!

viel spass. es werden viele, viele schlaflose nächte auf dich zukommen! :p
 
Wenn du ein wirklich modernes Framework zum Entwickeln haben möchtest guck' dir mal C# an =). Das ist nicht so schwierig wie C++, dir liegen aber zumindest auf der Microsoft-Schiene alle Wege offen. DirectX 9 und 10 gibt es für die .Net Welt von Microsoft. Und du hast mit C# die Möglichkeit, auch Spiele für die XBox 360 zu entwickeln. Die Tools für den Einstieg und jede Menge Tutorials gibt es kostenlos. Hier mal ein paar interessante:

Visual Studio 2005 Express (ich empfehle dir Visual C# 2005 Express):
https://www.microsoft.com/germany/msdn/vstudio/products/express/download.mspx
C# Dokumentation von Microsoft:
https://www.microsoft.com/germany/msdn/vcsharp/default.mspx
C# Buch von Galileo Computing:
https://www.galileocomputing.de/openbook/visual_csharp/index.htm
XNA Game Studio (Spieleentwicklung mit DirectX und C#, auch für die XBox):
https://msdn2.microsoft.com/en-us/xna/default.aspx
Aktuellstes DirectX SDK:
https://www.microsoft.com/downloads...a2-e953-475c-abde-f016e4f7b61a&displaylang=en

Ich denke du solltest allerdings nicht gleich mit Spiele-Entwicklung anfangen, da das Thema wirklich komplex ist und dir dann teilweise Grundlagen fehlen. Wühl dich am besten durch =) damit lernst du am meisten und du merkst schnell, wo du Defizite hast.

Viel Spaß dabei,

Karsten
 
Super!Vielen Dank für die Schnellen antworten.Dann werd ich mich mich zwichen C++ und C# noch entscheiden.

MFG
Jan Fischer
 
Hallo nochmal,
ich habe mich jetzt für C# entschieden da es denk ich mal für den Anfang besser ist.Außerdem wird es dann leichter sein irgendwann C++ zu lernen.Eine gute Seite für C# habe ich auch gefunden:
https://www.guidetocsharp.de/ .
Danke nochmal für die Hilfe.

MFG
Fischer
 
Ich!

Dann bist du nicht so von einem bestimmten OS abhängig... Obwohl MONO inzwischen wohl auch was kann... Außerdem ist es IMHO nicht wirklich schwierig - jedenfalls Syntax, Grundkentnisse OOP usw....
 
Letzten Endes ist es egal ;o) der Umstieg von C++ auf C# und umgedreht ist nicht mehr so schwer und wenn du eine der beiden wirklichg beherrscht, solltest du mit verhältnismäßig wenig Aufwand die andere verwenden können. Der Trend ist allerdings weg von Unmanaged Programmiersprachen wie C/C++ zu Managed Programmiersprachen wie Java und C#.
 
Wir müssten jetzt ein wenig unterscheiden zwischen Managed / Unmanaged und speziellen Vorteilen von C zu C#, denn C hat mit C# nur wenig gemeinsam. Da das Thema ein wenig umfangreicher ist und ich von der Arbeit heute noch etwas mitgenommen bin bitte ich um Nachsicht, wenn ich einen wichtigen Aspekt vergesse. Ihr könnt hier ja auch gerne ergänzen =).

Größter Unterschied erscheint mir erst einmal, dass der kompilierte Code in .Net kein Maschinencode ist, sondern (wie bei Java) einen plattformunabhängigen Zwischencode ergibt; der heißt in .Net "IL" (Intermediate Language). Dieser Code wird dann nicht direkt vom Prozessor ausgeführt, sondern zuerst von einer Laufzeitumgebung optimiert und dann interpretiert.

Vorteile durch Runtimes wie der CLR (für .Net/C#) und der JRE (für Java) ist

- Plattformunabhängigkeit: Alle Plattformen, egal welcher Prozessortyp oder welches Betriebssystem, können die Anwendungen ausführen, vorausgesetzt es gibt eine Runtime für die jeweilige Plattform.
- Sicherheit: Runtimes können besser als Maschinencode-Anwendungen kontrollieren, was das Programm tun möchte. Die Programme laufen durch die Runtime in einer Art SandBox. Möchte das Programm nun Eingriffe vornehmen, die der User der Software gar nicht zugesprochen hat, so kann die Runtime das unterbinden (z. B. bei Applets in Webseiten).
- Sicherheit 2: Einfachen Sicherheitslücken / Fehlern, die bei unmanaged Programmierung häufig auftreten, beugt die Runtime vor. Lieblinge zu dem Thema sind Buffer Overflows oder fehlerhafte Pointer-Operationen. Man genießt ein wenig Narrenfreiheit mit String-Operationen und dergleichen =).
- Garbage Collection: Objekte werden von der Runtime automatisch aus dem Speicher entfernt, wenn sie nicht mehr benötigt werden; Memory Leaks entstehen dadurch nicht mehr so schnell

Ihren Gerüchten zum Trotz ist die Performance von Programmen in den Laufzeitumgebungen weit besser als ihr Ruf. Selbstverständlich sind die Anwendungen durch die Überprüfungen und die Zwischenschicht zum OS ein wenig langsamer. Allerdings wird der Code für gewöhnlich für die jeweilige Umgebung optimiert – und das so gut, dass besondere Fälle in der Laufzeitumgebung sogar schneller laufen können, als mit direktem Maschinencode.

Mal sehen, was fällt mir denn ad hoc zu Unterschieden zwischen C# und C ein.

C#
- Ist durchgängig Objekt-orientiert
- Besitzt ein riesiges API / Framework und deckt dadurch den Großteil der üblichen Programmieraufgaben ab (Webprogrammierung, WinForms, Services, WebServices ;o), Spiele-Programmierung mit DirectX etc.)
- Besitzt Reflection zum Enumerieren und Aufrufen anonymer Klassen/Methoden
- Ist durch die Kapselung wichtiger Aufgaben recht effektiv in der Programmierung (Collections statt Arrays, Generics etc.)

Uff… da gibt’s bestimmt noch viel mehr, aber nun ist erst mal genug =).

Ist nicht gerade ein einfach verständliches Thema. Am besten ich leg mal noch ein paar Wiki Artikel drauf:

https://de.wikipedia.org/wiki/C-Sharp
https://de.wikipedia.org/wiki/C_(Programmiersprache)
https://de.wikipedia.org/wiki/.NET
https://en.wikipedia.org/wiki/Common_Language_Runtime

Ich hoffe die Infos bringen dir was und es haben sich nicht so viele Fehler eingeschlichen =) ansonsten einfach Info an mich.

Karsten
 
Ihren Gerüchten zum Trotz ist die Performance von Programmen in den Laufzeitumgebungen weit besser als ihr Ruf. Selbstverständlich sind die Anwendungen durch die Überprüfungen und die Zwischenschicht zum OS ein wenig langsamer. Allerdings wird der Code für gewöhnlich für die jeweilige Umgebung optimiert – und das so gut, dass besondere Fälle in der Laufzeitumgebung sogar schneller laufen können, als mit direktem Maschinencode.

Dieser schlechte ruf kommt gerade von Java, damals zu Zeiten von Java 1.3, als die Rechner noch nicht so schnell waren und Java noch nicht so weit entwickelt, gab es an einigen Stellen (Grafische Programmierung) doch starke Performance-Einbußen. Heute ist dies jedoch nicht mehr so, der JIT-Compiler in Java es sogar schafft teilweise schneller als C(++) zu sein, da er direkt auf eine Prozessorarchitektur optimieren kann.

Ich würde auch nochmal Java in den Raum werfen, da es nicht wie C# von M$ kommt (*gg*) und es bei Java eine wirkliche Plattformunabhängigkeit gibt, und es doch einen besseren Ruf und mehr Einsatz als C# hat.
 
Hm... die Frage war aber, was der Unterschied zwischen C# und C ist - und ich denke ich habe mehr als genug in dem Zusammenhang auf Java hingewiesen, oder nicht ;o)?

Davon abgesehen ist der Ruf von C# weit besser, als du wahrscheinlich mitbekommst. Frag mal Java-Programmierer, die mit C# aus welchen Gründen auch immer arbeiten müssen - die meisten sind ziemlich angetan von C#. Der schlechte Ruf basiert auf dem schlechten Ruf von MS, nicht von C#.

Edit: Bitte wenn es geht keine ideologische Diskussion daraus werden lassen ;o).
 
Hm... die Frage war aber, was der Unterschied zwischen C# und C ist - und ich denke ich habe mehr als genug in dem Zusammenhang auf Java hingewiesen, oder nicht ;o)?
und ich bin in den Zusammenhang auf den generellen schlechten Ruf für solche Runtime-Systeme hingewiesen, der leider von Java kommt.

Davon abgesehen ist der Ruf von C# weit besser, als du wahrscheinlich mitbekommst. Frag mal Java-Programmierer, die mit C# aus welchen Gründen auch immer arbeiten müssen - die meisten sind ziemlich angetan von C#. Der schlechte Ruf basiert auf dem schlechten Ruf von MS, nicht von C#.
Es gibt die Leute die von Java zu C# gehen und die, die von C# zu Java gehen und die "neue" Sprache als genial bezeichnen^^
Habe trotzdem mehr positive Resonanz im unternehmerischen Einsatz von Java mitbekommen.

Edit: Bitte wenn es geht keine ideologische Diskussion daraus werden lassen ;o).
keine Angst, ich denke wir brauchen da net weiter diskutieren, 2 Welchen die aufeinander prallen, da wird man keine Einigung finden.
 
Also ich hab auch in deinem Alter angefangen.
Damals zuerst mit PHP, was ich finde auch nicht schlecht war. Ich finde PHP ist sehr einfach zu lernen(Man muss nicht auf die die VarTypen so achten, aber später sollte man es dann wieder.)

Bei mir in der Informatik-Schule haben wir dann mit C angefangen, was ich auch am besten für den Einstieg finde. In C++ kann man nur noch zusätzlich in Klassen programmieren, was man aber wie ich finde für den Anfang nicht braucht.

Das Problem am Programmieren wie ich finde(ich sehe es fast jede Woche bei mir in der Klasse), ist das die Leute einfach nicht die Logik verstehen und einfach nicht auf die Ideen kommen wie man etwas macht. Wenn man aber mal einmal die Logik verstanden hat, versteht man jede Sprache fast sofort.

Fazit:
Ich würde mit C anfangen, wenn mand as verstanden hat gehts dann weiter zu C++ mit OOP.
Danach kannste dann mal weitergucken für was du programmieren willst.
Willste in den Webbereich nimmste PHP, bei OS übergreifenden Programmen Java und bei Windows C#.


Ps: Assembler ist auch nicht schlecht ;)
 
Hi,

um es richtig zu lernen finde ich C auch richtig gut, man wird von C gezwungen sich über viele Dinge Gedanken zu machen (z.B. die allseits beliebten Zeiger). Am anfang wirkt das alles zwar recht krampfhaft und kompliziert aber irgendwann platzt dann der Knoten und man beginnt zu verstehen wie was intern abläuft und funktioniert und erkennt Probleme bereits wenn man noch auf sie zusteuert.

Wenn man etwas C Grundlagen hat, wird JAVA dann auch sehr interessant wenn es um einen Einstieg in OOP geht.

Wenn du Lust auf schnelle Erfolge und Ergebnisse hast fang mit PHP an, aber wende dich, dann wenn du damit den Einsteig geschaft hast, auch den übrigen Sprachen zu.

Naja kurz gesagt, den C Einstieg halte ich persönlich für am sinvollsten aber C kann sehr trocken sein. Um Lust zu wecken eignet sich PHP sehr gut.

Gruß

TZE
 
Ganz im Ernst?

Ich würde wenn ich heute noch mal die Wahl hätte mit Java anfangen.

Direkt objekt-orientiert zu Programmieren ist einfacher als erst ne "Ablaufprogrammierung" zu lernen und dann umzusteigen.