Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Tips für Anfänger gesucht

Tips für Anfänger gesucht

slice
slice23.08.0322:23
Hallo,

ich möchte mich gerne mit dem programmieren unter OS X beschäftigen. Leider habe ich bisher keine grossen Programmiererfahrungen, mal abgesehen von etwas Basic auf einem TI und Sinclair Spectrum vor vielen vielen Jahren.

Ich möchte gerne die Apple Developer Tools nutzen. Zum Einstieg habe ich mir das SmartBook "Programmieren unter Mac OS X" von Marc Buchser gekauft. Soweit komme ich damit auch zurecht, aber dort wird nicht viel über Programmiersprachen geschrieben, so dass ich alleine damit noch nicht sehr viel lernen kann. Ich weiss, dass man Programme in C, Objective C und JAVA mit den DevTools schreiben kann. Welche Sprache würdet ihr einem Einsteiger empfehlen? Ich will das erstmal nur so als Hobby lernen und habe auch noch keine konkreten Vorstellungen, was ich für Programme schreiben möchte.

Ausserdem brauche ich bestimmt noch ein weiteres Buch, dass sich intensiver mit der entsprechenden Programmiersprache beschäftigt. Für den Anfang hätte ich am liebsten ein deutsches Buch. Hat da jemand einen Tip für mich?
0

Kommentare

slice
slice24.08.0302:21
Danke für die Tips. Hab mich zwischenzeitlich noch etwas umgeschaut und denke auch, dass ich mich erstmal etwas mit C beschäftigen sollte. Werd mir das Buch mal ansehen. Über C++ habe ich aber nicht viel gutes gelesen. Ist C++ wirklich sinnvoll/notwendig, wenn man sich später mit Cocoa/Obective C beschäftigen will?
0
Donar24.08.0306:38
Halt Stop! nicht C, es sei denn du weist was du tust!
...hier war eine längere Abhandlung die mich dann selber genervt hat...

Lerne eine "Objektorientierte Programmiersprache"!
Die gängigen sind Java und C++ (und neuerdings Objective C)
Die Idee dahinter ist die gleiche, die Befehle schauen halt ein bisschen anders aus. (Die Idee hinter C ist aber eine ganz andere!)

Ich würde Java empfehlen, da es hierfür extrem viel Literatur (auch im Netz, und ohne Bezug auf OS X) gibt, und du die Kenntnisse die du dabei erlernst nützen dir auch ohne OS X etwas.
Dazu kommt, das der Java-Compiler arg pingelich ist. Das ist wichtig, damit man am Anfang seine Fehler merkt. (Zumindest einige) Objective C ist viel zu freundlich, was einem am Anfang nicht hilft.
Wenn du mit Java _richtig_ fit bist und weist was die Idee dahinter ist (Objekte, "Message passing", ...) ist der Umstieg nach Objective C ein (halber) Nachmittag.
Dann noch ein Tag bis du dich ein bisschen in der "Klassenhierarchie" von Cocoa auskennst (Wie die Knöpfe genau benannt sind, etc) und dann kannst du loslegen.

Wenn Interesse besteht kann ich die Anwesenden gerne auch noch länglich über die verschiedenen Programmiersprachen und Programmier"paradigmen" langweilen...
Grüße
0
Donar24.08.0306:40
Oh weh. Gnade für meine Grammatik. Früh um halb 5 sollte man nicht mehr versuchen sinnvollen text zu produzieren...
0
Donar24.08.0316:02
Bei uns an der Uni fangen wir neuerdings im ersten Semester mit Java an. Das hat einige Vorteile für uns, z.B. dass die Erstsemestler auf verschiedenen Plattformen üben können, z.b. AIX, Solaris, Linux, Windoze, ...
Der Hauptpunkt ist aber, dass die Studenten im ersten Semester noch "unverdorben" sind, und man so die objektorientierten Ideen (hoffentlich) leichter in deren Köpfe bekommt
Ich hab seinerzeit fast ein halbes Jahr gebraucht, bis ich so richtig gepeilt habe was Objekte und Klassen wirklich ist
( Murdock: Ich konnte vorher schon ganz passabel C, mein Problem war, dass Funktions- und Methodenaufrufe syntaktisch gleich ausschauen, die Idee dahinter aber eine ganz andere ist, bei Objective C wird diese Idee ja noch weiter getrieben ...)

Literaturmäßig könnte ich "Thinking in Java" von Bruce Eckel empfehlen. Das gibts unter online, der Autor möchte als Gegenleistung, dass man ihm Fehler schickt, wenn man welche findet und schreibt fast aus der Sicht von Slice.

Murdock wir können gerne über die Vorzüge C (die einzig wahre Programmiersprache, mit der man übrigens auch Objektorientiert (aber ein bisschen unübersichtlich) programmieren kann, siehe Linux Kern) weiter Diskutieren das liefert mir ein paar Argumente, wenn wir hier mal wieder das Studium reformieren

Grüße
0
slice
slice24.08.0318:01
@Murdock
Ich bin auf C gekommen, weil ich gelesen habe, dass JAVA und ObjC mehr oder weniger von C abgeleitet wurden?! Deshalb dachte ich mir, ich schau mir erstmal etwas C an um ein paar Grundkenntnisse zu bekommen. Ich will C auch nicht bis in alle Tiefen lernen, sondern nur Grundkenntnisse erlangen. Danach wollte ich dann mit JAVA und/oder ObjC weitermachen. Oder meinst Du, dass man sich C komplett sparen kann? Was ist denn leichter zu lernen; JAVA oder ObjC?
0
Stefan S.
Stefan S.24.08.0322:02
slice
Vielleicht wären ein paar Anregungen bezüglich Anwendungen sinnvoll, damit Du ein Progammier-Ziel hast? So im Nebelrumprogrammieren...? Habe selber aber keine Anregungen.
0
Steffel
Steffel25.08.0313:27
slice

ich würde ohne Umwege direkt mit Objective-C anfangen und mich "durchfräsen".

Beginnst Du mit einer anderen Sprache (Java, C++), mußt Du Dich hinterher erst wieder umgewöhnen und das würde mich nerven.

Grüße
0
Donar25.08.0315:20
Wo ich euch recht geben muss, ist dass bei Java am Anfang eine Menge Summs steht, die Mann nicht recht versteht:
Java: "class fish; public static void main(){...}"
C: " main(){...}"

Objective C würde ich nicht empfehlen, da die Syntax (stark) von allen anderen gängigen Sprachen abweicht:

Java, (C), C++, ...: "Kellner.bestelleZusammenMit(Hauptgang, Beilage)"
Onjective C: "[Kellner bestelle:Hauptgang ZusammenMit:Beilage]"
Mir ist jetzt kein dümmeres Beispiel eingefallen

Evtl mein "Werdegang" zum Einschätzen:
Java (VHS-Kurs), Lisp, Java (richtig), C, C++.
Objective_C war dann ein Nachmittag um die oben beschriebene Syntax zu lernen...

Murdock um deine Idee für einen "Lehrplan" aufzugreifen:

1. C um die grundlegende Syntax zu lernen:
Datentypen: "int Anzahl; float Winkel;"
Funktionen: "funktion(Parameter1, Parameter2);"
inklusive von Blöcken "{...}";
Pointer: "char* Text;"
und Strukturen "struct Posting{char* Name, char* Kommentar};...Posting.Name = ..."
es dann gut sein lassen, also keine Enums, Funktionspointer oder Speichermanagement.

2. Java Objekte als Erweiterung von Strukturen, Klassenhierarchien.
Da kann er dann schon langsam mit Mac OS X anfangen.

3. Eine Priese C++, damit man mal Speichermanagement gesehen hat:
fish* Charlie = new fish(); (das kann Java auch)
...
delete Charlie; (das nicht direkt)

4. Objective_C

Ich hab halt das, was die Sprachen gemeinsam haben mal zu C gerechnet...

Das wäre mein Plan für eine _solide_ Grundlage und dann weis er was er tut . Verbesserungsvorschläge :-?

Grüße

P.S. Die Tutorials, die Apple zur Verfügung stellt sind ganz brauchbar.
0
rofl
rofl25.08.0317:56
Schau doch dir das mal an, soll ein gutes deutsches Entwicklerforum sein...

0
Steffel
Steffel25.08.0321:20
Donar

Dein Weg erscheint mir zu steinig. Slice schreibt extra, daß er sich hobbymäßig mit OS-X auseinandersetzen möchte.

Das Buch, das er bereits besitzt, beschreibt sehr schön die Unterschiede zwischen Cocoa, Carbon und Java bei der Entwicklung unter OS-X.

Eine gute Anleitung speziell für Cocoa bietet: "Cocoa Programming for Mac OS X" von Aaron Hillegass.

Und zum Erlernen der Objective-C Sprachelemente hat mir das mitgelieferte Tutorial von Apple sehr geholfen.

Warum den Führerschein auf Schaltgetriebe machen, wenn man erst mal einen Automatik fahren möchte?

Grüße


0
slice
slice25.08.0322:55
Danke für die vielen Tips und Hinweise! Ich denke, ich werde jetzt erstmal das Buch "Programmieren unter Mac OS X" weiter durcharbeiten ("überfliege" gerade das Kapitel zu Carbon). Parallel dazu werde ich mir ein wenig C anschauen, da ich mir gestern bei Amazon für 5 € ein gebrauchtes Buch (C Programieren von Anfang an) gekauft habe. Viel beschäftigen werde ich mich mit C aber erstmal nicht, sondern dann direkt mit ObjC weiter machen. Kann gut sein, dass ich mich demnächst noch mal hier im Forum mit einigen Fragen melden werde, bis jetzt komm ich zwar noch ganz gut klar, aber es ist schon was anderes als Basic!
0
TheTuKays23.09.0321:20
also bei uns an der fh lernen wir im ersten semester c, dann im 2. c++ und dann java....allerdings haben wir im ersten auch ein semester lang smalltalk gelernt, um eine idee von objekt orientierten programmieren zu bekommen....

als ich mir dann nochmal objC angeschaut hab, hab ich gesehen, das das smalltalk im c syntax ist.... bei smalltalk sieht das mit dem ober ungefähr so aus:
Ober Bestelle: Hauptgang mit: fleischUndGemüse.
bei objC halt
[Ober Bestelle: Hauptgang mit: fleischUndGemüse];

wenn du c lernen willst geht das am mac im terminal verdammt gut, weil du gleich nen compiler hast (gcc) und nen debugger (gdb...ok, is etwas umständlicher als unter windows mit visual studio, aber trotzdem gut). mit project builder hatte ich immer probleme mit consolen c/c++ programmen, da die dann die eingaben alle gleich am anfang haben wollten, und nicht erst da wo man das eingeben sollte....

das programmieren unter macosX habe ich mir jetzt auch gekauft, und bin dabei das durchzulesen....is nich schlecht

RealBasic zum schnellen ma was programmieren am mac, is auch ne verdammt gute sache....aber ich glaub unter cocoa programmieren is besser, wenn man kleinere programme erzeugen will(von der MB größe her), und is auch besser im system drin son cocoa programm...

-+TheTuKays+-
0
slice
slice23.09.0321:59
So in der Art habe ich jetzt auch angefangen. Ich habe mir noch ein älteres Buch (C Programmieren von Anfang an) gekauft und arbeite es im Terminal von OS X durch. In der letzten Zeit bin ich zwar leider nicht so oft dazu gekommen, aber ich habe trotzdem schon einiges gelernt, auch über BSD und das terminal im allgemeinen. Danach mache ich erstmal mit "programmieren unter OS X" weiter und dann werde ich mir die Docu von Apple ansehen. Wird zwar etwas bei mir dauern, weil ich das nur privat und hobby mäßig mache, aber ich habe ja Zeit.

Grüße
0
Murdock23.08.0322:46
Also ich hatte damals mit der "Jetzt lerne ich ..."-Buchreihe den Einstieg in C sehr gut geschaft ...
<br>
<br>Amazon: http://www.amazon.de/exec/obidos/search-handle-form/ref=sr_sp_go_qs/028-0779285-8460511
0
Murdock23.08.0322:49
Blödes Amazon!
<br>
<br>http://www.amazon.de/exec/obidos/ASIN/3827265703/qid=1061664398/sr=1-5/ref=sr_1_11_5/028-0779285-8460511
0
Murdock23.08.0322:51
Später dann: http://www.amazon.de/exec/obidos/ASIN/3827256631/qid=1061664609/sr=2-1/ref=sr_2_11_1/028-0779285-8460511
0
Murdock24.08.0313:21
slice
<br>Naja, C++ ist eigentlich nicht nötig. Das war nur meine Programmierverlauf.
<br>
<br>@@Donar
<br>Wenn man, außer vor langer Zeit etwas Basic, keine Programmiersprachen gelernt hat, sollte man trotzdem mit C anfangen, da erst einmal grundlegende Programmiertechniken gelernt werden müssen. Diese sind mit C einfach besser zu lernen, als mit den "höheren" Sprachen, wo man noch das ganze Objektorientierte gleich verstehen muss. Ich weiß noch wie ich mich damit schwer getan habe.
0
Murdock24.08.0313:22
Vieleicht ist Java auch nicht schlecht ...
0
Murdock25.08.0312:34
Ich würde vorschlagen, das du wirklich zuerst C lernst, damit du die Schreibweisen und Befehle lernst. In dieser "Jetzt lerne ich ..."-Reihe sind dann z.B. am Ende jedes Kapitels Aufgaben zum üben (erst theoretisch, später dann praktisch). Java kann vieleicht dann zum Verständnis der Objektorientierten Programmierung genutzt werden; nur hat es eine schon deutlich andere Schreibweise der Syntax und Befehle, die dich nacher bei Objective C verwirrt.
<br>Danach wird dann in Objective C programmiert.
<br>
<br>Der Weg von Donar klingt auch erst einmal logisch. Du lernst erst einmal das Objektorientierte Programmieren mit Java und später dann die Befehle und Syntax mit Objective C. Der Weg könnte sogar eleganter sein, nur bin ich ihn nicht gegangen und kann deswegen auch nicht sagen, ob er besser oder schlechter ist.
<br>
<br>Na? War diese Antwort nicht Objective?
0
Murdock25.08.0317:34
DOnar
<br>Klingt gut! Würde ich auch so vorschlagen!
0

Kommentieren

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