Der Programmier-Thread

PSN-Name: DZDomi
#81
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 ;)
 
#82
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 ;)
Kommt drauf an, was du machen willst. Willst du nur für Mac OSX programmieren, dann würd ich dieses (englische) Buch empfehlen -> Cocoa Programming for Mox OSX
Das erklärt wie man die Tools von Apple nutzt und Objective-C.

Willst du plattformunabhängig programmieren, dann wär doch Java auch was für dich.

Persönlich würd ich dir raten, die Finger von C++ zu lassen. Die Sprache ist meiner Meinung nach nicht für Anfänger geeignet.

Willst du Webanwendungen schreiben, dann wär wieder ne andere Sprache sinnvoll. Was gibts da nochmal? PHP, HTML und das Gedöns.

Meine bescheiden Erfahrung hat gezeigt, dass englische Literatur besser ist, als deutsche. Die Bücher sind didaktisch besser aufgebaut.

Aber vielleicht weiß Chrizel Rat.
 
PSN-Name: DZDomi
#83
also ich wollte eigentlich anfangen iphone apps etc. zu entwickeln und hab dann auch mit dem Buch angefangen zu lesen aber schnell bemerkt das ich da schon vorkenntnisse in c, objective c haben sollte.

Gibts da gute deutsche alternativen zu dem und dem Buch?

Cheers
 
#84
also ich wollte eigentlich anfangen iphone apps etc. zu entwickeln und hab dann auch mit dem Buch angefangen zu lesen aber schnell bemerkt das ich da schon vorkenntnisse in c, objective c haben sollte.
Ok, wenn das so ist, dann brauchst du ein Buch, wie das
Objective-C und Cocoa Band 1 Grundlagen
oder dieses
Objective-C Buch
oder das was ich empfehlen würde
die deutsche Ausgabe zum Buch, was ich oben gepostet habe:
Cocoa Programmierung für Mac OSX. Leider basiert es auf der zweiten Auflage und die behandelt noch nicht Objective-C 2, aber dafür deutsch.
Ein Buch für reines C lernen, wäre dieses hier.
Aber da du ja fürs iPhone schreiben willst, solltest du vielleicht noch ein reines iPhone Programmierbuch wählen.
Hier die Amazon Übersicht.
Leider kann ich nichts zu Qualität sagen. Vielleicht musst du mal in eine Unibib und nach Büchern in dem Bereich suchen.
Es gibt noch die Openbook Reihe. Dort findest du auch "C von A bis Z". Kannst dort nachschlagen um Infos über C zu bekommen, aber wie gesagt, du musst dich auf Objective-C konzentrieren. Das müsste am besten dokumentiert sein, bei iPhone Entwicklungen.
 
PSN-Name: DZDomi
#85
wo gibt ja ne flut an büchern ;)

schonmal danke für deine hilfe :)

am meisten sagt mir das erste von dir gennante buch zu, aber komm ich als wirklicher blutiger anfänger (ok html mal ausgenommen, aber ist das eine programmiersprache? :ugly: ) mit dem buch klar ?
 
#86
am meisten sagt mir das erste von dir gennante buch zu, aber komm ich als wirklicher blutiger anfänger (ok html mal ausgenommen, aber ist das eine programmiersprache? :ugly: ) mit dem buch klar ?
HTML ist ne Auszeichnungssprache, also keine Programmiersprache.

Ich bin mal das Inhaltsvereichnis von dem ersten Buch durchgegangen und er fängt klein an, mit was ist ein Objekt/Klasse etc, macht ne kleine Anwendung und fängt dann an Objective-C zu erklären, also ich finde das ganz gut gewählt. Klingt gut.

Du kannst ja mal hier bei Google Books noch in einige Bücher reinsehen.

Falls es dir nicht gefällt kauf ich es dir für 10€ wieder ab :p

Edit: Hier noch einige Präsentation von der Uni Stanford zum Thema iPhone Application Programming
 
Zuletzt editiert:
PSN-Name: chrizeliq
#87
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.
 
#88
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)

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)
Deine Beiträge in dem Bereich sind immer unglaublich interessant. Haskell/Scala das muss ich mir mal ansehen. Template Meta-Programmierung in C++, ist das damit zu vergleichen? Muss ich mir bald auch zur Gemüte führen.
 
PSN-Name: chrizeliq
#89
Template Meta-Programmierung in C++, ist das damit zu vergleichen? Muss ich mir bald auch zur Gemüte führen.
Nicht direkt, entfernt vielleicht. Lisp-Makros sind im direkten vergleich viel eleganter, einfacher und dadurch mit weniger Aufwand maechtiger, weil sie nicht auf Typen beschraenkt sind. Lisp-Makros sind eher wie C-Preprozessor Makros allerdings fast ohne dessen ganzen Nachteile, und es ist alles Lisp. Lisp-Makros ist praktisch Lisp-Code der zur Kompilierzeit ausgefuehrt wird und selber Lisp-Code erzeugt. Dadurch kann man die Sprache umprogrammieren und Code schreiben, der selber Code erzeugt. Und dank Lisp ist das ganze recht simpel, weil Lisp sehr einfach ist. Ich habe selbst schon einen simplen kleinen unfertigen Lisp-Interpreter geschrieben, der auch Lisp-Makros unterstuetzt: http://github.com/chrizel/moelisp/tree/master

Hier http://github.com/chrizel/moelisp/blob/01e3d6f1cf68b3830e3bbceb90e37bd65b4d9910/startup.lisp ist if z.b. kein fest eingebautes Sprachkonstrukt, sondern ein Lisp-Makro:
Code:
(defmacro (if c then else...)
 (list (quote cond) (list c then) 
                    (cons #t else)))
In Common Lisp wuerde das mit Quotes und Backquotes etwas leserlicher aussehen (ich habe bei meinem Lisp-Interpreter noch keinen Backquote-Support, aber das sagt dir wahrscheinlich eh noch nix -- mit Backquotes wuerde es dann etwa so aussehen:

Code:
(defmacro (if c then else...)
 `(cond (,c ,then) 
        (#t ,else)))
In dem Fall ist if ein Makro das zu einer cond expression expandiert -- cond ist aber doch ein fest eingebautes Sprachkonstrukt bei meinem Interpretter sonst hat man ein Henne-Ei-Problem, weil eine gewisse Grundbasis muss fest drin sein...

Aber du merkst schon, wenn man sich ein eigenes if bauen kann, dann kann man sich auch eigene Schleifen oder aehnliche Iterator-Konstrukte mit Lisp-Makros generieren, und jeglichen Boilerplate-Code weg abstrahieren.

Lisp-Makros sind also eine zusaetzliche Meta-Ebene die vielen Mainstream-Programmiersprachen fehlt. Dort muss man das dann mit Preprozessoren wie in C/C++ loesen oder mit Code-Generatoren in der IDE wie bei Java, die massenhaft Boilerplate-Code erzeugen, weil die Sprache so schlecht ist.

Bei dynamischeren Sprachen siehts wieder etwas anders aus, in Ruby z.b. kann man auch schon viel mit Meta-Programmierung machen, auch wenn man keine solchen Makros hat. Um korrekt zu bleiben muss man evtl noch sagen, dass Lisp auch eine dynamisch typisierte Sprache ist. Haskell kommt auch ohne Makros aus, aber das liegt daran, weil Haskell alles lazy evaluiert und es keinen normalen Programmablauf hat. (bis auf eher imperativen Code in diversen Monads)

Bzw. wenn du Common Lisp lernen willst ist http://gigamonkeys.com/book/ ein gutes Buch -- wenn du Haskell lernen willst ist http://book.realworldhaskell.org/read/ ein gutes Buch -- und bei Scala ist Programming in Scala das Standardwerk, wo ich selber noch dran bin derzeit.

Peter Seibel, Author des Common Lisp Buchs beschreibt das Thema Lisp Makros ganz gut:
DOLIST is similar to Perl's foreach or Python's for. Java added a similar kind of loop construct with the "enhanced" for loop in Java 1.5, as part of JSR-201. Notice what a difference macros make. A Lisp programmer who notices a common pattern in their code can write a macro to give themselves a source-level abstraction of that pattern. A Java programmer who notices the same pattern has to convince Sun that this particular abstraction is worth adding to the language. Then Sun has to publish a JSR and convene an industry-wide "expert group" to hash everything out. That process--according to Sun--takes an average of 18 months. After that, the compiler writers all have to go upgrade their compilers to support the new feature. And even once the Java programmer's favorite compiler supports the new version of Java, they probably still can't use the new feature until they're allowed to break source compatibility with older versions of Java. So an annoyance that Common Lisp programmers can resolve for themselves within five minutes plagues Java programmers for years.
Ich wuerde jetzt nicht sagen, dass Lisp-Makros unbedingt essentiell sind (sie haben auch Nachteile, weil sie Code schwieriger debugbar machen) -- wenn die Sprache entsprechend flexibel ist (z.B. eben Haskell oder Scala), dann kommt man auch ohne aus. Ich glaube noch wichtiger waere mir Closure-Support.
 
PSN-Name: RaddiPS
#90
Deine Beiträge in dem Bereich sind immer unglaublich interessant. Haskell/Scala das muss ich mir mal ansehen. Template Meta-Programmierung in C++, ist das damit zu vergleichen? Muss ich mir bald auch zur Gemüte führen.
Haskell ist nichts besonderes

reine funktionale sprache, soweit wie wir sie in der uni hatten
immer irgendwelche funktionen mit ergebnissen berechnen

strings filtern usw

meistens bestehen die codes auch nur aus n paar zeilen
 
PSN-Name: chrizeliq
#91
Natuerlich ist Haskell einfach, wenn du nur einfache Rechenaufgaben oder Dinge wie Text parsen unternimmst. Aber die echte Computerwelt hat Nebeneffekte und dann bricht die schoene heile funktionale Welt zusammen. Habt ihr gelernt wie Monads funktionieren?

Haskell hat in seinem maechtigen Typsystem etwas drin, was IMHO jede typisierte Programmiersprache haben sollte: Eine unterscheidung zwischen puren und nicht-puren Funktionen. Die Programmiersprache D hat vor kurzem z.B. ein pure Schluesselwort bekommen (http://www.digitalmars.com/d/2.0/function.html) -- ich wuerde mir sowas auch in Java, C++ und Scala wuenschen.
 
#93
gibt es hier vielleicht jemanden der sich mit slideshow pro auskennt ?
http://slideshowpro.net/

nach einigen tagen und div versuchen etwas einzurichten wovon man ka ahnung hat bin ich nun mit meiner weisheit am ende

vielleicht gibt es ja hier den einen oder anderen der mir diesen abschnitt erklaeren kann
Step Six: Upload your slideshow

We recommend using an FTP program to upload your slideshow your web host. We'll leave this step up to you as there are many options. Here's one suggestion: Create a directory on your web server that will hold all of your slideshows. Then, upload each slideshow into a subfolder. E.g.: /public_html/galleries/2009_10_joneshollywedding, /public_html/galleries/2009_11_smithjohnsonfamily, etc.
link
http://wiki.slideshowpro.net/SSPlr/QuickStart

bzw diesem hier http://wiki.slideshowpro.net/SSPlr/Tips-MergingAlbums

ich moechte einfach in einer gallerie verschiedene alben haben aber ich bekomme alles nur zum laufen mit einem album nicht mit weiteren


EDIT :
ich sehe gerade es gibt ein video tutorial werde ich mir mal anschauen damit sollte das wohl zu schaffen sein
 
Zuletzt editiert:
#94
Leute, ich muss mich in meiner Ausbildung jetzt mit C-Sharp auseinander setzen....
Ich musste nun feststellen, dass programmieren absolut nicht mein Ding ist! Um nicht zu sagen... ich hasse es Abgrund tief!!

Eigentlich verstehe ich ja, was welche Anweisung macht, aber sobald ich ne Aufgabe bekomme und ein Programm schreiben muss, kommt nichts ohne Hilfe bei raus!

Mir fehlt auch noch ernsthaftes Interesse hinter der Sache. Dienstag habe ich ne Klausur und ich glaube das ich die voll verkacke....

Ich habe mich jetzt schon nach Seiten umgeschaut, die es einem einfach erklären, aber da wird grundsätzlich mit Wörtern rum geschmissen, mit denen man nichts anfangen kann!

Kann mir einer eventuell einen Tipp geben, wie man sich das ganz einfach aneignen kann?
Irgendwie pisst mich das ganze enorm an.... -.-
 

crack-king

Administrator
Team-Mitglied
systems, systems, systems, systems, systems, systems
#95
Hmn...Ich weiß ja nicht, wie du programmierst. Aber was auf jeden Fall sinnvoll ist, sich bevor man die erste Zeile Code schreibt, überhaupt erstmal darüber im Klaren zu sein, was man eigentlich braucht. Also welche Klassen, welche Objekte und wie die zueinander in Beziehung stehen und was die an sich können müssen. Das hilft meist schon tierisch weiter. Zudem ist es hilfreich, wenn man eine Main-Klasse hat, die einfach nur noch ein paar Zeilen enthält, die das Programm ausführen, während die eigentliche Arbeit in nem anderen Objekt verwaltet wird. MVc(oder MCV? xD)-Programmierung ist dir vielleicht ein Begriff. Geht halt darum, dass du alle Sachen möglichst gut verteilst, damit das Programm halt übersichtlich bleibt.
 
#97
MVc?! Ne :D Sorry, aber das sagt mir absolut nichts...
Ich frag mich ehrlich gesagt sowieso, warum man sich als Systemintegrator um so einen Mist scheren muss?! Eigentlich die Sache der Anwendungsentwickler..... -.-
Model View Controller meint er. Ist ein Muster zur Erstellung von Programmen. Der Systemintegrator muss vielleicht mal über Code drüber sehen irgendwann und dann wissen was da steht, vermute ich mal.

Schau mal hier, da gibts einige kostenlose Bücher zum Thema.
 

crack-king

Administrator
Team-Mitglied
systems, systems, systems, systems, systems, systems
#98
Eben, auch wenn du das nicht alles selbst programmieren könnnen musst, solltest du schon wissen, was da steht. Ist genau das selbe, wie mit Leuten, die in Informatikfirmen an den Kunden herangehen und Verträge abschließen usw. Die müssen ebenfalls programmieren können, damit sie wissen, was letztlich machbar ist und man dem Kunden schmackhaft machen könnte.
 
#99
Mag sein, aber ich musste mit erschrecken feststellen, dass mir das absolut nicht liegt und das könnte mir die nächsten Semester das Leben schwer machen. Denn in allen anderen Fächern bin ich recht gut. Softwareentwicklung ist absolut nicht mein Ding.... und zur Zeit ist alles nur "Grundwissen" :-/
 
Top