C

danlo

danlo

Aktives Mitglied
Thread Starter
Dabei seit
03.09.2005
Beiträge
377
Reaktionspunkte
0
C (java)

Ich möchte endlich vernünftig programmieren lernen und suche jetzt ein paar Tips.
1. Welche Sprache?
Ich glaube C ist schon angebracht, aber welches? C++ Obj.C, C#(ist das eigentlich das gleiche wie .net? Wenn ja, dann ignorieren :D )
2. Welches Buch ist emphelenswert?
Bin nicht ganz neu beim Programmieren, hab einige Ehrfahrung mit PureBasic(PC) und ein bisschen mit Delphi(PC). Allerdings sollte die Lektüre schon ziemlich idiotensicher sein :D .
 
Zuletzt bearbeitet:
"Make it idiot proof, and someone will come up with a better idiot"

Das gesagt, was ist Dein Ziel?

Gruss

Alex
 
C ist C
C++, Obj. C sind zwei unabhängige, objektorientierte Erweiterungen davon..

.net ist eine Plattform von Microsoft, ähnlich wie Java, wobei es verschiedene Möglichkeiten gibt, den Bytecode zu erzeugen, daher werden unterschiedliche Sprachen unterstützt. Eine davon ist C#. Ebenfalls objektorientiert, allerdings recht eingeschränkt, da keine Zeiger etc.

Ich hab C++ damals mit dem hier gelernt: ISBN 0672318954 (englisch)
 
Incoming1983 schrieb:
Eine davon ist C#. Ebenfalls objektorientiert, allerdings recht eingeschränkt, da keine Zeiger etc.

Hat sehr wohl Zeiger etc.
Man muß den Code aber als "unsafe" deklarieren.
 
below schrieb:
"Make it idiot proof, and someone will come up with a better idiot"

Das gesagt, was ist Dein Ziel?

Gruss

Alex

Erstmal möchte ich es so für mich aus Interesse lernen, mal schaun was drauss wird.

Eine blöde Frage: zeiger sind doch das gleiche wie pointer oder? :rolleyes:

Also womit würdet ihr einsteigen? Viele Bücher fangen doch auch direkt mit C++ an und nicht mit C.
 
THX1138 schrieb:
Hat sehr wohl Zeiger etc.
Man muß den Code aber als "unsafe" deklarieren.

Hmm, dann war meine "Fachliteratur" wohl schlecht :-(
Hab nur kurz damit gearbeitet, in den paar Büchern waren Zeiger und dynamische Speicherverwaltung nicht erwähnt..
 
danlo schrieb:
Erstmal möchte ich es so für mich aus Interesse lernen, mal schaun was drauss wird.

Eine blöde Frage: zeiger sind doch das gleiche wie pointer oder? :rolleyes:

Also womit würdet ihr einsteigen? Viele Bücher fangen doch auch direkt mit C++ an und nicht mit C.

Das ist jetzt so, als wenn Du fragst: "Ich will Musiker werden, aber idiotensicher muss es sein". Besser als hier Tips zu holen ist es, sich erstmal Bücher von Freunden auszuleihen, oder mit ein paar Tutorials im Internet anzufangen (Google ist Dein Freund).

Und ohnehin lernst Du nie aus, also ist es (fast) egal, womit Du anfängst ;)

Alex
 
below schrieb:
Besser als hier Tips zu holen ist es, sich erstmal Bücher von Freunden auszuleihen, oder mit ein paar Tutorials im Internet anzufangen (Google ist Dein Freund).

Da stimm ich dir nicht ganz zu. Was ist dagegen einzuwenden in einem Coder-Forum zu Fragen welche Lektüre zu empfehlen ist? :(
Naja, hast du vielleicht ein paar hilfreiche Links(Tutorials...), oder muss ich jetzt ein paar Stunden mit meinem Freund Google verbringen?
below schrieb:
Und ohnehin lernst Du nie aus, also ist es (fast) egal, womit Du anfängst ;)
Da hasse wieder Recht. :)
 
danlo schrieb:
Da stimm ich dir nicht ganz zu. Was ist dagegen einzuwenden in einem Coder-Forum zu Fragen welche Lektüre zu empfehlen ist? :(

Ganz einfach: Offenbar bist Du ganz am Anfang. Ich kann Dir jetzt sagen, wie ich mit 14 mit dem Programmieren angefangen habe. Das würde Dir NICHTS bringen, 6502 Assembler ist Out. Und Scott Knasters "How to Write Macintosh Software" ist auch nicht mehr Stand der Technik.

Du wirst einfach ein paar Bücher durchmachen müssen ;)

Alex
 
danlo schrieb:
Also womit würdet ihr einsteigen? Viele Bücher fangen doch auch direkt mit C++ an und nicht mit C.

Ich würde Dir davon abraten, Dich mit C zu beschäftigen. Effektiv wirst Du es nur noch für den Embedded-Bereich und einige Open-Source-Projekte brauchen. Und Du eignest Dir damit u. U. einige unschöne Angewohnheiten an, die Dir später beim objektorientierten Entwurf im Wege stehen.
Wenn Du nur für den Mac entwickeln willst, bist Du am besten mit Obj-C beraten, da das gewissermaßen die "Muttersprache" von OS X ist. Wenn Du allerdings auch für andere Rechnerplattformen Software entwickeln willst, kommst Du kaum an C++ vorbei, da sich das mittlerweile wohl als Standard etabliert hat. C# ist eine neue Programmiersprache, die versucht, das Beste von C++ und Java zu vereinen. Allerdings bist Du damit in immer an das Dotnet-Framework gebunden. Bis das jedoch eine weite Verbreitung gefunden hat, ist der Marktwert von C# eher bescheiden.
 
Also ich habe mit den Büchern "C Programmieren von Anfang an" und als weiterführung "C++ Objektorientiertes Programmieren von Anfang an" beide aus dem rororo Verlag und sehr gut die beiden Kosten auch nicht die Welt bei Amazon kosten beide jeweils 9,90 also die beiden Bücher bieten echt etwas wenn man Anfangen will und sie sind Platform unabhänig, also man kann sie unter Mac, Linux und Windows benutzen.
 
Hmm, also Objective C oder C++ ist jetzt die Frage. Was sind denn die Pro/Cons der beiden. Basiert eines der beiden auf dem anderen? Ist doch beiden objektorienetiert oder?
Zusatzfrage: Wofür braucht man eigentlich XCode? Reicht nicht ein einfacher Texteditor, oder sind ebi XCode auch Compiler dabei?
 
danlo schrieb:
Hmm, also Objective C oder C++ ist jetzt die Frage. Was sind denn die Pro/Cons der beiden. Basiert eines der beiden auf dem anderen? Ist doch beiden objektorienetiert oder?
Zusatzfrage: Wofür braucht man eigentlich XCode? Reicht nicht ein einfacher Texteditor, oder sind ebi XCode auch Compiler dabei?

Leider haben C++ und Obj-C nur wenig Ähnlichkeit miteinander. XCode beinhaltet nebst Compilern alles, was man so zum Software-entwickeln braucht.
 
danlo schrieb:
Hmm, also Objective C oder C++ ist jetzt die Frage. Was sind denn die Pro/Cons der beiden. Basiert eines der beiden auf dem anderen? Ist doch beiden objektorienetiert oder?
Zusatzfrage: Wofür braucht man eigentlich XCode? Reicht nicht ein einfacher Texteditor, oder sind ebi XCode auch Compiler dabei?

C++: "C + Simula"
Objective-C: "C + Smalltalk"

Xcode ist eine IDE, die insb. ein Buildsystem (nicht makefile kompatibel), und einen Editor enthält. Man kann es als GUI für gcc (ist dabei) und andere Compiler nutzen.

Gruss

Alex
 
Xcode brauchst du wenn du einen Quellcode ansehen willst und um Projekte mit mehreren Datein entwickeln willst. Xcode stellt den Quellcode ausserdem sehr vorteilhaft dar im gegensatz zu einem Editor der zeigt dir nur Text, in Xcode kannst du von einer Funktion in die andere Springen und der Text wird Farbig dargestellt jenach dem was da steht. und gcc 4.0 is bei Tiger immer standart an board.
 
danlo schrieb:
Da stimm ich dir nicht ganz zu. Was ist dagegen einzuwenden in einem Coder-Forum zu Fragen welche Lektüre zu empfehlen ist? :(
Naja, hast du vielleicht ein paar hilfreiche Links(Tutorials...), oder muss ich jetzt ein paar Stunden mit meinem Freund Google verbringen?

Da hasse wieder Recht. :)
Meine Erfahrung ist die: C ist bei fast allen von Dir genannten Sprachen die Grundlage.

Wenn du also mit C anfängst, kannst du später beliebig erweitern. Zudem brauchst du für C nicht einmal Bücher kaufen, da du für diese Sprache mehrer vollständige Grundlagenwerke im Netz findest. Mit C erlernt man überwiegend die prozedurale Programmierung.

C++ Tutorials gibt es auch mehrere im Internet, u.a von A. Willemer, der im Galileo-Computing Verlag ein Buch veröffentlicht hat, welches du vollständig auf der Verlinkten Site findest. C++ ist dann eher objektorientiert - ist also eine andere Art zu programmieren.

Ein einzelnes Buch zu empfehlen ist ansich Unsinn, da jeder ein anderes Verständniss hat. Ich hab mittlerweile auch mehrere verschiedene Bücher zu C, C++ .... Je mehr du Dich damit befasst, desto mehr werden es auch bei Dir... Das Buch von A. Willemer ist ein C++ Grundkurs.
 
Servus und herzlichen Glückwunsch zu deinem Entschluss programmieren zu lernen! Das ist echt ne coole Zeitbeschäftigung, wie ich aus eigener Erfahrung nur ausdrücklich erklären kann.

An deiner Stelle würde ich aber nicht gleich mit C++ oder Obj.-C anfangen. C erschiene mir da schon sinnvoller. Bei dieser Sprache lernst du sehr nah am System zu entwickeln. Dies gibt dir einen sehr guten Überblick über die prinzipielle Funktionsweise deines Rechners/Mac, setzt aber auch schon gewisse Kentnisse über Hardware und ggf. dein Betriebssystem vorraus. Daneben belastest du dich zumindest vorerst noch nicht mir Objektorientierten konzepten, und kannst dich somit mehr auf Algorithmen und allgemeine Programmstrukturen konzentrieren, die in jeder Programmiersprache von Bedeutung sind. Darüber hinaus ermöglicht die C einen rel. schnellen Einstieg in C++ oder Objectiv-C. Darüber hinaus kannst du diese Oo-Sprachen auch mit reinem C-Code mischen - ein zusätzlicher Vorteil. O-C und C++ sind hingegen miteinander inkompatibel. Ich habe übrigens C mit dem Buch: Programmieren in C von Denis M. Ritchi und Brian W. Kernighan (den Erfindern von C und Unix) angefangen. Es ist mit sicherheit für einen absoluten Neuling schwer sich sofort in alle Details hereinzudenken, beiter aber auf der anderen Seite gleich eine Grwöhnung in gut geschrieben Code. Darüber hinaus werden wirklich sehr sinnvolle Programmbeispiele angeführt, die im täglichen Programmiererleben zu verwenden sind. Diese Umfassen das Clonen von Unix-Shellfunktionen wie auch das Schreiben von C-Internen Funktionen. Neben dem Einüben zentraler C-Sprachelemente wird somit auch das Verständnis für die Sprache ansich trainiert. Das Buch kannst du übrigens ganz bequem bei Amazon.de oder einer lokalen Buchhandlung erhalten.

Darüberhinaus wundert mich, warum hier im Forum niemand Java als mögliche Einsteigersprache erwähnt hat, auch, wenn nicht direkt nach dieser Sprache am Anfang des Threads gefragt wurde, halte ich Java immernoch für sehr Anfängersicher. Außerdem bietet es die Möglichkeit sich in Objektorientierte Programmierkonzepte einzuarbeiten, ohne sich zu stark auf Pointer und Systeminterna zu stützen - schließlich ist Java auch Systemunabhänghig. Programme können deshalb ganz bequem auch mit Nutzern anderer Systeme ausgetauscht werden. Darüber hinaus bietet es wegen der relativ einfachen Konzeption und den zahlreichen leicht zu verwendenden Klassen und Methoden Einsteigern sehr schnell die ersten Erfolgserlebnisse :D, was auch zu einem Weitermachen am Programmieren motivieren kann. Für den Mac ergibt sich der ganz besondere Vorteil, dass Java auch mit Cocoa verwendet werden kann. Die Systemunabhänghigkeit geht dabei zwar verloren, jedoch bietet es die Möglichkeit sich auch mit Cocoa zu beschäftigen, ohne vorher auf Obj.-C umgestiegen zu sein.

Aber egal, für welche Sprache du dich im Endeffekt entscheiden wirst, ich bin sicher du wirst bei all deinen Problemen und Fragen, die sich in diesem Zuge stellen gute Unterstützung hier im Forum erhalten :D.
 
Vielen Dank für deine umfangreiche Antwort!
Ich glaube ich werde deine Räte(?) :) befolgen und mir mal was zu Java und C in der Bibliothek ausleihen. Allerdings glaube ich, daß C doch eher was für mich ist, da ich schon Erfahrung mit anderen nicht objektorientierten Programmiersprachen habe und mir so den Einstieg über Java gerne sparen möchte. Hältst du es eigentlich auf lange Sicht zukunftssicherer C++ zu lernen als Objective C? Ich will nicht an Mac OS gebunden sein, das heißt ich möchte zwar hauptsächlich auf dem Mac programmieren, aber auch unter Windows von meinen neu gewonnenen Erkenntnissen profotieren.
 
Ich will mal gleich eine kurze Frage hintenan hängen:
was ist denn euerer Meinung nach die beste Entwicklerumgebung für C bei Mac os X und was könnt ihr empfehlen oder wie macht ihr das?
 
Zurück
Oben Unten