Hi,
Würde gerne anfangen programmieren zu lernen sprich c, c++ etc. .
Nun les ich gerade das buch "Learn C on the Mac". Soweit auch ein gutes buch aber leider in englisch und ich wollte mal fragen was es für gute deutsche alternativen gibt zu eben dem sogennanten buch?
Und ob ich überhaupt mit C oder doch einer anderen sprache anfangen sollte?
Cheers
Klar gibts auch deutsche Literatur, aber wenn du es wirklich ernst mit dem Programmieren meinst, solltest du auf englische Sachen setzen. Alles was du im Netz zur iPhone-Programmierung finden wirst, wird Englisch sein. Wenn du kein Englisch kannst, oder nur schlecht, lerne erst mal Englisch.
Wenn du vorher noch nie programmiert hast, wuerde ich nicht sofort mit Objective-C und Cocoa anfangen, sondern eher mit Sprachen wie Python oder Ruby und danach C oder Java, dann ist der Weg nach Objective-C nicht mehr so weit. Ich wuerde nicht mit C und damit auch nicht mit Objective-C anfangen.
Ich habe vor 11 Jahren als 13-Jaehriger mit QBasic angefangen. Bald habe ich gemerkt, dass die meisten professionellen Anwendungen damals in C oder C++ programmiert waren, desshalb habe ich mich daran zumindest auch versucht, auch wenn ich am Anfang nicht viel verstanden habe. Ueber die Jahre wurde das lernen neuer Programmiersprachen zu einem kleinen Hobby von mir, so habe ich mir im laufe der Jahre schon verschiedenste Sprachen angeeignet, einige intensiver, andere weniger intensiv.
Viele, vor allem die Mainstream-Sprachen, sind vom Grundprinzip her alle relativ aehnlich, desshalb kann man oft Konzepte einfach uebernehmen und muss nur neue Syntax lernen. (vergleichbar mit den Europaeischen Sprachen)
Andere Sprachen wie z.B. Haskell sind dagegen komplett anders, weil selbst Dinge wie der Programmablauf anders funktionieren (vergleichbar mit einer asiatischen Sprache wie Japanisch)
Nachdem ich eigentlich alle Mainstream-Sprachen gesehen hatte, haben mich eher diese exotischeren Rand-Sprachen auf eine komplett neue Programmier-Ebene gebracht. Durch Lisp habe ich die Maechtigkeit der Meta-Programmierung (bei Lisp mit Lisp-Makros) erkannt. Haskell hat meine Sicht komplett veraendert, was den globalen Zustand (z.B. in Variablen) eines Programms und dessen Nebeneffekte betrifft. Ein Thema das in den naechsten Jahren immer wichtiger wird, und wodurch Sprachen wie Java oder C# in den naechsten Jahren durch eher funktionale oder funktionale Misch-Sprachen ersetzt werden. (siehe Scala als Java-Nachfolger)
Nach all den Jahren bin ich aber momentan noch eher an generellen Konzepten der Programmierung dran, so beschaeftige ich mich momentan und seit einigen Monaten intensiv mit Test Driven Development, Unit Tests etc. und ich war ueberrascht, dass ich mich erst so spaet damit beschaeftigt habe, weil das wieder eine Phase ist, die mich als Programmierer komplett veraendert hat und es mir jetzt viel klarer wird wie man komplexere Anwendungen aufziehen kann und trotzdem eine gewisse Robustheit gewaehrleisten kann. Tests!
Leider ist das Thema Unit Tests auch von der jeweiligen Community abhaengig, so machen die Leute in der Objective-C-Ecke eher kaum automatisierte Tests, wohingegen in der Ruby oder Java-Welt das ganze recht verbreitet ist. Aber auch beim Testing-Thema wird sich in den Jahren noch viel tun, da heisst es immer weiter lernen. (siehe z.B. Behaviour Driven Development)
Programmieren ist ein lebenslanger Lernprozess, zumindest sehe ich es so - selbst nach ueber 10 Jahren lerne ich immer noch, und es wird auch nie vorbei sein, weil sich der Bereich laufend veraendert.
Du als Anfaenger solltest mit einer Mainstream-Sprache anfangen. Python oder Ruby. Und dabei nichts mit GUI und Grafik machen, sondern eher erst mal nur die generellen Konzepte verstehen und Text auf der Textkonsole ausgeben. Natuerlich kannst du sofort mit dem iPhone einsteigen und rumspielen, aber ich wuerde es nicht machen.
Alles IMHO.