Seite 1 von 2

erbitte Weisheit

Verfasst: Montag 16. November 2009, 20:36
von jerome
Hallo Pythen Checker,

Ich brauch allgemeine Hilfe wie man eine Programmiersprache am Besten lernt.

Meine Ausrüstung ist VIM ( mit mehreren plugins, tabcomletition,
highlightning, syntax check usw usw. )
IPYTHON in der Shell ausgeführt

IDLE ( ich weiß nicht gerade die beste IDE aber ich mag eher die
Terminals und Konsolen ich bin süchtig nach sowas )

Ubuntu ( später will ich Gentoo installieren wenn ichs mehr drauf hab)

Naja ich hab Python Bücher die ich lese und die Beispiele mache aber sobald es kompliziert wird verlier ich total die orientierung. Ich versuch den Code in stücke zu zerflücken und zu verstehen macht ihr das auch so?

Irre ich mich oder ist Programmieren so was wie mit "lego klötzen" spielen man hat diese vielen Module, Funktionen und muss nur lernen wie man sie anwendet bzw mit einander verknüpft. Klar man kann sie ja auch selbst schreiben und naja es ist sehr komplex und viel mathe dahinter ist mir schon bewusst. ( sollte sich nicht so abwertend anhören eher ein versuch eines laien es irgendwie zu beschreiben )

Ich bin echt dankbar für tipps wie ich das besser lernen kann, ich mein jeder hat mal klein angefangen und es gibt hier sicher leute die es richtig drauf haben und mich vor den änfängerfehlern und ewigkeiten von zeitverschwendung bewahren können.

Danke euch im voraus ( ach ja ich lern aus freien willen, weils mir spaß macht und ich eines Tages was in die richtung machen will )

gruß
jerome

Re: erbitte Weisheit

Verfasst: Montag 16. November 2009, 20:46
von derdon
jerome hat geschrieben:Irre ich mich oder ist Programmieren so was wie mit "lego klötzen" spielen man hat diese vielen Module, Funktionen und muss nur lernen wie man sie anwendet bzw mit einander verknüpft. Klar man kann sie ja auch selbst schreiben und naja es ist sehr komplex und viel mathe dahinter ist mir schon bewusst. ( sollte sich nicht so abwertend anhören eher ein versuch eines laien es irgendwie zu beschreiben )
Ich denke, dass mehr Logik als Mathematik hinter Programmieren im Allgemeinen steckt. "Weisheit" und irgendwelche geheimen Profitipps kann ich dir nicht geben, aber zwei einfache Empfehlungen:

1. Gucke dir Code von anderen an und versuche, ihn zu verstehen
2. Schreib selber immer wieder Programme und guck, ob du bei anderen Projekten mitarbeiten kannst (wenn du dir das zutraust)

Und vor allem: Mach dir nicht so viel Panik :)

Verfasst: Montag 16. November 2009, 20:52
von jerome
Stimmt du hast wohl recht. boolesche Algebra z.B da lese ich mich auch ein. Hm Projekte daran hab ich nicht mal im entferntesten gedacht. Könnte einen sicher was bringen.
Werde versuchen es so zu machen dank dir vielmals.

gruß
jerome

Verfasst: Montag 16. November 2009, 21:00
von cofi
Logik ⊆ Mathematik. Aber ja, solange man nicht in die Theorethische Informatik (Informatik ≠ Programmieren) oder Algorithmenentwirklung gehen will kommt man auch prima ohne aus. Und auf der Sprachebene ist es in der Tat Lego, allerdings mit der Moeglichkeit eigene Kloetzchen zu basteln.

Weisheit faellt nicht einfach so vom Himmel, sondern kommt mit der Erfahrung. Fehler zu machen kann/sollte man nicht vermeiden, meist sind sie auch lehrreich (sofern man darauf lernen will/kann)

P.S. IDLE hat rein gar nichts mit Terminals zu tun und ist einfach zum direkten wegschmeissen vorgesehen, wenn man eine Alternative hat.

P.P.S. Gentoo ist zum Einstieg auch gut geeignet, wenn man vom Lesen nicht abgeschreckt wird und das System "bottom up" kennen lernen will, Ubuntu bringt dir in der Hinsicht nichts bei, also kannst du auch direkt darauf umsteigen.

Edit: Boolsche Algebra hat nichts mit Programmieren zu tun, sondern greift erst auf der Hardware-Ebene.

Verfasst: Montag 16. November 2009, 21:20
von jerome
Danke cofi,
Ich wollt so was schreiben das ich so den verdacht hab das man gut programmieren kann auch wenn man nicht gerade der super crack in mathe ist aber war mir nicht sicher ob das wirklich so ist.

Ja was IDLE angeht naja meine erfahrungen gehen in die selbe richtung wie du es beschrieben hast.

Gut die Hardware ebene stimmt. Mit Schaltungen usw. Naja darauf werde ich eines tages aber auch noch in Berühung kommen. Würde gern nen eines tages nen weg finden wie ich z.B mein fernseh anschalten kann durch den computer oder ne lampe usw.

oh man ich bin erlich gesagt ziemlich gierig jetzt endlich gentoo zu installieren. Ich wollts scho vor ner ewigkeit machen und erlich gesagt hab ich 2wochen urlaub den ich nur für programmieren, und computer ausgeben will.

thx
jerome

Verfasst: Montag 16. November 2009, 21:21
von Pekh
cofi hat geschrieben: Edit: Boolsche Algebra hat nichts mit Programmieren zu tun, sondern greift erst auf der Hardware-Ebene.
Das ist Unfug. Sobald du Wahrheitswerte auswertest bist du mitten drin. Und das passiert bei allen Schleifen, Ifs, ...

Verfasst: Montag 16. November 2009, 21:29
von derdon
cofi hat geschrieben:Logik ⊆ Mathematik.
Ups, ich habe nur an "Arithmetik" gedacht als ich von "Mathematik" schrieb. :oops:

Verfasst: Montag 16. November 2009, 21:50
von cofi
Pekh hat geschrieben:Das ist Unfug. Sobald du Wahrheitswerte auswertest bist du mitten drin. Und das passiert bei allen Schleifen, Ifs, ...
Das passiert auf der logischen Ebene fuer die man meiner Meinung nach keine Ahnung von Boolscher Algebra benoetigt, dass sie zur Anwendung kommt sollte klar sein, aber erst auf Schaltungsebene muss man sie kennen.

@derdon: Die Mathematik ist um einiges breiter, z.B. Typtheorie oder auch das Spielen mit der Unendlichkeit :twisted:

Verfasst: Montag 16. November 2009, 21:57
von derdon
cofi hat geschrieben:@derdon: Die Mathematik ist um einiges breiter, z.B. Typtheorie oder auch das Spielen mit der Unendlichkeit :twisted:
Ich habe gemerkt, dass ich nen Fehler gemacht hab und hab sogar den Schäm-Smiley aktiviert. Warum also noch auf mich herumhacken? Oder wolltest du nur mit deinem Wissen glänzen?

Verfasst: Montag 16. November 2009, 22:05
von cofi
Nein tut mir leid, so sollte das nicht rueberkommen. Ich hatte noch einen Tab dazu offen und wurde wohl zu uebermuetig :oops:

Re: erbitte Weisheit

Verfasst: Montag 16. November 2009, 22:06
von Leonidas
jerome hat geschrieben:Ich brauch allgemeine Hilfe wie man eine Programmiersprache am Besten lernt.
Durch Benutzung ebendieser - eben Übung.
jerome hat geschrieben:IDLE ( ich weiß nicht gerade die beste IDE aber ich mag eher die
Terminals und Konsolen ich bin süchtig nach sowas )
Wenn du schon Vim hast, wozu dann noch IDLE?
jerome hat geschrieben:Ubuntu ( später will ich Gentoo installieren wenn ichs mehr drauf hab)
Also ich weiß nicht warum die Auffassung herrscht Gentoo == Profi. Ich habe es auch mal probiert und stelle fest dass man in Arch so ziemlich das gleiche geboten bekommt minus die Frustration weil man ewig kompilieren muss und Zeug nicht gerne ausprobiert, weil das eine längliche Kompilation nach sich ziehen würde. Von der Frustration dass man falsche USE-Flags hat und dasss die Migration von Unstable nach Stable manuell erfolgt mal ganz zu schweigen.
Also wenn man wirklich was über Linux lernen will, dann ist es IMHO sinnvoller sich Linux From Scratch in einer VM aufzuziehen. Außer man will eben explizit Gentoo haben.
jerome hat geschrieben:Naja ich hab Python Bücher die ich lese und die Beispiele mache aber sobald es kompliziert wird verlier ich total die orientierung. Ich versuch den Code in stücke zu zerflücken und zu verstehen macht ihr das auch so?
Ja.
jerome hat geschrieben:Irre ich mich oder ist Programmieren so was wie mit "lego klötzen" spielen man hat diese vielen Module, Funktionen und muss nur lernen wie man sie anwendet bzw mit einander verknüpft.
Ja, und gerade deswegen finde ich auch funktionale Programmierung so toll, da hat man ganz viele sehr mächtige Klötzchen, die nahezu beliebig kombinierbar sind.
jerome hat geschrieben:Klar man kann sie ja auch selbst schreiben und naja es ist sehr komplex und viel mathe dahinter ist mir schon bewusst. ( sollte sich nicht so abwertend anhören eher ein versuch eines laien es irgendwie zu beschreiben )
So viel Mathe ist da nicht dahinter, erst wenn man soweit reingeht dass man in die Elektrotechnik kommt, dann kommt ggf. anspruchsvolle Mathematik. Aber von dem Niveau sind die meisten Programme meilenweit entfernt, weil sich da jemand vorher schon darüber gedanken gemacht hat.
jerome hat geschrieben:Ich bin echt dankbar für tipps wie ich das besser lernen kann, ich mein jeder hat mal klein angefangen und es gibt hier sicher leute die es richtig drauf haben und mich vor den änfängerfehlern und ewigkeiten von zeitverschwendung bewahren können.
Oooch, gerade durch Zeitverschwendung mit einer Sprache lernt man doch eine Menge. So nach dem Motto: "geht das?" oder "wozu könnte das denn wohl gut sein?".

Verfasst: Montag 16. November 2009, 22:40
von jerome
hi Leonidas,

ich war echt besorgt wegen der "Lego Klötzchen" ich dacht ich bekomm da ziemlich was reingedrückt. Gut da schein ich gar nicht so sehr auf den falschen weg zu sein.

Danke für deinen genauen und einleutenden Beitrag Leonidas. Du hast es alles so ziemlich scharf erkannt.
Ja mein programmieren ist eher so „Trial and Error“ Prinzip wo ich immer noch lese und dazulerne in Büchern oder skripten vorallen wenn's nicht hinhaut frag ich mich immer verdammt warum? und such nach den Grund.

dank nochmal Leonidas
gruß
jerome

Verfasst: Montag 16. November 2009, 22:43
von numerix
cofi hat geschrieben:P.S. IDLE hat rein gar nichts mit Terminals zu tun und ist einfach zum direkten wegschmeissen vorgesehen, wenn man eine Alternative hat.
Warum wird bloß immer so auf IDLE herumgehackt?
jerome hat geschrieben:Ja was IDLE angeht naja meine erfahrungen gehen in die selbe richtung wie du es beschrieben hast.
Welche Erfahrungen wären das denn?

Verfasst: Montag 16. November 2009, 22:49
von numerix
jerome hat geschrieben:ich war echt besorgt wegen der "Lego Klötzchen" ich dacht ich bekomm da ziemlich was reingedrückt. Gut da schein ich gar nicht so sehr auf den falschen weg zu sein.
Ich sehe den Vergleich mit den Legosteinen durchaus kritisch, weil ich dabei an "Programmierer" denken muss (die auch im Forum gelegentlich auftauchen), die mit fertigen Legosteinen oder auch schon etwas komplexeren Teilfiguren, die aus mehreren Legosteinen zusammengebaut sind, die sie irgendwo "gefunden" haben, wild herumbasteln ohne sich damit auseinander zu setzen, warum die Steine zusammenhalten, warum genau diese Steine genommen werden etc. Das Motto lautet dann im übertragenen Sinne: Hauptsache es hält, ist doch egal warum.

Verfasst: Dienstag 17. November 2009, 00:12
von problembär
numerix hat geschrieben:... ohne sich damit auseinander zu setzen, warum die Steine zusammenhalten, warum genau diese Steine genommen werden etc. Das Motto lautet dann im übertragenen Sinne: Hauptsache es hält, ist doch egal warum.
Ähh, ist das nicht ein gewolltes Konzept in der objektorientierten Programmierung

http://de.wikipedia.org/wiki/Datenkapse ... _Paradigma

(und damit ein Grund, warum ich OOP eigentlich nicht mag ...) ?

Verfasst: Dienstag 17. November 2009, 00:41
von Leonidas
problembär hat geschrieben:(und damit ein Grund, warum ich OOP eigentlich nicht mag ...) ?
Ich denke ihr verwechselt Datenkapselung mit Copy-Paste-Programmierung. Die "Legosteine" von denen ich sprach entsprechen Funktionen und Objekten, die von denen numerix spricht eher Codefragmenten.

Verfasst: Dienstag 17. November 2009, 06:23
von BlackJack
@problembär: Bei der Datenkapselung geht es darum, dass man nicht wissen muss, wie der Legostein *intern* aufgebaut ist, solange er sich so verhält, wie die Dokumentation der Schnittstelle es beschreibt. Wenn Du das nicht magst, dann magst Du Programmieren im allgemeinen nicht, denn das ist nicht nur bei OOP-Programmierung angesagt. Auch in imperativen Programmiersprachen wird dieses Konzept schon sehr lange verwendet, um wartbare Programme zu schaffen. Grössere Systeme wären anders gar nicht möglich. Beispiele sind Bibliotheken in C oder Units in Pascal.

Verfasst: Dienstag 17. November 2009, 09:58
von Gabelmensch
Setz dir ein Ziel, z.B. alle deine Bashscripte in Python neu zu schreiben.

Verfasst: Dienstag 17. November 2009, 10:03
von derdon
Die Idee finde ich nicht so gut, weil es viele Probleme gibt, die sich mit Shellskripts (nicht nur Bash) eleganter lösen lassen als mit Python. Ein Einzeiler, der z.B. aus einer Kombination von sed und find besteht, lässt sich nur umständlich und unnatürlich in Python schreiben.

Verfasst: Dienstag 17. November 2009, 10:06
von numerix
Leonidas hat geschrieben:Die "Legosteine" von denen ich sprach entsprechen Funktionen und Objekten, die von denen numerix spricht eher Codefragmenten.
Genauso war das gemeint. Je nachdem, was man unter den Legosteinen versteht und wie man sie einsetzt, ist es ein gutes, tragfähiges Bild oder eben auch nicht.