Dialog-Fenster öffnen.

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
BlackJack

@Sophus: Dieses an die Hand nehmen funktioniert persönlich und direkt ganz prima, aber nicht wirklich gut in einem Forum. Ausserdem hinkt der Geschichtsvergleich, weil das ja wirklich alles trockene Theorie ist. Tutorials zu Programmiersprachen und -techniken sind das aber nicht, denn da muss man sich aktiv und interaktiv mit der Materie auseinander setzen. Wer *das* langweilig findet, für den ist Programmieren an sich wohl nichts, denn das ist ja letztlich genau der Prozess den man dabei *ständig* hat, und der eigentlich interessant ist. Denn die Teile bei denen man sich nicht selbstständig in neue Themen einarbeitet, sondern Code runterschreibt den man ”kann”, sind eher die langweiligen Durststrecken, weil das eher langweilig ist.

Dein Gefühl bezüglich unserer Erwartungshaltung ist richtig. Wir erwarten das sich jemand selbstständig einarbeitet. Und bieten Hilfe bei konkreten Fragen und Hilfe zur Selbsthilfe. Wer an die Hand genommen werden möchte, sollte sich besser einen persönlichen Tutor suchen. Oder in einem speziellen Anfängerforum anmelden. Beziehungsweise auf der Anfängermailingliste, falls es die noch gibt.
Benutzeravatar
Sophus
User
Beiträge: 1109
Registriert: Freitag 25. April 2014, 12:46
Wohnort: Osnabrück

Meine konkrete Frage war ja, weshalb im Old-Styl kein self verwendet werden braucht und im New Style schon? Und zum Thema einarbeiten. Wie du anhand meiner Kommentare im Quellcode siehst, mache ich mir schon Gedanken dabei, und tippe den Quellcode nicht einfach blind ab. Ich will ja auch was davon haben, wenn ich etwas zum Laufen kriege, dass ich es auch verstehe. Aber für dich ist es nur abtippen ohne zu verstehen, eben weil ich übungen wie diese hier nicht mache:

Code: Alles auswählen

a = 12 
b = a * 2
c = a + b
print c
oder

Code: Alles auswählen

a = 1
if (a <= 1):
print "If-Bedingung erfüllt"
BlackJack

@Sophus: *Das* sind nicht die Übungen die man macht wenn man sich mit OOP beschäftigt. Und die muss man halt machen um das Objektmodell von Python zu verstehen. Die konkrete Antwort auf die Frage ist: Lerne das Objektmodell von Python und OOP generell. Selbstständig. Alternativ kannst Du warten bis Dich jemand an die Hand nimmt…
Benutzeravatar
Sophus
User
Beiträge: 1109
Registriert: Freitag 25. April 2014, 12:46
Wohnort: Osnabrück

Irgendwie kommst du von dem Trip "OOP" nicht runter, kann das sein? Dazu habe ich mich auch ein wenig geschichtlich sachkundig gemacht, und fand folgendes:
Die objektorientierte Programmierung (kurz: OOP) erfreut sich seit ihrer "Einführung" oder "Erfindung" mit "Simula 67" durch Ole-Johan Dahl und Kirsten Nygard größter Beliebtheit. Dennoch ist sie nicht unumstritten. So bescheinigte beispielsweise der russische Informatiker Alexander Stepanow der OOP nur eine eingeschränkte mathematische Sichtweise und sagte, dass die OOP beinahe ein so großer Schwindel wie die künstliche Intelligenz sei.1 Alexander Stepanow hat wesentlich an der Entwicklung der "C++ Standard Template Library" mitgewirkt, also sollte er bestens über OOP und ihrer Probleme in der Praxis Bescheid wissen. Das Grundkonzept der objektorientierten Programmierung besteht darin, Daten und deren Funktionen (Methoden), - d.h. Funktionen, die auf diese Daten angewendet werden können - in einem Objekt zusammenzufassen und nach außen zu kapseln, so dass Methoden fremder Objekte diese Daten nicht direkt manipulieren können. Objekte werden über Klassen definiert. Eine Klasse ist eine formale Beschreibung, wie ein Objekt beschaffen ist, d.h. welche Attribute und welche Methoden sie hat. Eine Klasse darf nicht mit einem Objekt verwechselt werden. Statt Objekt spricht man auch von einer Instanz einer Klasse.
Also, die Argumente vom russischen Informatiker Alexander Stepanow kann ich nachvollziehen. Was ich hier nur aufzeigen will, ist, dass du voll auf OOP schwörst, als sei es das Absolute und Gute schlechthin :-)
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@Sophus: Si tacuisses, philo-Sophus mansisses.

Warum haben so viele noobs das Bedürfnis, den Regulars hier ans Bein zu pinkeln? Was BlackJack schreibt, ist natürlich völlig wahr, und was du schreibst, völlig verkehrt. Und zwar deswegen:
  • Python ist eine objekt-orientierte Sprache. Wenn du OOP nicht magst, nimm nicht Python.
  • GUI-Frameworks sind alle objekt-orientiert. Wenn du OOP nicht magst, schreib keine GUI.
  • OOP ist zwar nicht der Weisheit letzter Schluss, aber zur Lösung großer Klassen von Problemen gut benutzbar.
  • Wenn nicht OOP, was dann? Die Frage ist ja nicht, OOP, ja oder nein, sondern OOP oder ..., ja, was? Funktional? Prozedural? Logisch-Deklarativ? Oder was ganz anderes, vieleicht etwas, an das bisher noch keiner gedacht hat?
In specifications, Murphy's Law supersedes Ohm's.
Benutzeravatar
Sophus
User
Beiträge: 1109
Registriert: Freitag 25. April 2014, 12:46
Wohnort: Osnabrück

Ich möchte niemanden ans Bein pinkeln. Ich wollte nur die Schere zeigen, auf der einen Seite schreien die meisten nach OOP und klammern sich wie ein Äffchen daran fest, und ein wirklich guter Informatiker, der wirklich Ahnung von der Materie hat, zeigt auf, dass OOP nicht das Gelbe vom Ei ist. Mehr wollte ich nicht aufzeigen. Die Beliebtheit auf der einen Seite, und die große Kritik auf der anderen Seite.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Sophus hat geschrieben:Ich möchte niemanden ans Bein pinkeln. Ich wollte nur die Schere zeigen, auf der einen Seite schreien die meisten nach OOP und klammern sich wie ein Äffchen daran fest, und ein wirklich guter Informatiker, der wirklich Ahnung von der Materie hat, zeigt auf, dass OOP nicht das Gelbe vom Ei ist. Mehr wollte ich nicht aufzeigen. Die Beliebtheit auf der einen Seite, und die große Kritik auf der anderen Seite.
Dir ist aber schon klar, dass ein beträchtlicher Teil der Regulars hier Informatik studiert hat und teilweise seit Jahren diesem Bereich arbeitet, oder? Die Vor- und Nachteile von OOP sind uns allen bekann, auch wann man es einsetzt und wann nicht. Vielleicht solltest du also besser mit deiner kleinen "Geschichtsstunde" aufhören und auf die Hinweise hören. ;-) Der Grund, warum du hier ständig auf OOP hingewiesen wirst ist ein ganz einfacher: GUIs sind eine der typischen Anwendungen, wenn nicht sogar *die* typische Anwendung, für objektorientierte Probleme. Beide werden quasi im selben Atemzug genannt. Also setzt dich einfach hin und lerne den Kram, sonst wird das nichts.

Wo wir gerade bei Ans-Bein-Pinkeln sind: Geben (angehende) Lehrer bei Zitaten jetzt keine Quelle mehr an? ;-)
Das Leben ist wie ein Tennisball.
bfm
User
Beiträge: 88
Registriert: Donnerstag 14. März 2013, 09:42

pillmuncher hat geschrieben: Warum haben so viele noobs das Bedürfnis, den Regulars hier ans Bein zu pinkeln?
Als "Frischling" in Sachen Python kommt man sich hier im Forum auch öfters mal als "der letzte Depp" behandelt vor. Irgendwann schießt man dann halt auch mal zurück.
Die Regulars sollten sich halt ganz einfach auch mal an die Zeit erinnern, als sie selber Python & Co gelernt hatten! Nicht jeder hat die Gescheitheit mit Löffeln gefressen.

Ich bilde seit über 20 Jahren Azubis aus und da ist halt jeder anders. Jeder lernt anders. Manche schneller, manche langsamer. Dem einen reicht es, wenn man es kurz und einfach erklärt, beim anderen muss man bei Adam und Eva anfangen.
In den Jahren habe ich sicher dem ein oder anderen Azubi etwas zweimal oder mehr erklären müssen. Ich habe mir zwar gedacht, der ist blöd, aber ich habe immer versucht es ihn nicht spüren zu lassen. Ich denke nämlich, dass derjenige dann gleich demontiviert wird und frustriert aufgibt.
EyDu hat geschrieben: Dir ist aber schon klar, dass ein beträchtlicher Teil der Regulars hier Informatik studiert hat und teilweise seit Jahren diesem Bereich arbeitet, oder?
jomei, niemand ist vollkommen.....

In unserer IT sind die Hälfte der Mitarbeiter keine studierten Informatiker. Bei unserem Consulter gibt es auch genug, vor allem ältere Mitarbeiter, die sehr gute Programmieren sind. Auch ohne Studium!!!

Bei uns in der IT hatten wir einen Informatikstudenten als Aushilfe. Der hatte vergangenes Jahr das Netzwerk so lahmgelegt, dass in der Produktion ein paar Stunden nichts mehr ging. Unser IT-Leiter (studiert) hat getobt, weil das wohl ein Fehler war, der nicht mal einem Anfänger passiert.

So und jetzt könnt ihr auf mich losprügeln oder mal in euch gehen und etwas nachdenken!!!
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@bfm: Dass nicht jeder gleich oder gar gleich schnell lernt, ist wohl jedem hier klar. Du wirst aber weder mich noch einen der anderen Regulars davon überzeugen können, dass man Python auch lernen kann, wenn man die Grundlagen überspringt. Und genau darum geht es hier. Sophus wurde von Anfang an darauf hingewiesen, dass sein Vorgehen nicht optimal ist. Das hat ihn nicht angefochten und deswegen sind wir jetzt hier, sechs Wochen später, und diskutieren mit ihm immer noch dieselben Sachen, die er schon vor 5 1/2 Wochen hätte lernen können, wenn er nicht so nonchalant über alles hinweggegangen wäre, was man ihm anempfohlen hat.

Im Übrigen halte ich die ganze Angelegenheit inzwischen für eine Inkarnation hiervon.
In specifications, Murphy's Law supersedes Ohm's.
BlackJack

Also ich finde ja die Begründung das der besagte Informatiker Ahnung von OOP in der Praxis hat, weil er an der Implementierung der C++ STL mitgewirkt hat, beinahe humoristisch. C++ ist *eine* Auffassung davon wie OOP aussehen kann. Und die ist von den Ursprüngen und der reinen leere nun doch ein gutes Stück entfernt. Alan Kay, der den OOP-Begriff geprägt hat, sagt das er C++ dabei nicht im Sinn hatte: “I invented the term Object-Oriented, and I can tell you I did not have C++ in mind.”

Ich klammere mich nicht an OOP. Ich finde an Python unter anderem auch gut, dass man zum Beispiel sehr funktional programmieren kann, und bin nachweislich jemand der Klassen kritisiert wenn die keinen Sinn machen. OOP ist kein Selbstzweck, sondern *ein* Werkzeug im Werkzeugkasten eines guten Programmierers. Nur ist Python vom Kern her eine objektorientierte Programmiersprache, und Qt ein durch und durch objektorientiertes Rahmenwerk, ergo *muss* man OOP können, um das sinnvoll benutzen zu können. Sich da mit einer mathematisch begründeten OOP-Kritik rauswinden zu wollen ist komplett sinnfrei und hat nichts mit der Realität zu tun.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@Sophus
Aus meiner eigenen Erfahrung heraus glaube ich, dass immer dann, wenn man sich einer neuen Thematik zuwendet und etwas neues lernen möchte, die Gefahr besteht, dass sich aus einer neugierigen, ungeduldigen und deshalb auch wichtigen Anfängerarroganz heraus schnell blockierende Besserwisserei entwickeln kann. Vielleicht bist Du ja gerade an dem Punkt, an dem Du Deinen inneren Schweinehund überwinden solltest und den Erfahrungen und wirklich gut gemeinten Ratschlägen hier einfach mal folgst.
Wenngleich ich Kaufmann und nicht angehender Lehrer bin (weshalb es mir dann doch etwas einfacher fällt, externes Wissen auszuhalten :wink: ) wollte ich gerade zu meinen blutigen Anfängerzeiten oft nicht verstehen, weshalb ich meinen Sturm und Drang in die eine oder andere Richtung kanalisieren sollte.
Nun ja, inzwischen habe ich hier sehr sehr viele Fragen gestellt, habe vielen Antworten nicht immer gleich glauben wollen und muss aber eingestehen: Die Regulars hier im Forum hatten bisher immer Recht. Heute weiß ich, dass es schlichtweg ökonomischer ist, die Ratschläge, die man hier bekommt, zu befolgen oder, sollte man das eine oder andere mangels Erfahrung oder besserem Wissen erstmal nicht akzeptieren können, sich damit solange auseinanderzusetzen, bis man sich auch wirklich ein Urteil darüber bilden kann bzw. darf.

Amen. :wink:

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Jeder bekommt hier im Forum, wie überall im Leben, die Antwort, die für den Antwortenden angemessen erscheint. Höfliches, konkretes, interessiertes Fragen ergibt andere Antworten, als selbstgefälliges uneinsichtiges und überhebliches Fragen.
@Sophus: beides trifft auf Dich nicht zu. Deine erste Frage war höflich aber auch unkonkret.
Um den Dialog zu übertragen:
(Auftritt S, B)
S: Ich hatte gerade meine erste Fahrstunde. Jetzt habe ich für meinen Umzug einen 14-Tonner vollgeladen und sitze ich hinter dem Lenkrad des LKW und möchte wissen, wie ich mit Anhänger rückwärts einparken kann.
B: vielleicht solltest Du erst mal Autofahren üben und die Verkehrsregeln zu kennen wäre auch nicht schlecht.
S: Ich kann schon ein Mofa fahren, und da ist es ganz einfach in eine Parklücke zu kommen.
Ma: Also, Rückwärtsgang einlegen, das Lenkrad ganz weit rechts einschlagen, dann langsam Anfahren und das Lenkrad in die Gegenrichtung drehen.
Mm: Bei einem LKW ist eben vieles andes als bei einem Mofa.
S: Ich glaube mein erster Eintrag wurde nicht gründlich gelesen. Ich sitze schon im LKW und habe bereits den Sicherheitsgurt angelegt.
Und dann hat sich die Diskussion weiter aufgeschaukelt.
Ich erinnere mich noch, dass ich mit GW-Basic unbedingt eine Analoguhr zeichnen wollte, aber beim besten Willen nicht verstehen konnte, wie man denn die Zeiger unter einem bestimmt Winkel zeichnen können soll. Irgendwann habe ich frustriert aufgegeben und mich beschränkt, bunte Rechtecke über den Bildschirm zu schieben. War auch eine Herausforderung und das Erfolgserlebnis entsprechend groß.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Sophus hat geschrieben: Also, die Argumente vom russischen Informatiker Alexander Stepanow kann ich nachvollziehen.
Ich sehe im Zitat gar keine Argumente! Nur Behauptungen... :K

@bfm und andere "Frischlinge": Also ich habe schon von vielen genau das Gegenteil gehört, auch in privaten Nachrichten, in denen sich Neulinge für die tolle Hilfe hier bedankt haben. Man kann es natürlich nicht jedem Recht machen, aber grundsätzlich behandeln wir hier keinen a priori als "Deppen" o.ä. Sicherlich gibt es auch mal den ein oder anderen zynischen Kommentar, das aber immer erst *nachdem* man selber in einer Form persönlich angegriffen worden ist oder der Benutzer auf andere Weise negativ aufgefallen ist.

Letztlich ist es in einem Forum wie im persönlichen Leben: Man kommt nicht mit jedem klar. Das gilt bilateral für die Beziehung von Neulingen und Regulars.

Um den Spieß mal um zudrehen komme ich mir als letzter "Depp" vor, wenn ein (Programmier-)Neuling mich belehren will, *wie* man Dinge zu lernen hat oder *welche* Dinge beim Lernen wichtig sind. Wozu gibt man dann noch Ratschläge? Wozu wendet sich denn der Neuling an die Erfahrenen? Natürlich steht es jedem frei, diese zu ignorieren. Dies kann leicht dazu führen, dass jemand keine Antworten mehr bekommt, weil er zum 10. Mal Fragen zum XML-Parsen stellt, die längst alle beantwortet sind. Vor allem aber wird das idR. dazu führen, dass derjenige irgend wann das Handtuch schmeißt. All das kann er gerne tun.

Aber es steht im eigentlich nicht frei, diese Ratschläge als unnütz, unnötig oder gar dumm zu bezeichnen und zu brandmarken! Dann muss man damit rechnen, dass das nicht unkommentiert bleibt. Eines darf man hier nie vergessen: Das ist keine geheime Unterhaltung! Hier lesen auch andere Benutzer oder gar Externe mit und die sollen bitte keine *falschen* Ratschläge verinnerlichen!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Den Unterschied zwischen OO und Prozedural den gibt es nicht nur in der IT, den gibt es auch auf dem Bau, im Maschinenbau oder in der Literatur.

Prozedurale Literatur ist wie (kleine) Kinder erzählen.
Erst passiert das, dann macht der das, danach passiert das, dann der ...
Die Erzählung läuft fast in Echtzeit ab.

Objektorientierte Literatur ist wie großes Kino.
Zuerst werden die Akteure in ihrem alltäglichen Umfeld gezeigt und beschrieben.
Dann passiert etwas, was diese Personen zusammenbringt und ab da wird die Handlung ganz wesentlich von den Interaktionen der Akteure getrieben und nur ein klein wenig durch äußere Eingriffe.

So ist es nun auch in der IT.
Prozedural programmieren kann jeder lernen (erst das, dann das, danach das).
Bei der Objektorientierung fängst Du nicht mit der Handlung an, sondern mit den Akteuren (Klassen und Objekte).
Und es ist wie in der Literatur:
  • wenn Du die Akteure sorgfältig gestaltet hast, dann läuft danach die Handlung von alleine ab,
  • aber nicht jeder kann eine Geschichte interessant erzählen.
STL:
Ja die STL ist OO, genau wie der Ford-T oder der VW-Käfer Autos sind. Die Entwicklung ist aber weitergegangen.
a fool with a tool is still a fool, www.magben.de, YouTube
EmaNymton
User
Beiträge: 174
Registriert: Sonntag 30. Mai 2010, 14:07

Sophus hat geschrieben:... Aber was ich allgemein mit dem Lernprozess meine, ist, dass ich eines als angehender Lehrer gelernt habe, ist, dass es viele Wege gibt, die nach Rom führen. Die einfachste Methode ist natürlich, dass man sich hinstellt, und sagt "Ja, lest euch das und das durch, damit ihr die Grundlage habt". In meinem einen Fach (Geschichte) könnte ich dann sagen "Lest bitte alle die Weimarer Republik und das damalige politische System durch, damit ich mit euch über den Nationalsozialismus reden kann. Wäre eine Möglichkeit. Aber ich nehme die Kinder eher an der Hand, und führe sie durch, und lasse sie Fragen ohne Ende stellen, und wenn die Fragen noch so banal sind.
Das bedeutet du machst bösen Frontaluntericht ?!? :twisted:

Kleiner Scherz, bitte nicht persönlich nehmen, ich bin selbst so einer, der gerne auch mal frontal unterrichtet aber in der Regel nur da, wo es sinnvoll ist. Ich würde dein Beispiel aber gerne aufnehmen und dich fragen, wie du reagierst, wenn dir ein Schüler ein und dieselbe Frage vier- oder fünfmal stellt, du die Antwort aber bereits mehrfach in ausführlicher Form gegeben hast? Übertragen auf diesen Thread bzw. das Internet ist es nämlich so, dass es auf deine Fragen bereits ausführliche Antworten gibt, u.a. in Tutorials über OOP in Python oder auf stackoverflow.com, usw...
Sophus hat geschrieben: Jetzt kommt mein Lehrer-Instinkt wieder durch: Ich vertrete die Auffassung, dass ein systematisches Abarbeiten zwar wünschenswert ist, aber pädagogisch und didaktisch einfach nur ermüdend ist. Viele Dinge erschließen sich einfach hinter. Um das mal auf meine Problematik zu projizieren. Wenn man mir also erklärt, dies verhält sich so und so, und ich frage dann nochmal oder meine Frage schweift in eine andere Richtung, dann heißt es nicht, dass ich schneller lernen will und mir alles andere egal ist, sondern, dass mein Interesse gerade auf dem Fokus der self-Methode liegt. Und durch Fragereien lernt man halt. Man sollte sich einfach in Erinnerung rufen, dass es keine einzig wahre Lernmethode gibt. Wenn es so wäre, wäre das Bildungssystem in Deutschland um einiges besser, aber stattdessen grübeln Bildungsforscher seit Jahrzehnte darüber wie man Dinge am besten beibringt. [...]
Das sehe ich anders! Gerade weil ich eben nicht immer jemanden an der Hand habe, der mir eine Frage beantworten will/kann, muss ich den Schülern doch primär die Kompetenz vermitteln, sich Zusammenhänge selbstständig anzueignen. Dabei sind Inhalte zwar wichtig, aber in der Regel austauschbar (sehe ich gerade wieder, da ich an dem neuen Kernlehrplan für Informatik sitze ;)).
Die Schüler, die immer Fragen stellen durften und diese brav beantwortet bekommen, sind nämlich dann schnell aufgeschmissen, wenn man bei einem Problem mal nicht den Lehrer fragen kann. Und das sollte doch auch dein Ziel beim Programmieren sein, dass du irgendwann in der Lage bist, dir selbstständig in Python Zusammenhänge anzueignen, damit du irgendwann selbst hier Starthilfe für andere leisten kannst. Es ist ja nicht so, dass dir deine Fragen nicht beantwortet wurden. Um bei deinem Beispiel zu bleiben: Wir haben dir geraten zunächst deinen Informatik-Lehrer zu fragen (in Form eines Tutorials), damit er dir deine Fragen beantwortet.

Ich weiß, wie es sich anfühlt, erstmal zu hören, man solle die Grundlagen lernen, aber du wirst nicht Englisch reden können ohne die Vokabeln und die Grammatik gelernt zu haben. Die Zeit, die du in das Durcharbeiten des Tutorials investierst, holst du nachher um ein Vielfaches wieder rein und dann macht es auch richtig Spaß!

Zusätzlich kommt hinzu, dass Geschriebenes ganz schnell anders interpretiert werden kann, als es eigentlich gemeint war. Man fühlt sich also ganz schnell auf den Schlipps getreten, Anfänger und Regulars gleichermaßen. Dann braucht man nur noch einen schlechten Tag zu haben und die Ablehnung ist perfekt.
Verstehe bitte meinen Kommentar in diesem Sinne, dass wir dich hier nicht ausbremsen möchten, ganz im Gegenteil. Wir wollen dir nur den effektiveren Weg aufzeigen, auch wenn der zunächst mit mehr Arbeit verbunden zu sein scheint.
Antworten