Der Anfang: C - Das Ziel: Objective-C

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Der Anfang: C - Das Ziel: Objective-C

    Hallo, liebes OS X Entwicklerforum!

    Mein Name ist Dennis, ich bin 17 Jahre alt und dies hier ist mein erster Beitrag in diesem Forum. Daher ist es wahrscheinlich kaum verwunderlich, dass es eine Frage ist. In diesem Fall ist es sogar eine relativ umfangreiche Frage und ich hoffe sehr, dass ich hier die benötigten Antworten oder auch Hilfestellungen bekomme.

    Wie schon in der Überschrift deutlich wird, möchte ich mit der Programmiersprache C anfangen, um später dann leichter Objective-C erlernen und verstehen zu können. Ich möchte es wirklich richtig verstehen und nachvollziehen können. Deswegen, denke ich mir, ist das Erlernen "von Grund auf" besser und nachvollziehbarer. Nun ist meine Frage, da dies meine erste Programmiersprache ist, ob es überhaupt ratsam ist direkt mit C anzufangen oder ich lieber mit einer anderen, einsteigerfreundlicheren Sprache beginnen sollte. Mir erscheint C jedoch einfach nur logisch, frage aber auf Grund meiner Unwissenheit hier im Forum noch einmal nach.

    Zum erlernen der Programmiersprache(n) würde ich dann gerne ein Buch oder mehrere Bücher nutzen. So gesehen brauche ich also auch die ein oder andere Buchempfehlung. Hierbei würde ich deutsche Bücher bevorzugen, komme aber auch mit englischen Büchern klar - denke ich.

    Entwickeln möchte ich dann vorerst für Mac OS X (Lion).

    Falls es vorteilhafter sein sollte mehrere Programmiersprachen zu durchlaufen und erst dann mit Objective-C anzufangen, bin ich auch hier für Ratschläge dankbar.


    So, dies ist mein Problem. Ich bin für jede Antwort dankbar und freue mich auf eure Hilfe.
    I HACKED 127.0.0.1
  • Meiner Meinung nach solltest du nicht mit C anfangen sondern direkt Obj. C!
    Dafür gibt es sehr gute Bücher und du lernst direkt das Objektorientierte darin!

    Du hast dann außerdem schneller Ergebnisse und dadurch mehr Spaß/Motivation um weiter zu machen.
    Obj C kannst du sehr gut mit einem Mac üben da Xcode ja genau dafür abgestimmt ist.

    Meine Meinung!
    Gruß

    Robin
  • Hallo und vielen Dank für die schnellen Antworten. Hat mich sehr gefreut.

    robin_ schrieb:

    Meiner Meinung nach solltest du nicht mit C anfangen sondern direkt Obj. C!
    Dafür gibt es sehr gute Bücher und du lernst direkt das Objektorientierte darin!

    Du hast dann außerdem schneller Ergebnisse und dadurch mehr Spaß/Motivation um weiter zu machen.
    Obj C kannst du sehr gut mit einem Mac üben da Xcode ja genau dafür abgestimmt ist.

    Meine Meinung!

    Gut, dann befolge ich mal deinen Rat. Danke.

    Markus Müller schrieb:

    Lerne direkt Objective-C, alles was Du an C benötigst (wenig bis gar keins für Cocoa-Apps), kannst Du später immer noch lernen.

    Wenn man es von zwei Personen hört, dann klingt es doch gleich noch viel überzeugender. Danke.

    remeorli schrieb:

    Wenn Du mal reinschnuppern willst, Mac OS X die zunächst bevorzugte Plattform ist und Du nach einem langen Wochenende eine erste kleine Applikation erstellt haben möchtest:
    amazon.de/Mac-Programmierung-f…TF8&qid=1311454062&sr=8-7


    Mit Objective-C wirst Du auch rudimentär vertraut gemacht und wenn dann mit den ersten eigenen Anwendungen die Lust auf mehr kommt, richtig in die Materie einsteigen.

    Super, vielen Dank für diese Buchempfehlung. Das scheint wirklich eine leichte Lektüre zum Einstieg zu sein. Das Buch werde ich mir mal bestellen.


    Hat denn noch jemand eine Buchempfehlung für die erste Vertiefung von Objective-C? Denn wenn ich an dem oben verlinkten Buch Spaß habe, dann würde ich doch gerne weiter mit einem Buch arbeiten.
    I HACKED 127.0.0.1
  • robin_ schrieb:

    Meiner Meinung nach solltest du nicht mit C anfangen sondern direkt Obj. C!
    Dafür gibt es sehr gute Bücher und du lernst direkt das Objektorientierte darin!

    Du hast dann außerdem schneller Ergebnisse und dadurch mehr Spaß/Motivation um weiter zu machen.
    Obj C kannst du sehr gut mit einem Mac üben da Xcode ja genau dafür abgestimmt ist.

    Meine Meinung!


    du merkst nur nicht mehr wieviel du eigentlich von C verwendest ;)
  • Kann sein, ich habe ganz kurz erstmal versucht C zu lernen, es den Einstieg fand ich so kacke, dass ich aufgehört habe. Später habe ich dann mit Obj. C angefangen und da viel mir der Einstieg wesentlich schneller, auch, weil mann schneller ein Ergebnis haben konnte, mit dem IB schnell eine GUI zusammengeknüppelt und dann einen Ein-Zeiler an Code -> Fertig
    Gruß

    Robin
  • robin_ schrieb:

    Kann sein, ich habe ganz kurz erstmal versucht C zu lernen, es den Einstieg fand ich so kacke, dass ich aufgehört habe. Später habe ich dann mit Obj. C angefangen und da viel mir der Einstieg wesentlich schneller, auch, weil mann schneller ein Ergebnis haben konnte, mit dem IB schnell eine GUI zusammengeknüppelt und dann einen Ein-Zeiler an Code -> Fertig

    Das liegt aber am verwendeten Framework und nicht an der Programmiersprache. ;)

    Michael
  • Irgendwie kann ich in dem Beitrag nicht eine einzige Frage erkennen.
    Was ist daran schwer, eindeutig erkennbare Fragen zu formulieren?

    Im Grunde genommen gibt es für dein Problem genau zwei Lösungen, abhängig vom von dir verfolgten Ziel.

    --

    Wenn du genau wissen und verstehen willst, was du da eigentlich tust, dann solltest du noch einen großen Schritt vor C anfangen.
    Nein, nicht A und B.

    Im Wiki-Buch 'Assembler Programmierung' findest du einen guten theoretischen Ansatz.
    Nachdem dir einige Zahlentheorie um die Ohren geknallt wurde (zäh und trocken, aber durchaus interessant) bekommst du einen groben Überblick darüber, was genau in so einer CPU eigentlich passiert und was man mit ihr anfangen kann. (Mit dem Kram wurden früher™ ganze Betriebssysteme geschrieben. Unfassbar, nech?)

    Anschließend kannst du dich mit ein paar C-Tutorials befassen und eventuell auch ein Büchlein dazu erwerben.
    Ich persönlich mag das Buch 'C in 21 Tagen', von dem ich dir gern eine Leseprobe zukommen lassen kann.
    Nimm auf jeden Fall etwas, dass sich nicht um C++ kümmert!

    Wenn du dir den Sprung von ASM zu C erst einmal verdeutlicht hast, wirst du die Vorteile von Objective-C als nächsten logischen Schritt in der Evolution ansehen.
    Du wirst im Übrigen auch die Vorteile von C++ als nächsten logischen Schritt in der Evolution ansehen, allerdings ist das nicht der empfehlenswerte Weg, wenn du bei ObjC aufhören willst. ;)

    Um die bereits genannten ObjC Bücher wirst du nicht herum kommen. Wobei du noch nicht Objective-C mit Cocoa mischen solltest.

    Bald nachdem du dir die kleinen aber mächtigen Änderungen von ObjC verinnerlicht hast, kommst du nicht mehr um ein Framework wie Cocoa herum.
    Mit deiner erworbenen Kenntnis kannst du dann allerdings mal versuchen, das einfache Konzept eines NSButton auf reines C und anschließend dann mal auf reinen Assembler herunterzubrechen. Letzteres, also das Brechen, wirst du dann vermutlich bekommen. ^^

    Nach diesem langen, steinigen, mitunter trockenen und langweiligen Weg wirst du sehr sehr viel über die Programmierung gelernt haben. Dauer ca. 31 Tage bis zum ersten kleinen Cocoa-Programm. Viel Spaß.

    ---

    Der zweite Weg besteht im Kaufen des genannten ObjC Buches (wie geschrieben wirst du da nicht drum rum kommen), kleinen Probieraktionen, einigen Tutorials und Abtippen aus dem Buch. Dauer ca. 4 Stunden bis zum ersten kleinen Cocoa Programm.

    --

    So, und nun werd ich auch noch gemein: das alles hilft dir kein Stück, wenn du richtig ernsthaft mit der Softwareentwicklung anfangen möchtest.
    Das ist ungefähr so, als hättest du als angehender Maurer zwar Materialkunde bis zum Erbrechen bekommen aber keine Ahnung, wie du daraus jetzt ein Fachwerkhaus gezimmert bekommst.

    Wie du dem Link entnehmen kannst ist 'Programmierung' genau einer von elf Punkten. Vor Allem die drei Punkte davor sind ein riesiges Feld und können bei Vernachlässigung ein ganzes Projekt mal eben sterben lassen.
    Es ist also relativ egal, wie tief du dich in die Materie 'Objective-C und Cocoa' einzuarbeiten gedenkst, der ganze theoretische Planungskram ist das wirklich Wichtige dabei.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Ich halte nichts davon, mit Assembler zu beginnen, wenn man nicht unbedingt Assembler lernen möchte - Du reisst ja auch nicht das Klo aus der Wohnung und benutzt eine Latrine...

    Wenn Du überhaupt noch keine Programmiererfahrungen hast, empfehle ich Dir dieses Buch:

    amazon.de/Programming-Objectiv…TF8&qid=1311577916&sr=8-2

    Aktualisiert auf Xcode4 und eine guter Einstiegt in Objective-C und die, notwendigsten, C-Grundlagen. Darauf aufbauend kannst Du Dir dann folgende Bücher zulegen (Reihenfolge beliebig):

    amazon.de/Cocoa-Objective-C-Ru…TF8&qid=1311577916&sr=8-7
    amazon.de/Objective-C-Cocoa-Ba…TF8&qid=1311578133&sr=1-2
    amazon.de/Cocoa-Programming-Ma…F8&qid=1311578210&sr=8-10

    Aber das allerwichtigste ist üben, üben, üben.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Markus Müller ()

  • Markus Müller schrieb:

    Ich halte nichts davon, mit Assembler zu beginnen, wenn man nicht unbedingt Assembler lernen möchte - Du reisst ja auch nicht das Klo aus der Wohnung und benutzt eine Latrine...

    Wenn Du noch überhaupt keine Programmiererfahrungen hast, empfehle ich Dir dieses Buch:

    amazon.de/Programming-Objectiv…TF8&qid=1311577916&sr=8-2

    Aktualisiert auf Xcode4 und eine guter Einstiegt in Objective-C und die, notwendigsten, C-Grundlagen. Darauf aufbauend kannst Du Dir dann folgende Bücher zulegen (Reihenfolge beliebig):

    amazon.de/Cocoa-Objective-C-Ru…TF8&qid=1311577916&sr=8-7
    amazon.de/Objective-C-Cocoa-Ba…TF8&qid=1311578133&sr=1-2
    amazon.de/Cocoa-Programming-Ma…F8&qid=1311578210&sr=8-10

    Aber das allerwichtigste ist üben, üben, üben.


    du musst es ja nicht benutzen sondern einfach nur wissen wie es funktioniert. muss man natürlich nicht - sollte man aber ;)
  • Markus Müller schrieb:

    Ich halte nichts davon, mit Assembler zu beginnen, wenn man nicht unbedingt Assembler lernen möchte - Du reisst ja auch nicht das Klo aus der Wohnung und benutzt eine Latrine...

    Richtig. Aber ich springe regelmäßig auf mitunter recht authentischen Mittelaltermärkten und LARP-Veranstaltungen rum. Da lernt man dann die Vorteile des WC zu lieben ohne das Eigene je aus der Wand gerissen zu haben. ;)

    gritsch schrieb:

    du musst es ja nicht benutzen sondern einfach nur wissen wie es funktioniert. muss man natürlich nicht - sollte man aber ;)

    Eben. Wer es genau wissen will, sollte den Evolutionsprozess ziemlich am Anfang betrachten und sich hocharbeiten.

    Für die Programmierung an sich ist es hingegen tatsächlich relativ egal. Das sind aber auch die Aspekte von C, die man irgendwann in ObjC nutzt ohne sie je begriffen zu haben.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Lucas de Vil schrieb:

    Irgendwie kann ich in dem Beitrag nicht eine einzige Frage erkennen.
    Was ist daran schwer, eindeutig erkennbare Fragen zu formulieren?

    Im Grunde genommen gibt es für dein Problem genau zwei Lösungen, abhängig vom von dir verfolgten Ziel.

    --

    Wenn du genau wissen und verstehen willst, was du da eigentlich tust, dann solltest du noch einen großen Schritt vor C anfangen.
    Nein, nicht A und B.

    Im Wiki-Buch 'Assembler Programmierung' findest du einen guten theoretischen Ansatz.
    Nachdem dir einige Zahlentheorie um die Ohren geknallt wurde (zäh und trocken, aber durchaus interessant) bekommst du einen groben Überblick darüber, was genau in so einer CPU eigentlich passiert und was man mit ihr anfangen kann. (Mit dem Kram wurden früher™ ganze Betriebssysteme geschrieben. Unfassbar, nech?)

    Anschließend kannst du dich mit ein paar C-Tutorials befassen und eventuell auch ein Büchlein dazu erwerben.
    Ich persönlich mag das Buch 'C in 21 Tagen', von dem ich dir gern eine Leseprobe zukommen lassen kann.
    Nimm auf jeden Fall etwas, dass sich nicht um C++ kümmert!

    Wenn du dir den Sprung von ASM zu C erst einmal verdeutlicht hast, wirst du die Vorteile von Objective-C als nächsten logischen Schritt in der Evolution ansehen.
    Du wirst im Übrigen auch die Vorteile von C++ als nächsten logischen Schritt in der Evolution ansehen, allerdings ist das nicht der empfehlenswerte Weg, wenn du bei ObjC aufhören willst. ;)

    Um die bereits genannten ObjC Bücher wirst du nicht herum kommen. Wobei du noch nicht Objective-C mit Cocoa mischen solltest.

    Bald nachdem du dir die kleinen aber mächtigen Änderungen von ObjC verinnerlicht hast, kommst du nicht mehr um ein Framework wie Cocoa herum.
    Mit deiner erworbenen Kenntnis kannst du dann allerdings mal versuchen, das einfache Konzept eines NSButton auf reines C und anschließend dann mal auf reinen Assembler herunterzubrechen. Letzteres, also das Brechen, wirst du dann vermutlich bekommen. ^^

    Nach diesem langen, steinigen, mitunter trockenen und langweiligen Weg wirst du sehr sehr viel über die Programmierung gelernt haben. Dauer ca. 31 Tage bis zum ersten kleinen Cocoa-Programm. Viel Spaß.

    ---

    Der zweite Weg besteht im Kaufen des genannten ObjC Buches (wie geschrieben wirst du da nicht drum rum kommen), kleinen Probieraktionen, einigen Tutorials und Abtippen aus dem Buch. Dauer ca. 4 Stunden bis zum ersten kleinen Cocoa Programm.

    --

    So, und nun werd ich auch noch gemein: das alles hilft dir kein Stück, wenn du richtig ernsthaft mit der Softwareentwicklung anfangen möchtest.
    Das ist ungefähr so, als hättest du als angehender Maurer zwar Materialkunde bis zum Erbrechen bekommen aber keine Ahnung, wie du daraus jetzt ein Fachwerkhaus gezimmert bekommst.

    Wie du dem Link entnehmen kannst ist 'Programmierung' genau einer von elf Punkten. Vor Allem die drei Punkte davor sind ein riesiges Feld und können bei Vernachlässigung ein ganzes Projekt mal eben sterben lassen.
    Es ist also relativ egal, wie tief du dich in die Materie 'Objective-C und Cocoa' einzuarbeiten gedenkst, der ganze theoretische Planungskram ist das wirklich Wichtige dabei.

    Vielen Dank. Ich werde mir das mal näher angucken. So habe ich wenigstens einen kleinen Leitfaden. :)
    I HACKED 127.0.0.1
  • Markus Müller schrieb:

    Ich halte nichts davon, mit Assembler zu beginnen, wenn man nicht unbedingt Assembler lernen möchte - Du reisst ja auch nicht das Klo aus der Wohnung und benutzt eine Latrine...

    Wenn Du überhaupt noch keine Programmiererfahrungen hast, empfehle ich Dir dieses Buch:

    amazon.de/Programming-Objectiv…TF8&qid=1311577916&sr=8-2

    Aktualisiert auf Xcode4 und eine guter Einstiegt in Objective-C und die, notwendigsten, C-Grundlagen. Darauf aufbauend kannst Du Dir dann folgende Bücher zulegen (Reihenfolge beliebig):

    amazon.de/Cocoa-Objective-C-Ru…TF8&qid=1311577916&sr=8-7
    amazon.de/Objective-C-Cocoa-Ba…TF8&qid=1311578133&sr=1-2
    amazon.de/Cocoa-Programming-Ma…F8&qid=1311578210&sr=8-10

    Aber das allerwichtigste ist üben, üben, üben.

    Das sieht doch super aus. Denn mit Xcode 4 bin ich auch noch gar nicht vertraut. Perfekt. Da werde ich wohl zuschlagen. Danke dir. :)
    I HACKED 127.0.0.1
  • Lucas de Vil schrieb:

    So, und nun werd ich auch noch gemein: das alles hilft dir kein Stück, wenn du richtig ernsthaft mit der Softwareentwicklung anfangen möchtest.

    Das kann ich nur unterstreichen!

    Programmieren ist nicht das gleiche wie Codieren, sondern Codieren nur ein Teil des Programmierens.
    Codieren geschieht in einer bestimmten Programmiersprache unter Nutzung von Bibliotheken (also z.B. Obj-C + Cocoa).

    So wie Autofahren. Das ist nicht nur Lenken...

    Und wenn man systematisch programmieren will, dann sollte Codieren nur ein kleiner Teil der gesamten Aufgabe sein.
    Und die Programmiersprache ist zweitrangig - und sogar ein Ergebnis der ersten Analysen. Nicht immer ist eine
    bestimmte Sprache am besten geeignet.

    Das Thema Autofahren lernen ist übrigens ähnlich: man kann erst mal Mechantronik lernen. Dann weiß man
    wie eine Servolenkung geht und wie die Motorsteuerung und das Automatikgetriebe zusammenspielen.
    Aber Fahren lernt man ganz anders. Und muß eigentlich gar nicht wissen wie es geht :)

    Daher ist der empfehlenswerte Weg natürlich mit der höchsten Abstraktion anzufangen (also Obj-C + Cocoa).
    Und bei Fragestellungen und konkretem Interesse auch mal hinter die Kulissen zu schauen (C, Assembler).

    Ein Detail aus C/Assembler, was für das Verständnis von Obj-C sehr hilft, ist der "Pointer" (Zeiger, Referenz) und der "Heap".