Leider verstehe ich nicht, was du mich hier fragst. Am besten, du versuchst meinen Code mal auszuführen. Dann sollte klar werden, was der Unterschied bewirkt.Sophus hat geschrieben:In der Klasse-A benutzt du die Konvention "self" und in der Klasse-B nicht. Aber anhand dieses einfachen Beispiels ist es unerheblich ob ich die Konvention "self" benutze oder nicht, weil du hier keine Referenz auf ein bestimmtes Objekt brauchst, richtig?
Dialog-Fenster öffnen.
- pillmuncher
- User
- Beiträge: 1527
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
In specifications, Murphy's Law supersedes Ohm's.
Mir ist klar, dass Klasse-B kein mit dem "x" nichts anfangen kann, weil es kein Attribut dafür hat. Erst durch einen self bekommt "x" einen Attribut. Aber trotz der self-Methode wir der New-Style nicht angenommen? Dein einfaches Beispiel verwirrt mich ein wenig, da du mir hier nur sagst, dass ich mittels self-Methode Zugriffe auf Attribute setze. Dies tat ich doch auch im New-Style.
- pillmuncher
- User
- Beiträge: 1527
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
Hier zum Vergleich dein Code, bereinigt um alles, was für dieses Problem irrelevant ist:Sophus hat geschrieben:Dein einfaches Beispiel verwirrt mich ein wenig, da du mir hier nur sagst, dass ich mittels self-Methode Zugriffe auf Attribute setze. Dies tat ich doch auch im New-Style.
Code: Alles auswählen
class MDIFormular(QMainWindow):
def __init__ (self, parent=None):
...
mnuMainWindowClose = QAction ('Beenden', self)
...
self.mnuMainWindowClose.triggered.connect(close)
Code: Alles auswählen
class A(object):
def __init__(self):
self.x = 1
print self.x
a = A()
class B(object):
def __init__(self):
x = 1
print self.x
b = B()
In specifications, Murphy's Law supersedes Ohm's.
Ich habe mir fast gedacht, dass du mit dem Finger darauf zeigen willst. Dies tat ich aber auch schon. Hier ein kleiner Code-Ausschnitt. Wie du siehst, wurden die self-Methoden gesetzt.
Beim Starten des Programms kommt allerdings die Fehlermeldung:
Ich muss erwähnen, dass ich Python 2.7 verwende.
Code: Alles auswählen
class MDIFormular(QMainWindow):
def __init__ (self, parent=None):
# Menupunkt bekommt eine Beschriftung, hier 'Beenden'
self.mnuMainWindowClose = QAction ('Beenden', self)
# Hier wird zu der Beschrifung hinzugefügt, über welche Tastenkombinationen
# man dwn MainWindow beenden kann.
self.mnuMainWindowClose.setShortcut('Ctrl+Q')
# Sobald man mit der Maus über das Untermenu fährt, erscheint in der Statusbar
# der Text, hier 'Programm beenden'.
self.mnuMainWindowClose.setStatusTip('Programm beenden')
# Klickt man auf auf das Untermenu "MainWindowClose" wird ein bestimmtes Ereignis
# ausgelöst, hier wird der MainWindow geschlossen.
#self.connect(mnuMainWindowClose, SIGNAL('triggered()'), SLOT('close()'))
self.mnuMainWindowClose.triggered.connect(close)
Er kommt also auf "close" nicht klar?Traceback (most recent call last):
File "D:\Dan\Python\Xarphus\MDIForm.py", line 140, in <module>
MDIWindow = MDIFormular()
File "D:\Dan\Python\Xarphus\MDIForm.py", line 88, in __init__
self.mnuMainWindowClose.triggered.connect(close)
NameError: global name 'close' is not defined
Ich muss erwähnen, dass ich Python 2.7 verwende.
@Sophus: Welches `close` willst Du denn da verwenden? So ist das ja tatsächlich etwas das entweder lokal oder im Modul definiert sein muss. Ist es aber nicht.
Ich übernahm einfach den New-Style, und ging davon aus, dass da nichts weiter gemacht werden muss.
Denn im alten Format wird close ja auch nicht definiert, her werden die Slots und Signale über QtCore importiert.
Denn im alten Format wird close ja auch nicht definiert, her werden die Slots und Signale über QtCore importiert.
Code: Alles auswählen
self.connect(mnuMainWindowClose, SIGNAL('triggered()'), SLOT('close()'))
- pillmuncher
- User
- Beiträge: 1527
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
@Sophus: Auch hier hilft ein Vergleich:
Und ja, das sind Grundlagen, die man mit dem Durcharbeiten eines Tutorials leicht erlernen kann. Egal welcher Lerntyp man ist.
Offensichtlich ein anderer Fehler, als der zuerst von dir gezeigte:Traceback (most recent call last):
File "D:\Dan\Python\Xarphus\MDIForm.py", line 140, in <module>
MDIWindow = MDIFormular()
File "D:\Dan\Python\Xarphus\MDIForm.py", line 88, in __init__
self.mnuMainWindowClose.triggered.connect(close)
NameError: global name 'close' is not defined
Wie Lou Reed immer sagte: "I believe everything is detail."Traceback (most recent call last):
File "D:\Dan\Python\Xarphus\MDIForm.py", line 137, in <module>
MDIWindow = MDIFormular()
File "D:\Dan\Python\Xarphus\MDIForm.py", line 85, in __init__
self.mnuMainWindowClose.triggered.connect(close)
AttributeError: 'MDIFormular' object has no attribute 'mnuMainWindowClose'
Und wieder eine Variation über dasselbe Thema:Sophus hat geschrieben:Er kommt also auf "close" nicht klar?
Code: Alles auswählen
class A(object):
def __init__(self):
self.close()
def close(self):
print "closing"
a = A()
class B(object):
def __init__(self):
close()
def close(self):
print "closing"
b = B()
In specifications, Murphy's Law supersedes Ohm's.
Auf Grund deiner Hilfestellungen habe ich nun folgendes gemacht, pillmuncher:
Frage, ist das nun in deinem Auge richtig? Auch wenn das Programm läuft, wollte ich nochmal nachfragen. Aber dann habe ich eine weitere Frage, wieso beim alten Syntax nur einmal eine self-Methode angewendet werden braucht, und beim close gar nicht? Genauso musste bei "mnuMainWindowClose" ebenso kein self gesetzt werden. Meine logische Erklärung wäre, weil die Objekte innerhalb der Klammer stehen und durch die self-Methode vor der Klammer mit self versehen werden - man spart hier sozusagen die Arbeit, während in der neuen Methode zwar der Syntax kürzer ist, aber man dennoch zwei Maildie self-Methode anwenden muss. Wenn ich davon ausgehen darf, dass meine Logik richtig ist, dann kann man meines Erachtens getrost beim alten Syntax bleiben. Keine Ahnung warum BlackJack immer und immer wieder auf den New-Style herumpocht - als ob man dadurch was gewonnen hätte. Ich meine, im "old Style" hat ja alles geklappt - nur beim Hinzufügen des neuen Formats/Syntax bekam ich ja erst Probleme.
Code: Alles auswählen
class MDIFormular(QMainWindow):
# Vererbung aktivieren, angeben, dass es keine Elternform hat
def __init__ (self, parent=None):
QMainWindow.__init__(self, parent) #
...
# Menupunkt bekommt eine Beschriftung, hier 'Beenden'
self.mnuMainWindowClose = QAction ('Beenden', self)
# Hier wird zu der Beschrifung hinzugefügt, über welche Tastenkombinationen
# man dwn MainWindow beenden kann.
self.mnuMainWindowClose.setShortcut('Ctrl+Q')
# Sobald man mit der Maus über das Untermenu fährt, erscheint in der Statusbar
# der Text, hier 'Programm beenden'.
self.mnuMainWindowClose.setStatusTip('Programm beenden')
# Klickt man auf auf das Untermenu "MainWindowClose" wird ein bestimmtes Ereignis
# ausgelöst, hier wird der MainWindow geschlossen.
#self.connect(mnuMainWindowClose, SIGNAL('triggered()'), SLOT('close()'))
self.mnuMainWindowClose.triggered.connect(self.close)
...
MNUL_Verwaltung.addAction(self.mnuMainWindowClose)
...
Code: Alles auswählen
self.connect(mnuMainWindowClose, SIGNAL('triggered()'), SLOT('close()'))
- pillmuncher
- User
- Beiträge: 1527
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
Äh, nein. Deine dir sicherlich logisch vorkommende Erklärung ist völlig verkehrt. Ich weiß gar nicht, wie ich dir da Hilfestellung geben soll, ohne dabei das halbe Tutorial abzuschreiben. Bitte glaube allen hier, die dir dessen Lektüre bereits nahegelegt haben und arbeite es durch. Wir empfehlen das nicht als Initiationsritus a la "Wir haben und da durchgekämpft, also musst du das auch tun, sonst bist du kein richtiger Mann" oder so, sondern wir empfehlen es, weil es völlig sinnfrei ist, Anfängern alle drei Tage immer wieder dieselben Dinge zu erklären, die sowieso schon im Tutorial stehen. Wer hier im Forum Hilfestellung gibt, macht das idR. in seiner Freizeit, und ehrlich gesagt, meine Freizeit möchte ich nicht damit verbringen, Texte abzuschreiben. Und warum sollte man aus einem vom Tutorial abgeschriebenen Text besser lernen können sollte, als aus dem Tutorial selbst?Sophus hat geschrieben:...habe ich eine weitere Frage, wieso beim alten Syntax nur einmal eine self-Methode angewendet werden braucht, und beim close gar nicht? Genauso musste bei "mnuMainWindowClose" ebenso kein self gesetzt werden. Meine logische Erklärung wäre, weil die Objekte innerhalb der Klammer stehen und durch die self-Methode vor der Klammer mit self versehen werden - man spart hier sozusagen die Arbeit, während in der neuen Methode zwar der Syntax kürzer ist, aber man dennoch zwei Maildie self-Methode anwenden muss.
Falls (einfaches Fach-) Englisch für dich kein Problem ist, empfehle ich auch "Learn Python The Hard Way". Nicht vom Namen abschrecken lassen, es ist sehr gut. Es ist eher praktisch angelegt, da es primär auf kurzen Übungen aufbaut, anstatt länglicher theoretischer Erklärungen.
In specifications, Murphy's Law supersedes Ohm's.
Hey pillmuncher, vielen Dank für den Link. Ich werde es mir anschauen. 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.
Aber kommen wir mal weg von meinem Lehramt. Bestes Beisiel wäre eine Gebrauchsanweisung. Ich könnte ja zu meinen Freunden sagen "Lest euch erstmal die Gebrauchsanweisung durch, und wenn dann noch Fragen sind, helfe ich gerne", oder aber ich sage "Komm, wir setzen uns gemeinsam ran, ich zeige dir erstmal wo der An- und Ausschalt-Knopf ist, ich zeige dir, wie man mit der Fernbedienung umgeht, und dann die Einstellungen im Fernseher etc. So lasse ich die Person nicht mit der Gebrauchsanweisung alleine, sondern gehe quasi mit.
Und die Haltung von wegen "lest erstmal dies und jenes, und wenn du dir ein großes Paket an Wissen angeeignet hast, und Ergänzungsfragen hast, kannst du gerne zu uns kommen, vorher nicht". Und genau das Gefühl bekomme ich jedesmal. Mir ist es klar, dass dies alles freiwillig ist, schließlich bin ich schon seit 1996 im Internet unterwegs - also erzählt ihr mir nichts Neues, wie ein Forum funktioniert. Ich sehe es so, wer sich freiwillig in einem Forum anmeldet, und freiwillig helfen will, sollte nicht im gleichen Atemzug aufschreien "Ja, aber unsere Zeit ist kostbar". Dann sollte diejenige oder derjenige sich aus dem Forum abmelden oder sich in Foren für Fortgeschrittene anmelden, wo man quasi nur hier und da kleine Hilfestellungen geben braucht - im Grunde sind die Mitglieder dann ja schon fortgeschritten.
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. Schon in der Antike hatte Plato sich schon Gedanken darüber gemacht. Er hätte ja auch sagen können "Hier, ich habe dir einen Text ins Stein gemeißelt, jetzt lern du mal, und wenn du Fragen hast, komme zu mir, aber bloß nicht vorher."
Gruß
Sophus
Aber kommen wir mal weg von meinem Lehramt. Bestes Beisiel wäre eine Gebrauchsanweisung. Ich könnte ja zu meinen Freunden sagen "Lest euch erstmal die Gebrauchsanweisung durch, und wenn dann noch Fragen sind, helfe ich gerne", oder aber ich sage "Komm, wir setzen uns gemeinsam ran, ich zeige dir erstmal wo der An- und Ausschalt-Knopf ist, ich zeige dir, wie man mit der Fernbedienung umgeht, und dann die Einstellungen im Fernseher etc. So lasse ich die Person nicht mit der Gebrauchsanweisung alleine, sondern gehe quasi mit.
Und die Haltung von wegen "lest erstmal dies und jenes, und wenn du dir ein großes Paket an Wissen angeeignet hast, und Ergänzungsfragen hast, kannst du gerne zu uns kommen, vorher nicht". Und genau das Gefühl bekomme ich jedesmal. Mir ist es klar, dass dies alles freiwillig ist, schließlich bin ich schon seit 1996 im Internet unterwegs - also erzählt ihr mir nichts Neues, wie ein Forum funktioniert. Ich sehe es so, wer sich freiwillig in einem Forum anmeldet, und freiwillig helfen will, sollte nicht im gleichen Atemzug aufschreien "Ja, aber unsere Zeit ist kostbar". Dann sollte diejenige oder derjenige sich aus dem Forum abmelden oder sich in Foren für Fortgeschrittene anmelden, wo man quasi nur hier und da kleine Hilfestellungen geben braucht - im Grunde sind die Mitglieder dann ja schon fortgeschritten.
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. Schon in der Antike hatte Plato sich schon Gedanken darüber gemacht. Er hätte ja auch sagen können "Hier, ich habe dir einen Text ins Stein gemeißelt, jetzt lern du mal, und wenn du Fragen hast, komme zu mir, aber bloß nicht vorher."
Gruß
Sophus
@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.
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.
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:
oder
Code: Alles auswählen
a = 12
b = a * 2
c = a + b
print c
Code: Alles auswählen
a = 1
if (a <= 1):
print "If-Bedingung erfüllt"
@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…
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:

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 schlechthinDie 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.

- pillmuncher
- User
- Beiträge: 1527
- 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:
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.
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.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.

Wo wir gerade bei Ans-Bein-Pinkeln sind: Geben (angehende) Lehrer bei Zitaten jetzt keine Quelle mehr an?

Das Leben ist wie ein Tennisball.
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.pillmuncher hat geschrieben: Warum haben so viele noobs das Bedürfnis, den Regulars hier ans Bein zu pinkeln?
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.
jomei, niemand ist vollkommen.....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?
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!!!
- pillmuncher
- User
- Beiträge: 1527
- 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.
Im Übrigen halte ich die ganze Angelegenheit inzwischen für eine Inkarnation hiervon.
In specifications, Murphy's Law supersedes Ohm's.
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.
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.