Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Programmieren lernen

Programmieren lernen

rh31018809.04.0801:54
Hallo!

Ich möchte gerne das Programmieren auf dem Mac lernen und finde, dass Objective-C und Cocoa die wichtigsten Programmiersprachen sind.

Leider bin ich blutiger Anfänger was das Programmieren betrifft und habe keine Ahnung.
Kennt vielleicht jemand von ein gutes Buch womit man seine erste Schritte wagen kann?

Ich habe momentan das Buch Objective-C und Cocoa: Programmieren unter Apple OSX von Rodewig. Ist mir aber etwas zu kompliziert.
0

Kommentare

hrk23
hrk2309.04.0808:03
Helmut Erlenkötter hat ein leicht verständliches Buch für C Programmierung geschrieben. Der Titel lautet:

C - Programmieren von Anfang an

Wie der Titel schon sagt ist dieses auch für Anfänger

Na denn viel Erfolg!
„*** Software is like sex; it's better when it's free. *** Linus Torvalds“
0
hrk23
hrk2309.04.0808:05
Hier noch die ISBN

3-499-60074-9

falls du es bestellen willst.
„*** Software is like sex; it's better when it's free. *** Linus Torvalds“
0
Slartibartfast09.04.0808:32
Unter www.cocoalab.com gibts ein Buch als PDF zum Download, das sich an Einsteiger richtet. Titel "Become an XCoder". Sollte für die ersten Schritte genügen ...
0
oefinger
oefinger09.04.0809:33
Ich kenne das Buch von Rodewig, es ist leider manchmal etwas weitschweifig und wenig fokussiert, aber die ersten Kapitel sind eigentlich sehr gut verständlich.

Womit hast du denn Probleme, sind es die allgemeinen Konzepte beim Programmieren (also Dinge wie Funktionen, Schleifen, Syntax etc) oder liegt es mehr an dem großen Komplex XCode?

Ich würde am Besten mit ganz einfachen C-Programmen anfangen, sogar von Hand kompiliert im Terminal, also völlig ohne XCode oder graphische Oberflächen. Einfach um mal etwas rumspielen zu können und mit den absoluten Grundlagen etwas vertraut zu werden.

Danach würde ich mich mal etwas mit den Konzepten bzw. der Theorie des objekt-orientierten Programmierens auseinandersetzen, auch hier kann man Anfangs noch ohne XCode arbeiten, allerdings schon Objective-C verwenden. Erst wenn du so kleine Projekte mit 3-4 Klassen verstanden hast und auch selbst umsetzen kannst, dann würde ich mich mit XCode und der Programmierung mit Frameworks sowie graphishcen Oberflächen auseinandersetzen. Ohne Grundkenntnisse überfordert das m.E. nach einen Anfänger völlig.
0
vasquesbc
vasquesbc09.04.0809:54
1. C/C++ lernen - Bücher wurden schon genannt.

2. Verstanden haben, was Objektorientierte Programmierung ist und wie man sie anwendet.

3. Objektive-C/Cocoa lernen mit _dem_ Buch: http://www.amazon.de/COCOA-Programming-MacOS-X-OS/dp/0321213149

Im Sommer kommt die dritte Ausgabe, die sich auf die aktuellen XCode-Tools bezieht - bis dahin hast Du Zeit für Punkt 1 und 2.
„Allwissend bin ich nicht; doch viel ist mir bewußt.“
0
Mr. Krabs
Mr. Krabs09.04.0810:39
Wenn er OOP lernen möchte, schlage ich noch Java vor. C und OOP? Mit C++ schon eher, dennoch finde ich Java was OOP angeht für das geeignetste Werkzeug.
„Deux Strudel!“
0
Johloemoe
Johloemoe09.04.0810:41
C lernen, vllt. noch n extra Buch für Objective C kaufen, weil das doch teilweise n bisschen anders ist, und dann ist der Hillegass zu empfehlen, wie vasquesbc bereits gesagt hat... Fürs erste mal Programmieren lernen ist das allerdings n bisschen heftig.. Du könntest es auch erstmal in nem Basic-Dialekt versuchen, oder in Pascal.
0
pathip
pathip09.04.0810:44
Mich würde interessieren, wie Ihr Programmierer auf die Idee gekommen seid mit dem Programmieren anzufangen?!

Habt Ihr damit angefangen weil Ihr das als Hobby ausprobieren wolltet oder seid Ihr darüber im Studium gestolpert?

Was ich damit fragen möchte, ist eigentlich nur, ob es ernsthafte Programmierer gibt, die das ganze auch nebenbei betreiben und hauptberuflich eigentlich nichts mit Programmierung zu tun haben.

Oder meint Ihr, dass es unerlässlich ist im IT Bereich studiert zu haben um die Programmierung zu verstehen und somit auch richtig umsetzen zu können?

Ich habe auch schon öfter mit dem Gedanken gespielt mir einfach mal ein Buch zu kaufen und mir die Grundlagen dazu anzueignen um dann mal richtige kleine Apps zu basteln. Hab mich aber bisher nicht getraut weil ich einfach davon ausgegangen bin, dass es als Laie ohne Vorwissen schlicht nicht möglich ist.

Kann es doch funktionieren?

Danke für die Antworten

pathip
0
Mr. Krabs
Mr. Krabs09.04.0810:49
pathip:
Einfach anfangen

Ich habe mir damals mit 11 oder so ein Visual BASIC-Buch aus der Bücherei ausgeliehen und das während eines Urlaubes verschlungen. Als Kind habe ich mich immer gefragt wie das alles funktioniert. Ich sehe das bei mir in erster Linie als Hobby, mit dem man auch Geld verdienen kann, wenn man diese Ambitionen hat.
„Deux Strudel!“
0
oefinger
oefinger09.04.0810:51
In einem Informatik Studium lernt man viel. Programmieren gehört aber nicht dazu
0
RetroAndy
RetroAndy09.04.0810:55
rh310188
Es kommt darauf an, was du programmieren willst! Es gibt unzählige Programmiersprachen (auf dem Mac). Für jedes Problem eine.

Für Objectiv-C würde ich übrigens "Programming in Objectiv-C" von Kochan empfehlen. Zwar auf englisch, aber es ist sehr gut.
0
DonQ
DonQ09.04.0811:03
normalerweise hast du mit einem studium der informatik und desen teilbereiche die möglichkeit erlangt, die verschiedenen dialekte dir anzueignen, allerdings eher graue theorie…da doch hoch spezialisiert oder nur kurz angehandelt. programiergrundlagen und "programierung" ist doch in fast jedem, bzw. tech./wirtschaftlichen studium standard und doch sehr sagen wir mal schulabhängig.

ingeneure haben ihre maschienenansteuerungssprache, wirtschafler ihre sap, trotzdem werden kurse in c ++ usw. belegt, web ler ihr java, als beispiel.

cocoa ist doch sehr mactypisch und genau da würde ich ansetzen, wenn du dich entscheidest welche sprache eingehend "gelernt" wird.

ein studium per se als programmierer "befugniss" zu sehen,

naja, viele lehrberufe setzen wohl mittlerweile programierkenntnisse als einstieg vorraus und learning by doing/erfahrung oft höher als manches andere da der teufel im detail und gehalt steckt

yust my 2 cent
„an apple a day, keeps the rats away…“
0
Aargh
Aargh09.04.0811:17
Also im 21. Jhd. noch C zu lernen (außer man will in die *NIX-Systemprogrammierung oder μC programmieren) halte ich für Blödsinn. Weiterhin ist Objective-C sicher nicht der richtige Einstieg für jemanden, der noch nie programmiert hat. Didaktisch betrachtet ist die Sprache dafür einfach zu schlecht. Java sollte da sicher erste Wahl sein.
0
Mr. Krabs
Mr. Krabs09.04.0811:44
Aargh:
Juhu, ein Supporter

Aber Unsinn würde ich C auch nicht nennen, obwohl es sicher nicht erste Wahl sein sollte (meiner Meinung nach).
„Deux Strudel!“
0
strife09.04.0811:57
Ich würde mit einem Ansi-C Buch einsteigen, um erstmal die Grundlagen zu erlernen. Da kannst Du auch den Source-Code von den anderen C-Dialekten halbwegs lesen und erkennen, was nicht mehr Ansi-C ist.

Dann stellt sich das Problem , wie Du den Einstieg in die Objekt-Orientierung hinbekommst. Ich habe das mit einem C++ Buch gemacht, würde Dir das aber nur empfehlen, wenn Du auch ausserhalb von Mac OS X noch etwas machen möchtest. Mir gefällt die Sprache auch nicht, weil sie viel zu komplex ist.

Um Java würde ich mit dem selben Argument ein Bogen machen. Hat sich bei Programmierung von Desktop-Applikationen nicht durchgesetzt und ist mir persönlich auch viel zu akademisch.
Wir hatten hier einen Studenten, der in der Uni mit Java angefangen hat. Pointer Arithmetik hat der nie richtig verstanden.

Ich habe Cocoa mit dem Hillegass Buch gelernt, dass Kenntnisse in der Objekt-Orientierung voraussetzt, also für Einsteiger auch nicht zu empfehlen ist. Die anderen Bücher, die in diesem Thread empfohlen wurden, kenne ich leider nicht. Vielleicht ist da ja etwas Gutes dabei.
0
Mr. Krabs
Mr. Krabs09.04.0812:01
strife:
Nur da sehe ich auch ein gewisses Problem: Wenn er am Anfang direkt mit Pointern konfrontiert wird, wirkt das vllt sogar eher abschreckend. Durch Java (auch wenn es akademisch ist, aber in der Praxis viel Einsatz findet Embedded) kann man sich eine wunderbare Grundlage schaffen, gerade in Bezug auf OOP. Und da hat C leider nicht so viel zu bieten.

Nachdem er mit Java zurecht kommt, kann er sich auf C stürzen oder direkt auf Obj-C (da die Syntax Java < C nicht so ein großer Unterschied ist).
„Deux Strudel!“
0
Johloemoe
Johloemoe09.04.0812:25
Jo, also zum Objective-C lernen ist der Kochan ("Programming in Objective-C") sehr zu empfehlen. Hab ich auch, ist zwar auf Englisch, aber an und für sich gut zu verstehen. Java ist auch ne supert Sprache um OOP zu lernen. Und übrigends auch sonst ne schöne Sprache. Und C-Programmierung sollte nun wirklich jeder können.
0
strife09.04.0814:24
Mr. Krabs:
Man kann das Ganze auch wie folgt betrachten: Wenn man die Sache mit den Pointern nicht versteht, dann sollte man vielleicht gar nicht erst mit Programmieren anfangen. Ist ein ANSI-C Buch nicht einfach nur ein guter Selbsttest bzw. ein gutes Ausschlusskriterium um sich viel Zeit zu sparen?
0
Mr. Krabs
Mr. Krabs09.04.0814:40
strife:
Da gebe ich dir recht, man muss Pointer verstehen, wenn man mit Sprachen arbeiten will, die das verwenden. Und da Obj-C dazu gehört, kommt er um Pointer nicht drum herum.
„Deux Strudel!“
0
Johloemoe
Johloemoe09.04.0814:59
man kommt um Pointer nie drumrum... Dynamischen Speicher braucht man überall (ausser auf embedded Systemen die keine MMU haben). Und so schwer sind die auch nicht zu begreifen
0
RetroAndy
RetroAndy09.04.0815:03
Wie eingangs erwähnt kommt es wirklich darauf an, was man programmieren will. Nehmen wir mal an er wollte KI programmieren (unwahrscheinlich), dann wäre Prolog etc. die Programmiersprache der Wahl. Da würde es auch nicht helfen zu sagen erst einmal C lernen, damit man die Grundlagen beherrrscht, denn Prolog ist völlig anders.
Für viele reichen die diversen Skriptsprachen völlig aus und man kommt schnell zu Erfolgen.

Saubere objektorientierte Sprachen sind übrigens nur SmallTalk und Eiffel, Nur so als Anmerkung.
0
Johloemoe
Johloemoe09.04.0815:10
retro: dann aber auch Objective-C. Is schliesslich C mit Smalltalk oben drauf gepfropft
0
Mr. Krabs
Mr. Krabs09.04.0815:13
Vergesst mir Java nicht
„Deux Strudel!“
0
RetroAndy
RetroAndy09.04.0815:28
Johloemoe
Eben das gepfropfte disqualifiziert es ja.
Mr. Krabs
Java ist nicht objektorientiert. Es benutzt nur eine Teilmenge der Philosophie. Aber heute nennt sich ja fast alles objektorientiert.

0
Mr. Krabs
Mr. Krabs09.04.0815:45
RetroAndy:
Man kann mit Java wunderbar die Konzepte des OOP lernen, daher zähle ich es einfach mal dazu
„Deux Strudel!“
0
MacRabbitPro09.04.0816:09
Ui, wird hier vereinzelt wieder ein Müll zum besten gegeben. *schauder*
0
RetroAndy
RetroAndy09.04.0816:44
Mr. Krabs
Ja, natürlich. Es war auch mehr ironisch gemeint. Aber guckt euch mal SmallTalk und Eiffel an (Wikipedia). Für den Mac gibt es auch Compiler. Eine durchgängige Objektorientierung hat auch den Vorteil, dass man sauberen Kode schreiben muß. Gerade für Anfänger ist dies sinnvoll.
0
Stefan S.
Stefan S.09.04.0817:11
MacRabbitPro
Ui, wird hier vereinzelt wieder ein Müll zum besten gegeben. *schauder*
erzähl!
0
rh31018809.04.0823:48
Vielen Dank für die vielen Tipps!

Nur habe ich leider etwas den Überblick verloren.

Ihr meint also es wäre klug in dieser Reihenfolge zu lernen?

1. C/C++
2. Java
3. Obejective C und Cocoa


0
oefinger
oefinger10.04.0807:54
rh310188
Ihr meint also es wäre klug in dieser Reihenfolge zu lernen?

1. C/C++
2. Java
3. Obejective C und Cocoa

Du musst kein Java-Profi werden. Und C++ würde ich erst mal gar nicht anfassen. Objective-C und Cocoa sind eben sehr komplex, vor allem am Anfang. Erste Schritte der programmierung sind in C (nicht C++) sicher leichter. Da C aber keine Objektorientierung unterstützt, C++ zwar objektorientiert ist, aber eine sehr unschöne Sprache ist, ist Java eine geeigneter Sprache, um erste Schritte in der OOP zu unternehmen und mit einer Sprache zu arbeiten, die eine große Bibliothek besitzt. Mit Objective-C/Cocoa kommt dann quasi alles zusammen, eine zumindest auf C basierende Sprache mit Objektorientierung und einer großen Bibliothek (Cocoa).

Zudem ist es immer von Vorteil, wenn man nicht nur eine einzige Sprache kennt, sondern wenigstens etwas über den Tellerrand blicken kann
0
MacRabbitPro10.04.0809:34
rh310188

lass Dir hier kein X für ein U vormachen. Vergiss Java und C++.

Fange an kleine Programme in ANSI C zu schreiben - ohne Xcode sondern im Terminal - um ein Gefühl für C und das Compilieren/Linken von Programmen zu bekommen.
So verstehst Du später besser was Xcode macht. Außerdem lernst Du so das manuelle Memory Management und den Umgang mit Zeigern. Als C Referenz kaufe Dir "Kernighan/Ritchie - Programmieren in C" das genügt und ist Dir später ein hilfreiches Nachschlagewerk.

Zeitgleich lese Dir die theoretischen Grundlagen der Objektorientierung an. Wenn Du der Meinung bist einen Schritt weiter gehen zu können setze Deine ANSI C Programme mit Xcode um - so lernst Du die IDE kennen und den Debugger bedienen. Und dann gehe an Obj.C und das Cocoa Framework.

Dafür würden hier schon viele Einführende Bücher und Tutorials genannt. Das demnächst in Neuauflage erscheinende Buch von Aaron Hillgeass ist z.B. eine Gute Wahl.

Das wichtigste aber ist: Gehe immer so vor dass es Dir noch Spass macht. Gehe nicht zu schnell vor. Lass Dich von Dingen die Du auf Anhieb nicht verstehst und Dir komisch vorkommen nicht entmutigen. Oft hilft es, diese Dinge zu übergehen und weiter zu machen und später dazu zurück zu kehren - dann erklärt es sich oft von alleine.

Java und C++ würde ich nicht machen. Wozu? C++ ist eine ganz andere Welt und wird nur vom langsam sterbenden Carbon Framework genutzt. Und Java ist zwar Objektorientiert aber was die sprachlichen Konzepte angeht von Obj.C maximal entfernt. Das verwirrt Dich nur unnötig.
So hat z.B. die GUI-Erstellung von Java Programmen so gut wie nix mit der Vorgehensweise von Xcode/InterfaceBuilder/Obj.C/Cocoa zu tun.
Außerdem, wenn Du wirklich vernünftige Java Programme entwickeln willst landest Du bei Eclipse oder Netbeans als IDE und somit sogar weg von Xcode.
Das ist nicht sinnvoll wenn Dein Ziel ist native Programme für den Mac schreiben zu lernen.

0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.