Tipps für Programmiersprachen lernen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Shakra
User
Beiträge: 7
Registriert: Samstag 30. Oktober 2010, 00:00

Hallo zusammen
ich habe mich-weiss ich auch nicht warum- vor ein paar tagen entschieden programmieren zu lernen..Ich weiss sowas braucht viel zeit und geduld aber ich denke mal ich packe das..
Na aufjedenfall habe ich mich im net bisschen informiert welche sprache nun für die anfänger wirklich geeignet ist..Und ich bin wirklich ein anfänger und vom pc habe überhaupt keine ahnung..Schließlich bin ich phyton gestoßen..das soll für die anfänger am besten geeignet sein..So habe ich mich hier mal angemeldet..
Also kann ich mich auf die aussage wirklich verlassen? Phyton höre ich zum erstenmal was jetzt nix bedeutet aber vil. könnt ihr auch paar sätze dazu schreiben das wäre echt nett..
Und am besten würde ich mich für einpaar büchertipps freuen..
Welches bücher sollte ich aufjedenfall gelesen haben über dieses oder andere sprachen-wenn ihr der meinung seid dass ein anderes besser geeignet ist und bücher über das pc selbst..Also was es mit diesem hardware, bestriebssystemen undso auf sich hat damit ich son grundkenntnis habe..
Und ich bedanke mich schonmal für eure hilfe:
Danke=))
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Python macht dir den Einstieg nicht zu schwer.

Darf man fragen wie alt du bist und wie gut du Englisch kannst?
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Shakra
User
Beiträge: 7
Registriert: Samstag 30. Oktober 2010, 00:00

Ich bin 20 jahre alt. Und mit englisch kann ich ehrlich gesagt nix anfangen oder zumindest nicht weit kommen..
Aber was die fragen mit dem thema zutun haben würde ich schon interessieren..ich hoffe nur du wolltest mir jetzt keine englische bücher empfehlen=))

Und ich hätte da noch eine frage..Ich lese gerade das buch "Python Das umfassende Handbuch". Und da steht folgendes:
"Dieses Buch ist keinesfalls als Einführung in die Programmierung allgemein oder gar in die Informatik anzusehen. Wir behandeln weder Datenstrukturen noch Algorithmen noch die dahinter stehende Theorie."
Jetzt frage ich mich ob ich ein zuerst ein buch über programmieren allgemein lesen sollte..
Aber so ein allgemeines buch über programmieren habe ich bis jetzt auch nicht gefunden..
ich hoffe ich könnt mir da weiterhelfen..
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Als erstes gilt: Wenn Du das wirklich lernen willst, dann musst Du viel Eigeninitiative zeigen! Dazu gehört z.B., hier im Forum mal nach Schlagwörtern wie "Buchempfehlung", "Einsteiger", usw zu suchen. Wir haben diese Themen in unterschiedlichsten Threads mit verschiedenen Schwerpunkten öfter diskutiert. Da findest Du viele brauchbare Infos und auch Meinungen.

Generell gilt: Durchstöbere mal das wiki!
http://wiki.python-forum.de/FAQ#Wie_fan ... iger_an.3F

Da gibts viele brauchbare Infos und vor allem auch Links.

Zum Thema englisch haben wir einen interessanten Thread:
http://python-forum.de/viewtopic.php?f= ... et+over+it

Englisch brauchst Du - es ist aber weniger schwer, als Du denkst.

Also viel lesen und ausprobieren! Ein Buch allg. über Programmierung bringt da imho weniger für den Einsteiger. Design Patterns usw. kann man später mal nachlesen, da kann es relativ unabhängig von einer konkreten Sprache sein; allerdings beschränken sich eben viele Themen auf Sprachfamilien mit bestimmten Paradigmen.

Als Einsteiger sollte man imho schon eine konkrete Sprache haben, an die man sich "klammern" kann.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Tutorial das sich mit den Grundlagen beschaeftigt und dabei Python verwendet: http://www.rg16.asn-wien.ac.at/~python/how2think/
Danach solltest du am besten noch das Python-Tutorial durcharbeiten: http://tutorial.pocoo.org

Das Galileo Buch "Python - Das umfassende Handbuch" ist nicht zu empfehlen, weder zum Einstieg noch generell.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Shakra hat geschrieben:Ich bin 20 jahre alt. Und mit englisch kann ich ehrlich gesagt nix anfangen oder zumindest nicht weit kommen.
Aber was die fragen mit dem thema zutun haben
Die Bedeutung des Englischen ist ja schon erläutert worden; die Frage nach dem Alter hängt in gewisser Weise damit zusammen, hätte aber z.B. auch Folgen für die Literaturempfehlung. Es gibt z.B. das Buch "Python für Kids", das sich speziell an junge Programmierer richtet (jung heißt in diesem Fall deutlich jünger als 20) und einen grafischen Einstieg über das turtle Modul wählt.
Shakra hat geschrieben:Jetzt frage ich mich ob ich ein zuerst ein buch über programmieren allgemein lesen sollte.
Ein Einführungsbuch in die Programmierung ohne die Verwendung einer konkreten Programmiersprache (falls es so etwas gibt), hielte ich nicht für sinnvoll. Dann wären alle Programmbeispiele nur in Pseudocode geschrieben und man könnte gar nichts ausprobieren. Ein brauchbares Buch, das den Einstieg in Python mit einigen allgemeinen Programmiergrundlagen verknüpft ist "Michael Weigend: Objektorientierte Programmierung mit Python.".
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Die erste Programmiersprache ist bekanntlich die schwerste ;) . Hier kommt Dir Python meiner Meinung nach sehr entgegen, da es syntaktisch nicht so überladen ist und man grundlegende Kontrollstrukturen relativ schnell erlernen kann. Das A und O des Programmierens ist es, dass man sich in einer Sprache ausdrücken kann.

Der zweite wichtige Punkt des Programmierens ist es, das vorliegende Problem so formulieren zu können, das es mit Deiner Sprache darstellbar wird - Stichwort algorithmisches Denken. Ich geb Dir mal ein simples Bsp. zur Verdeutlichung:
Vor Dir stehen 1 Kiste mit grünen und roten Äpfeln und 2 leeren Kisten (ist ja gerade Herbst :)). Aufgabe ist es, die roten und grünen Äpfel in die leeren Kisten zu sortieren. Wie machst Du das?
Wahrscheinlich so:

Code: Alles auswählen

- wiedehole bis geschmischt-Kiste ist leer:
    - nimm einen Apfel aus geschmischt-Kiste
    - Apfel ist rot?
          - lege Apfel in rote Kiste
    - Apfel ist grün?
          - lege Apfel in grüne Kiste
Damit hast Du eine Art Pseudocodedarstellung des Problemes, welche Du in einer imperativen Programmiersprache fast 1 zu 1 umsetzen kannst, z.B. mit Python:

Code: Alles auswählen

# gemischte Kiste mit Aepfeln
gemischt = ['rot', 'gruen', 'rot', 'gruen', 'gruen', 'gelb']

rot = []                       # leere Kiste rot
gruen = []                     # leere Kiste gruen

while len(gemischt) > 0:       # wiederhole waehrend "Laenge" von gemischt > 0
    apfel = gemischt.pop()     # nimm Apfel aus gemischt
    if apfel == 'rot':
        rot.append(apfel)      # in die rote Kiste damit
    if apfel == 'gruen':
        gruen.append(apfel)
# Was ist wohl mit dem gelben Apfel passiert?
Das ist keine besonders dolle Lösung des Problems in Python, aber ein Anfang. Das Nutzen von Sprachspezifika und Codeeleganz sind dann mehr Übungssache und Erfahrung. In puncto Python kannst Du da einiges von den alten Hasen dieses Forums mitnehmen.

Ein tieferes Verständnis von Dingen wie Rechnerarchitektur, Algorithmik oder Betriebssystemspezifika werden erst später relevant. Ich spiele zwar heut noch gern mit Assembler rum, allerdings ist das Wissen um Register und Speicherverwaltung in so hardwarefernen Sprachen wie Python von wenig Nutzen. Willst Du verstehen, wie ein Rechner um Inneren tickt, so empfehle ich Dir eher eine hardwarenahe Sprache (von C abwärts).
Numerik und Algorithmik sind für jeden Programmierer wichtig, allerdings würden Dich als Informatikeinsteiger die theoretische Herangehensweise und Symbolik eher abschrecken als weiterhelfen.
Kenntnisse über das zugrundeliegende Betriebssystem aus Programmierersicht brauchst Du frühestens, wenn Du den Funktionsumfang der mit allen Sprachen mitgelieferten Standard-Bibliothek verlässt - bis dahin ist es noch ein Stück.

Tipp: Nimm Dir nicht die dicken Wälzer zum Erlernen, die verleiden Dir eher die Thematik mit theoretischen Betrachtungen. Besser fährst Du mit einen guten Tutorial, welches Dir Schritt für Schritt die Sprache vorstellt und Dich mit kleinen, Deinem Kenntnisstand ensprechenden Aufgaben an die Hand nimmt und bei Laune hält. Neben den Genannten ist vllt. "Wie ein Informatiker denken lernen" was für Dich (weiss allerdings nicht, ob das gut gemacht ist).

Viel Erfolg :)
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

wichtig ist IMHO - für jede Programmiersprache - dass man ein "Problem" hat und dies mit Hilfe eines Programms lösen möchte. Das Problem kann ruhig trivial oder "total blöd" oder für den Rest der Welt uninteressant sein - wichtig ist, dass DU dafür eine Lösung programmieren willst. :-)

Empfehlenswert zum Lesen ist auch "A Byte of Python" - sehr gute Einsteiger Lektüre. Gibt's auch auf Deutsch: http://abop-german.berlios.de/

Gruß, noisefloor
Shakra
User
Beiträge: 7
Registriert: Samstag 30. Oktober 2010, 00:00

Hallo Leute
erstmal vielen vielen dank für die beiträge.Ihr habt mir echt weitergeholfen..
Seit 5 stunden lese ich mir die tutorien durch und übe das bisschen aber an manchen stellen klappt es irgendwie nicht..
Z.B: folgendes sollte ich eingeben:
>>> def hallo():
print 'Hallo, liebe Klasse G10b'
print 'Python IS fun!'
Und wenn ich jetzt ">>> hallo()" eingebe, soll "Hallo, lieb...usw" rauskommen..
Dat klappt aber nicht..
Dieses print funktioniert bei mir irgendwi nicht..Es sollte wie def gelb sein ist aber keien ahnung grau oder so..Außerdem wenn ich etwas mit print eingebe dann bekomm ich immer syntaxfehler..
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Du benutzt vermutlich ein Python 2.x Tutorial mit Python 3.x . Zwischen den beiden Versionen gibt es einige kleinere Unterschiede. Dein 'print'-Problem kannst du dadurch lösen, daß du runde Klammern um den auszugebenden Inhalt setzt. Generell solltest du aber zusehen, daß du ein Tutorial für Python 3.x zur Hand nimmst.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Es wird dir wahrscheinlich schwer fallen mit schlechten Englisch Kenntnissen aber ich rate zu Learn Python the Hard Way. Dort wird von grundsätzlichen Fragen zum vorgehen beim lernen, bis zur Editor Wahl und notwendige Shell Kenntnisse alles erwähnt. Die Sprache selbst lernst du durch eine Reihe von Aufgaben und Beispielen mit denen du experimentieren musst um das notwendige Verständnis zu erlangen um weiterzuarbeiten.
Bei dem Autor des Buches hat man mit Zed Shaw auch jemanden der in der Community aktiv ist und versteht wovon er redet.

Als weitergehende Lektüre würde ich dann Expert Python Programming empfehlen, da liegt der Fokus mehr auf Design und Struktur Fragen eines Projektes und es wird sich mit Packaging etc. beschäftigt. Da wird quasi alles erörtert was man so braucht um ein grösseres Projekt zu starten und zu verbreiten.

Dieses wie auch die anderen gennanten Bücher sind aber keine die man als Programmierer gelesen haben sollte und zu solchen Büchern wirst du auch so schnell nicht kommen. Zu diesen Büchern würde ich Structure and Interpretation of Computer Programs(SICP) und How To Design Programs(HTDP) zählen.

Je nachdem für was man sich dann später genauer interessiert gibt es natürlich auch noch jede Menge weitere Bücher die man lesen sollte, wie z.B. Compilers: Principles, Techniques, and Tools(üblicherweise Dragon Book genannt) und Essentials Of Programming Languages(EoPL) wenn man vor hat sich mit Parsern und Compilern zu beschäftigen.

Ohne Unterstützung macht es aber eher wenig Sinn so ein Buch zu lesen wenn man nicht schon ein nicht-triviales Projekt gemacht hat, also für dich als Anfänger wahrscheinlich in etwa einem Jahr.
Benutzeravatar
Fjunch-click-
User
Beiträge: 41
Registriert: Mittwoch 18. März 2009, 01:27
Wohnort: Lübeck

Schön, dass du jemandem, der von sich selber sagt, dass er kein Englisch kann, ausschließlich englischsprachige Bücher empfiehlst.
Da kann Shakra bestimmt sehr viel mit anfangen. :wink:

@Shakra
Schau einfach mal hier:
http://wiki.python.de/FAQ#Wie_fange_ich ... iger_an.3F
Da findest du eine Auflistung von deutscher Lektüre.
Gruß, Lars
Shakra
User
Beiträge: 7
Registriert: Samstag 30. Oktober 2010, 00:00

Ee..leut..bin grad bisschen verwirrt..
Ich habe auch schon fast 100 themen durchgelesen(und festgestellt dass ich der einzige bin der das nicht versteht) damit diese frage nicht stellen muss aber mir bleibt wohl nix anderes übrig..
Also was ist nun dieses raw_input()? Und wie verwendet man das? Also ich versuc grad das hier zu programmieren:

>>> def passwort():
print ('passwortabfrage: '),
eingabe = raw_input()
if (eingabe == 'geheim'):
print ('Wir begrüßen dich herzlich!')
else:
print ('Falsches Passwort zur falschen Zeit am falschen Ort!')
so..ich habe das genau so wie im anleitung geschrieben aber ich steh irgendwie voll blöd da..
Soll ich vorher "geheim=einpasswort" geben? Wie speichere ich nun was in dieses raw_input?
Und wie funktioniert nun dieses programm? Wann, wie gibt man da einen passwort?
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

DasIch hat geschrieben:Es wird dir wahrscheinlich schwer fallen mit schlechten Englisch Kenntnissen aber ich rate zu ... /snip/
Beeindruckend, was für Bücher du kennst. Aber: Hast du die Beiträge von Shakra mal gelesen?
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Fehlende Englisch Kenntnisse sind zum Programmieren wie Analphabetismus zum Gedichte schreiben. Es gibt nunmal gewisse Grundvorrausetzungen und wenn man es ernst meint sollte man die erfüllen.
Benutzeravatar
Fjunch-click-
User
Beiträge: 41
Registriert: Mittwoch 18. März 2009, 01:27
Wohnort: Lübeck

Sorry, aber das ist Quatsch.
Es gibt genügend deutsche Anleitungen im Netz. Es geht hier doch nicht darum, sich als Chefprogrammierer bei IBM zu qualifizieren. Für den Haus- und Hobbybereich kommt man mit deutschen Anleitungen wunderbar klar. Ich kenne mehrere Leute, die seit 30 Jahren programmieren und auch kein Englisch können. Wie gesagt, es geht um eine Freizeitbeschäftigung und nicht um einen internationalen Wettbewerb. Und unter diesem Aspekt ist das ständige "ohne Englisch geht es nicht" einfach Unsinn.
Ich selber finde z.B. "Lern Python the hard way" auch sehr gut. Genau so gut kann man aber auch eines der vielen deutschen Tutorials nehmen.
Gruß, Lars
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

DasIch hat geschrieben:Fehlende Englisch Kenntnisse sind zum Programmieren wie Analphabetismus zum Gedichte schreiben.
Es ging mir weniger um das Englische, sondern mehr um das, was du ansonsten geschrieben hast. Das mag alles richtig sein, aber hier geht es doch um jemanden, der gerade die ersten zaghaften Schritte bei der Programmierung versucht, und wenn man sich die von ihm geschilderten Fragen und Probleme ansieht, dann dürfte ihm der nette Beitrag von jerch sicher mehr helfen, als der Verweis auf Literatur, die für ihn in seeeeehr weiter Ferne liegt.
BlackJack

@Fjunch-click-: Vielleicht kann man ohne Englisch anhand deutscher Literatur die Grundlagen von Python erlernen, aber dann hört es auch schon auf. Eine aktuelle, deutschsprachige Dokumentation zur Standardbibliothek gibt es nicht, und ich würde da auch nicht drauf warten. Dokumentation zu Bibliotheken von Drittanbietern gibt es auch nicht viele auf Deutsch. Damit kann man tatsächliches Programmieren von Anwendungen in Python, die über absolutes Anfängerniveau hinausgehen, eigentlich vergessen.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Fjunch-click- hat geschrieben:Es gibt genügend deutsche Anleitungen im Netz.
Genau da ist der Punkt. Anleitungen die jemand mal aus Langeweile ubersetzt hat oder vielleicht sogar auf Deutsch geschrieben hat findet man, in zweifelhafter Qualitat, sicherlich ein paar, die kommen aber weder quantitiv noch qualitativ an das englische Angebot heran.

Desweiteren hinkt man den aktuellen Entwicklungen immer hinterher. Wo ist die deutsche Dokumentation zu Mongrel2 und node.js, das aktuelle Tutorial zu backbone.js und die zahlreichen deutschen Blog Posts zu NoSQL? Selbst an der Python Dokumentation scheiterts doch schon, sobald ich eine Webanwendung machen will hab ich ein nahezu unüberwindbares Problem und da haben wir ein, gerade fur "Freizeitprogrammierer" äusserst populäres Thema, hat man vor 3D Kram, GUIs, Interpreter oder Compiler zu schreiben sucht man sich besser gleich ein anderes Hobby.

Mir fällt spontan nicht ein einziges Projekt ein, an dem ich in irgendeiner Weise Code beigesteuert hab oder welches ich genutzt habe, bei dem man in der Lage ware adequaten deutschen Support zu bekommen, Dokumentation oder selbst ein einfachstes Tutorial auf Deutsch wird man da nie finden und ähnlich dürfte es bei fast jedem anderen halbwegs relevanten Projekt aussehen. Zu diesen Projekten gehören übrigens durchaus auch solche die ausschliesslich deutschsprachige Entwickler haben.

Vielleicht ist meine Sichtweise als jemand der sowas schon mal mit einer Teilnahme beim GSoC quasi "professionell" gemacht hat allerdings schon zu eingeschränkt. Dann wurde mich ja mal interessieren was man sonst so machen soll ohne Englisch Kenntnisse abgesehen vom nten kaputten Backupscript welches cp uber os.system aufruft.
Benutzeravatar
Fjunch-click-
User
Beiträge: 41
Registriert: Mittwoch 18. März 2009, 01:27
Wohnort: Lübeck

Vielleicht sollte man dann dieses Forum gleich dichtmachen. Ein deutsches Python-Forum ist doch dann Blödsinn, oder?
Oder einfach die Regel einführen, dass hier nur noch englisch geschrieben werden darf. Dann würden Menschen wie Shakra, die du als Analphabeten bezeichnest, gar nicht auf die Idee kommen, als Anfänger ohne englische Sprachkenntnisse hier Hilfe zu erhoffen.

Naja, was soll's. Ich hoffe nur, dass Shakra sich nicht von Beiträgen wie deinen entmutigen lässt.
Gruß, Lars
Antworten