• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Frage zum Programmieren

  • Ersteller Crasher
  • Erstellt am

Crasher

Gast
Hallo,

ich habe eine Frage zum programmieren. Wie ist das eigentlich wenn man das Programmieren anfangen will, was für eine Art von Programmiersprache sollte man sich da zur Zeit aussuchen und wie sollte man diese lernen?o_O
Ich habe mich schon mal informiert über die Programmiersprachen die es gibt das ist eine ganz schöne Menge.

Vielleich könnt ihr mir ja Tipps geben.

Danke schon mal im voraus.

Gruß Crasher
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Die Sprache hängt davon ab, was Du tun möchtest, denn viele haben besonders geeignete Einsatzgebiete. Für OS X ist die wesentliche Sprache Objective-C (ein besseres C++). Java ist generell empfehlenswert auch auf OS X.
 

mullzk

Linsenhofener Sämling
Registriert
04.01.04
Beiträge
2.529
woaah, das ist einmal eine weitläufige frage....

also erst einmal: die arten des programmierens:
- das erstellen von webseiten alleine ist noch kein programmieren, HTML ist einfach eine Beschreibungssprache - so wie du in MS-Word - um einen Text fett zu machen - den text markierst und auf das Fett-Icon klickst, gibts du in HTML ein <b> vorne dran und ein </b> hintendran. HTML und XML sind zwar praktische Vorkenntnisse, aber nicht eigentliches programmieren.

- das eigentliche programmieren beinhaltet grob gesagt: variablen, schleifen und bedingungen. diese drei dinge werden in *allen* programmiersprachen gebraucht, und wenn du diese dinge einmal kapiert hast, wird es auch nicht mehr sooo eine grosse hexerei, weitere programmiersprachen zu lernen. daher ist es vermutlich nicht das dümmste, erst mal mit einer "einfachen" programmiersprache anzufangen, denn was man da lernt, wirst du immer gebrauchen können.

- eine wichtige unterscheidung besteht zwischen skriptsprachen (applescript, perl, php etcetc) und eigentlichen programmiersprachen (c, java, objc, ruby, c++, delphi etcetc). skriptsprachen sind normalerweise etwas leichter im syntax, dafür deutlich langsamer und vor allem weniger mächtig. fast alle grösseren programme sind daher in einer programmiersprache geschrieben, während skriptsprachen vor allem eben bei kleinen skripts und tools beliebt sind. und dann gibt es einen riesigen anwendungsbereich von skriptsprachen (vor allem php), nämlich dynamische webseiten. das kann von einer kleinen datenbank-liste über ein grosses forum wie apfeltalk bis zu riesigen projekten gehen.

bei den programmiersprachen gibt es noch die unterscheidung der pointerbasierten c-sprachen und (fast) allen anderen. auch wenn viele programmierer früher oder später an einer c-sprache hängen bleiben, ich würde nicht damit anfangen, da wäre ein einstieg sehr massiv....
wichtiger als die sprachen sind aber eigentlich die frameworks: das sind sachen, die ein programmierer nicht selber programmieren musst. ein grandioses beispiel für frameworks ist apples cocoa, wo man sich als programmierer gar nicht um solche sachen wie die anzeige im dock oder das abspeichern der dateien kümmern muss, das wird einfach frei haus geliefert.
die umfangreichsten frameworks gibt es vermutlich für java, aber auch c und c++ haben extrem viele. und php und perl sind da auch nicht gerade schwach gestellt. das auf os x dominante objective-c hat zwar nicht so viele frameworks, aber meines erachtens schlicht und einfach die geilsten.

schlussendlich glaub ich, stechen für anfänger zwei sprachen hinaus, die nicht allzu brutal im einstieg sind, aber viel bringen und in denen man über lange zeit immer noch etwas mehr lernen kann: java und php:
- mit java lernst du sehr schnell schönes programmieren. von anfang an. allerdings dauert es recht lange, bis du wirklich etwas programmieren kannst, was du dann auch wirklich gebrauchen wirst. so sollte es möglich sein, dass du schon nach relativ kurzer zeit einen taschenrechner programmieren kannst, aber hallo, jedes betriebssystem liefert sowieso schon einen taschenrechner mit, einer der mehr kann, schöner aussieht und schneller gestartet ist.

- php hingegen hat einen eher schlechten ruf, hat aber den vorteil, dass du innert kürzester zeit auch sachen programmieren kannst, die du auch wirklich anwenden willst. kleine sachen. kleine web-projekte. aber immerhin. und bis du begreifst, weshalb so viele programmierer über php fluchen, bist du mit den programmier-grundprinzipien auch schon so vertraut, dass dir das erlernen einer neuen sprache leicht fallen wird.

und wie nun das ganze lernen? hmm. eine möglichkeit ist deine nächste buchhandlung mit IT-abteilung, und dann dort die verkäufer belagern. das kann manchmal gut kommen, manchmal nicht.
ich selber habe auf verschlungene wege zu programmieren begonnen. der entscheidende kick kam, als ich selfHTML begonnen hatte, webseiten zu erstellen und dann relativ rasch begonnen habe, diese mit php dynamisch zu machen. php habe ich mit diesem tutorial gelernt, allerdings hatte ich schon früher verschiedene sprachen ausprobiert und weiss daher nicht, wie gut dieses tutorial für leute ist, die bei 0 anfangen. wenn du lieber mit java beginnen willst, ist javabuch.de ein sehr guter start (HTML-version frei verfügbar), allerdings weiss ich auch hier nicht wie es für leute ohne jegliche vorkenntnisse ist.
das wichtigste allerdings ist: aus code lernst du mehr als aus jedem buch: schau dir beispielcode an. lade (kleine!) opensource-projekte herunter und schau, ob du drauskommst was was macht. verändere werte, verändere mechanismen. da lernst du am meisten...

ansonsten musst du halt so vorgehen, wie du es als programmierer auch immer wieder tun wirst: etwas ausprobieren, voll gegen die wand rennen damit und feststellen, dass du schon wieder x stunden mit einem völlig falschen ansatz verbracht hast. ich habe das erste mal mit 9 jahren eine programmiersprache (basic) gelernt, aber nix damit hingebracht und daher wieder die modelleisenbahn hervorgenommen. etwa mit 11 habe ich dann wieder einen anlauf gemacht, diesmal mit turbo-pascal und einem buch. aber wieder konnte ich zwar alles mögliche damit machen, aber kein programm, das mir wirklich etwas gebracht hätte. diesmal kamen die modell-segelflieger dran. mit 15 dann noch ein anlauf, diesmal qbasic, anhand von beispielcode (whoa, mit nibbles konnte man ja geile sachen machen), aber auch das hat sich dann irgendwie erschöpft. so richtig los ging es bei mir erst im vierten anlauf mit 20 jahren....
 
  • Like
Reaktionen: commander

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
Mullzk hat schon die wichtigsten Punkte beleuchtet.

Trotzdem noch ein paar weitere Punkt zu dem Thema:
Literatur zu dem Thema ist gerade für ein Anfänger wichtig. Leider gibt es richtig gute Literatur meist nicht in den üblichen Buchhandlungen. Da wird das vorgehalten was sich gut verkauft, und das ist selten wirklich gut.

Die erste Frage die Du Dir zuerst beanworten mußt: Ist englischsprachige Literatur eine gangbare Option? Wenn ja, dann stehen dir sehr viel mehr Programmiersprachen zur Auswahl, da es für viele Programmiersprachen nur englischsprachige Literatur, Anleitungen etc. gibt.

Was willst Du machen und wieviel Zeit bist Du bereit zu opfern, bevor irgend etwas an Positiven zu sehen ist? Wie frustresistent bist du?

PHP ist einfach nur ein einziger Krampf. Ich habe eine Webanwendung warten müssen, die ich nicht selbst programmiert hatte. Danke, das muß nicht noch einmal sein. Persönlich rate ich dir zu Ruby oder Python, das sind zwei recht saubere Programmiersprachen (Skriptsprachen) zu denen es auch viel Literatur gibt.
 

Kuh-Bernd

Transparent von Croncels
Registriert
12.06.05
Beiträge
310
Danke mullzk für diese ausführlichen Erläuterungen.Das hat mich auch mal interessiert.:) Ich habe "damals" am C64 ein bischen mit BASIC rumgebastelt. Es sind aber nur ein paar kleine Programme geworden.
War aber sehr lehrreich.

Gruß Kuh-Bernd
 

mullzk

Linsenhofener Sämling
Registriert
04.01.04
Beiträge
2.529
tjp schrieb:
PHP ist einfach nur ein einziger Krampf. Ich habe eine Webanwendung warten müssen, die ich nicht selbst programmiert hatte. Danke, das muß nicht noch einmal sein. Persönlich rate ich dir zu Ruby oder Python, das sind zwei recht saubere Programmiersprachen (Skriptsprachen) zu denen es auch viel Literatur gibt.
im prinzip stimme ich dir da zu, aber: wenn Crasher sowieso noch in den ersten Schritten steht, wird der Code in den ersten Projekten sowieso hässlich und schwer wartbar werden, nicht weil ich Crasher unterschätze, sondern weil das immer und in jeder Sprache so ist.
ich muss noch heute projekte warten, die sowohl aus meinen php-anfängen als auch aus meinen java-anfängen starten, und obwohl ich eigentlich der Meinung bin, dass ich unterdessen recht schönen java-code hinbringe (was mir mit php nie gelingen wird), das warten dieser projekte ist genau die gleich katastrophe...

php ist eine sprache für quick dirty and unstable code. aber das kann man mit jeder sprache hinbringen, und das wird man am anfang auch. hingegen scheint mir php eine der einfachsten sprachen zu sein, um mit einen kleinen webprojekt erst mal die absolut elementaren grundprinzipien des programmierens zu lernen.
pyhton und ruby sind in meinen augen keine einfachen sprachen, sondern sprachen, mit denen es vergleichsweise einfach ist, schönen code zu erstellen. aber wo bitte will ein anfänger bei ruby on rails einsteigen? wie macht jemand, der noch nie was von MVC gehört hat, die entscheidung, welche objekte in django wie verhängt sind?

wie gesagt, ich empfehle auch, php früher oder später den rücken zuzukehren. aber in der ersten phase, wo es noch um variablen, schleifen und bedingungen geht, sind gedanken über die schönheit einer sprache, die einfachheit von frameworks etc. völlig nebensächlich.
 

newman

Roter Eiserapfel
Registriert
02.06.05
Beiträge
1.436
Hallo Crasher,

Mullzk hat einen guten Aufsatz zum Thema geschrieben und ich stimme ihm mit einer einer Ausnahme zu:

Für einen Einstieg in die Programmierung rate ich dir von PHP ab. Gar nicht so sehr weil es eine berüchtigte Frickelsprache ist, sondern weil man es im Gegensatz zu Java, C, C++, Basic ausschließlich zum scripten benutzt. PHP wird benutzt um dynamisch Webseiten zu generieren, du kannst damit keine Programme schreiben, die z.B. auf dem OS X Desktop laufen. Das Resultat von PHP-Scripts ist HTML, welches in einem Browserfenster dargestellt wird. Ich habe mit der Wartung einer bestehenden PHP-Anwendung zu tun und kann nicht sagen, dass es mir besonders viel Spass macht damit zu arbeiten.

Schlechten Code kann man in jeder Sprache schreiben. Ich habe mit 14 Jahren angefangen zu programmieren, mit Basic. Obwohl die Mittel der Sprache begrenzt waren, gab es auch damals bereits Programmierer, die damit recht gut les- und wartbaren Code zustande brachten. Ob ein Programm gut oder schlecht wird, entscheidet sich IMO zu einem großen Teil bereits noch ehe eine einzige Zeile Code geschrieben wird. Einem guten Stück Software geht eine umfangreiche Planungs- und Definitionsphase voraus, da spielen vor allem auch Entwurfsmuster und weniger die konkreten Sprachelemente eine Rolle. Durch die Objektorientierung ist diese Planungsphase größer geworden als zu Zeiten der vollprozeduralen Programmierung, das ist einer der Gründe warum mit objektorientierter Programmierung häufig (bei weitem nicht immer) bessere Programme entstehen. Besser bezieht sich in diesem Zusammenhang auf Wiederverwendbarkeit, Wartbarkeit und Stabilität.

Ich persönlich rate dir für den Anfang zu Java. Das ist eine moderne, rein objektorientierte Sprache mit der du alle Arten von Programmen schreiben kannst. Java ist C sehr verwandt, verzichtet aber auf z.B. Zeiger, welche besonders für Einsteiger verwirrend sein können. Java ist streng typisiert was bei der Fehlersuche hilft. Java verfügt über eine eingebaute Müllabfuhr (Garbage Collection).

Java Programme laufen theoretisch auf allen Betriebssystemen für welche es eine virtuelle Maschine gibt, was sowohl Segen als auch Fluch ist. Segen wegen der Portabilität, Fluch weil die Programme eben in einer virtuellen Maschine und nicht nativ laufen, dazu normalerweise Swing oder SWT für die Oberflächenprogrammierung nutzen und damit nicht so schnell sind wie z.B. ein vergleichbares natives C++ Programm. Java Programme sehen wegen Swing/SWT in der Regel auch nicht genau so aus, wie z.B. native Objective C / Cocoa Programme auf dem Mac.

All das spielt aber bei den ersten Gehversuchen in der Programmierung kaum eine Rolle. Mit einem guten Grundwissen in Java wirst du wenig Probleme haben zügig andere Sprachen wie PHP, C++ oder Objective C usw. zu erlernen.

Egal wofür du dich entscheidest, ich wünsche dir Ehrgeiz, Hartnäckigkeit und allseits ausreichend koffeinhaltige Getränke bei deinen ersten Programmierübungen! Du wirst viel davon brauchen in den Tagen und Nächten die vor dir liegen. ;)
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
mullzk schrieb:
wie gesagt, ich empfehle auch, php früher oder später den rücken zuzukehren. aber in der ersten phase, wo es noch um variablen, schleifen und bedingungen geht, sind gedanken über die schönheit einer sprache, die einfachheit von frameworks etc. völlig nebensächlich.

Ich sehe auch das Problem, daß man mit einem Webprojekt gleich zwei Dinge lernen muß Programmieren und HTML/XML. Eins nach dem anderem ist sinnvoller, aber dazu muß man halt die notwendige Geduld aufbringen.
 

Demo

Süssreinette (Aargauer Herrenapfel)
Registriert
02.04.04
Beiträge
411
eine wichtige unterscheidung besteht zwischen skriptsprachen (applescript, perl, php etcetc) und eigentlichen programmiersprachen (c, java, objc, ruby, c++, delphi etcetc).

Es gibt keine "eigentlichen" Programmiersprachen. Eine Skriptsprache ist genauso Programmiersprache wie die von Dir angebenen und betitelten "eigentlichen" Programmiersprachen. Wenn man einem Anfänger das schon so versucht zu vermitteln - na prima. Besser wäre zu sagen, es gibt Interpreter- und Compilersprachen. Zu ersteren gehören die Skriptsprachen, wie etwa php,perl,python,lua etc. Das bedeutet die geschriebenen Programme werden zur Laufzeit interpretiert. Aber das muss ich Mullzk glaub ich nicht erzählern ;).

Der Empfehlung mit Java zu starten, kann ich nur zustimmen. Von da aus ist es nur ein kleiner Sprung andere,vorallem Syntaxähnliche Sprachen zu erlernen. Damit hast Du aber auch den Vorteil, das Du dann an eigentlich jeder Kiste coden kannst. (Bei Objective-C sieht das anders aus, abseits vom Mac im Moment glaube ich nur GNUStep).

Desweiteren wäre noch Python zu empfehlen, eine sehr sehr einfach zu erlernende Skriptsprache, die in ihrer Mächtigkeit nicht zu verachten ist.

Mit PHP kann man übrigens auch GUI-Applikationen schreiben. Bei vorhandener GTK Bibliothek auch lauffähig auf dem OSX Desktop....
 

Crasher

Gast
Hi Leute, danke für die vielen Hilfestellungen

Also wo soll ich anfangen, also es war sehr aufschlussreich was ihr mir da geschrieben habt, DANKE!
Und besten Dank an mullzk an deinen, "kurzen", Aufsatz wie ihn alle nennen :p, der war sehr hilfreich beim entscheiden was ich als erste sprache nehmen sollte.
Da habe ich mich für Java entschieden und werde weiter Fragen im Fourum darüber stellen.
Aber ich hätte eine Bitte an euch, könntet ihr mir, wenn es geht, kurz zusammenfassen was die beste zweite Programmiersprache für mich Anfänger wäre!

Danke

Gruß Crasher
 

mullzk

Linsenhofener Sämling
Registriert
04.01.04
Beiträge
2.529
da wirst du dann wohl sehr unterschiedliche tips hören.
-commander wird dir vermutlich sagen, dass du dein leben lang bei java bleiben sollst...
-ich und ein paar andere werden dir aufschwatzen, dass objective-c eine geile sprache und vor allem cocoa das mit abstand geilste framework aller zeiten ist, auch wenn man damit "nur" für os x programmieren kann.
-der eine oder andere wird sicher revolution oder realbasic anpreisen, als die einfachsten sprachen für windows/mac/linux-plattformübergreifendes programmieren, welches nicht aus 100 kilometern entfernung nach java riecht...
-die meisten windows-programmierer werden dir sagen "hör nicht auf diese apple-trottel, arbeite mit c# und .net", während ich da dann sagen würde "höre nicht auf diese windows-trottel und arbeite mit einer vernünftigen sprache und einem schönen framework"
-weltweit dürfte wohl immer noch am meisten in c und c++ programmiert werden, aber c ist mühsam und c++ ist bösartig.

aber eben, wenn du die prinzipien des programmierens dann einmal gelernt hast, wirst du rasch merken, dass alles weitere vor allem davon abhängt, was du für welches publikum programmieren willst. und dann das frameworks wählst, was dir dabei am besten hilft und zuallerletzt die sprache wählst, die dieses framework unterstützt und die für dich aussieht...
 

Crasher

Gast
danke mullzk

danke, das war genau das was ich wollte, die perfekte zusammenfassung, da muss ich mich noch mehr schlau drüber machen was ich da genau für eine sprache nehme.
Ich versuche erst einmal eine sprache zu erlehrenen und dann sehe ich weiter.
Aber DANKE!
Hat mir sehr geholfen, dank euch allen.

Gruß Crasher
 

commander

Baldwins roter Pepping
Unvergessen
Registriert
25.02.04
Beiträge
3.206
Danke @mullzk! ;)

Es gibt auch Statistiken zur Verteilung von Projekten über die Sprachen Java, C++, C#. (And the Winner is: J.A.V.A
icon10.gif
)

@Crasher: bei Fragen einfach PN an mich. Aber bitte erst selbst ein bisserl reinbeissen. ;)

Gruß,

.commander
 

Crasher

Gast
Hi comander

danke für den tipp!
noch ne andere frage, was heißt PN? *neugier*
und noch könntest du mir eine seite empfehlen auf der man einen leichten einstieg ins java hat?

Gruß Crasher
 

Crasher

Gast
Danke

danke ich werde auf dich zurück kommen

gruß Crasher
 

slartibartfast

Schöner von Nordhausen
Registriert
10.05.05
Beiträge
323
Tach zusammen!

schöner thread ist das geworden, kann man immer gut anderen Programmierwilligen empfehlen ;)

Aber nur 2 Dinge zur Vollständigkeit:

a) "variablen, schleifen und bedingungen" braucht man nur in funktionalen Programmiersprachen. Wen es interessiert, was es da anderes gibt, "h-a-s-k-e-l-l" ist die Antwort ;)
Nicht, dass ich das sonderlich gut könnte, aber irgendwie wurde das nicht erwähnt... warum wohl...? :p

b) PERL rockt.

so richtig. :-D

das widerlegt auch "skriptsprachen sind [...] vor allem weniger mächtig" ;)


wie gesagt, nicht böse nehmen, meinen Post, war nur so eine kleine Anmerkung am Rande...

Grüße
slartibartfast
 

weebee

Gast
Kennt jemand das Buch: Java für Mac OS X -- Plattformunabhängige Entwicklung mit Java und Mac? Ist das empfehlenswert?
 

mullzk

Linsenhofener Sämling
Registriert
04.01.04
Beiträge
2.529
im geekcode gibt es einen schöne möglichkeit, seine einstellung zu perl beschreiben:
P--- : Perl combines the power of sh, the clarity of sed, and the performance of awk with the simplicity of C. It should be banned

aber das mit den weniger mächtigen skriptsprachen nehme ich vorbehaltslos zurück. dachte da mehr an die eher tiefgründigen sachen a la pointermanipulationen und so, die aber sowieso evil und verwerflich sind. die grösse der frameworks ist aber tatsächlich unabhängig davon, ob es sich um eine skriptsprache oder eine compilierte handelt...

so auf den allerersten blick scheint mir haskell ja doch interessant zu sein, aber ich komme nicht mal mit dem einfachsten beispielcode klar, kannst du da irgendwie ein paar worte mehr dazu verlieren?