
Ich habe ein Problem... mit meiner Einstellung (Psychologie)
@St.Solitudinis: Vielleicht ist Scratch für den Anfang besser für Dich geeignet als Python. Da kann man zum Beispiel schon mal keine Syntaxfehler machen. 

Ich schließe mich dieser Einschätzung an. Auch (gute!) Musik wird nicht einfach so durch Herumklicken in Cubase produziert. Oder Kunst allgemein. Dafür bedarf es guter Kenntnis der Grundlagen und viel Zeit. Die Software vereinfacht es lediglich und erlaubt Leuten zu kollaborieren. Beim Programmieren fängt man meist damit an die Grundlagen vom gewünschtem Thema zu Recherchieren, sich das grobe Design zu überlegen, einen kleinen Teil aufzubauen, durchzutesten, den zu erweitern und das immer wieder und wieder bis die Software den gewünschten Stand erreicht hat. Danach korrigiert man Fehler, verbessert das Design und kann noch sein restliches Leben mit der Pflege dieser Software verbringen da bekanntlicherweise wenig perfekt ist.StefanLawl hat geschrieben:Ich habe das Gefühl, dass St.Solitudinis denkt, dass Programmierung oder viel mehr Designen folgendermaßen geht: Man hat ein Fenster mit vielen Buttons, Funktionen und Bausteinen, die setzt man alle nach Belieben zusammen, und zack: Programm geschrieben.
Vielleicht ist auch Kunst nicht der richtige Vergleich zur Programmierung, mich erinnert es eher ans Kochen. Die meisten kommen bestens damit klar grundlegendes zu kochen oder nur auswärts zu essen. Einige versuchen sich an mehr aus Spaß an der Sache. Andere wollen es professionell machen und merken dass es weniger Spaß macht als erwartet. Doch egal wie man es macht, es gibt Grundlagen die man beherrschen sollte und Rezepte die man stur befolgen kann oder mit Kreativität verbessern, wenn nicht sogar eigene erschaffen.
Wenn du wissen willst wie man eine GUI baut, lern die Grundlagen von GUI-Toolkits und dann die Grundlagen die man braucht um diese gescheit zu verwenden (OOP!). Wenn du wissen willst wie Animation verwendbar ist, dann erlerne dessen Grundlagen und wie die sich in deinem GUI-Toolkit verwenden lassen. Wenn es ein Spiel werden soll, dann erlerne OpenGL und finde passende Bindings. Und so weiter. Aber all das wird dir nichts bringen wenn es dir an den absoluten Grundlagen hapert und die werden nun mal gern mit Mathematik erläutert, einfach weil es eine elementare Sprache ist mit der sich vieles in der Programmierung veranschaulichen lässt.
Eine brauchbare Klickibunti-Umgebung mit der du etwas Sinnvolles hinbekommst gibt es wie du sie dir vorstellst eher nicht. Selbst bei Visual Basic 6 musste man auf die Buttons doppelklicken und Code reinschreiben. Scratch ist etwas für Grundschulkinder. Akzeptiere dass deine Vorstellungen von Programmierung weit an der Realität vorbei sind und es dir nichts bringen wird dich weiter an denen aufzuhalten. Wenn du trotzdem weitermachen willst, gibt es genug (englischsprachiges) Material zum Eigenstudium da draußen. Ich wünsche dir viel Spaß beim Lernen.
@St.Solitudinis
Du wirst keine Programmiersprache mal eben so in paar Wochen erlernen, außer du hast Autismus.
Ich programmiere nun seit ca. 6 Monaten relativ unregelmäßig und muss immer noch einige "Basics" nachschlagen. In deinen Büchern wird es möglichst einfach für einen Anfänger beschrieben mit Zahlen! Wenn du nicht einmal damit klar kommst, wie willst du dann einen einfachen Taschenrechner programmieren?
Je nach deiner Lerngeschwindigkeit werden die ersten Monate ziemlich langweilig, außer du bist ein Fan von stundenlangem copy&past - debuggen. Erst Theorie dann Praxis! Du kannst mit einem Physikbuch aus der Schule auch keine Kernspaltung erzeugen.
Als Programmierer hast du gar keine andere Wahl als dich von kleinen Erfolgen zu Motivieren. Programmieren ist wie einen Baum pflanzen, du beginnst beim Kern und erfreust dich über jedes neue Blatt, bis dein Baum Früchte trägt.
Du wirst keine Programmiersprache mal eben so in paar Wochen erlernen, außer du hast Autismus.
Ich programmiere nun seit ca. 6 Monaten relativ unregelmäßig und muss immer noch einige "Basics" nachschlagen. In deinen Büchern wird es möglichst einfach für einen Anfänger beschrieben mit Zahlen! Wenn du nicht einmal damit klar kommst, wie willst du dann einen einfachen Taschenrechner programmieren?
Je nach deiner Lerngeschwindigkeit werden die ersten Monate ziemlich langweilig, außer du bist ein Fan von stundenlangem copy&past - debuggen. Erst Theorie dann Praxis! Du kannst mit einem Physikbuch aus der Schule auch keine Kernspaltung erzeugen.
Als Programmierer hast du gar keine andere Wahl als dich von kleinen Erfolgen zu Motivieren. Programmieren ist wie einen Baum pflanzen, du beginnst beim Kern und erfreust dich über jedes neue Blatt, bis dein Baum Früchte trägt.
Genau das ist sein Problem. Auch die Frage nach "Was hat das mit Farben in einem Fenster bringen zu tun?" zeigt eindeutig in diese Richtung.StefanLawl hat geschrieben:Ich habe das Gefühl, dass St.Solitudinis denkt, dass Programmierung oder viel mehr Designen folgendermaßen geht: Man hat ein Fenster mit vielen Buttons, Funktionen und Bausteinen, die setzt man alle nach Belieben zusammen, und zack: Programm geschrieben.
Wenn Programmierung für einen nur das ist, was man an einer Oberfläche sieht, dann ist man mit dem Erstellen von Webseiten oder dem Rendern von Modellen in Blender besser bedient als mit echter Programmierung. Programmierung und Softwareentwicklung ist aber weit mehr als das. Ich behaupte mal, das der Großteil der Software die ich beruflich in den letzten Jahren geschrieben habe überhaupt keine Ausgabe auf einem Bildschirm vorgenommen hat.
Von daher: Lieber St. Solitudinis, tu dir das nicht länger an. Programmierung ist nicht das Ding das du suchst.
- noisefloor
- User
- Beiträge: 4160
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
was mir zu dem Thema noch einfällt ist ein älterer Blogpost von mir, in dem es um den "Overhead" geht, wenn man ein (Python-) Programm mit GUI schreiben möchte:
http://noisefloor-net.blogspot.de/2012/ ... o-gui.html
Gilt auch heute noch. Von daher sollte man sich als Anfänger erst Mal gar nicht mit so was beschäftigen. Zumal man mit ein bisschen Python-Erfahrung zu Modulen, Klassen und Methoden sich deutlich leichter tut als wenn ein GUI-Framework wie Qt oder GTK direkt zu Anfang auf einen "herein bricht".
Gruß, noisefloor
was mir zu dem Thema noch einfällt ist ein älterer Blogpost von mir, in dem es um den "Overhead" geht, wenn man ein (Python-) Programm mit GUI schreiben möchte:
http://noisefloor-net.blogspot.de/2012/ ... o-gui.html
Gilt auch heute noch. Von daher sollte man sich als Anfänger erst Mal gar nicht mit so was beschäftigen. Zumal man mit ein bisschen Python-Erfahrung zu Modulen, Klassen und Methoden sich deutlich leichter tut als wenn ein GUI-Framework wie Qt oder GTK direkt zu Anfang auf einen "herein bricht".
Gruß, noisefloor
@noisefloor: Im Qt-Beispiel ist ein kleiner Fehler: Bei `super()` ist der Klassenname falsch geschrieben.
Ich teile grundsätzlich das man bis OOP gekommen ist, bevor man da noch GUIs oben drauf packt. Allerdings fragen Anfänger ja auch immer nach grafischen Werkzeugen zum erstellen der GUI. Damit kann man den Code doch ein wenig kürzen. Beispiel bei Qt:
Die ``test.ui`` ist mit dem QtDesigner erstellt. Für Gtk gibt's Glade.
Ich teile grundsätzlich das man bis OOP gekommen ist, bevor man da noch GUIs oben drauf packt. Allerdings fragen Anfänger ja auch immer nach grafischen Werkzeugen zum erstellen der GUI. Damit kann man den Code doch ein wenig kürzen. Beispiel bei Qt:
Code: Alles auswählen
#!/usr/bin/env python
# coding: utf8
import sys
from PyQt4 import QtGui, uic
class SimpleQt(object):
def __init__(self):
self.ui = uic.loadUi('test.ui')
self.ui.button.clicked.connect(self.rechnen)
self.ui.show()
def rechnen(self):
wert = self.ui.eingabe.text()
try:
zahl = int(wert)
except ValueError:
message_box = QtGui.QMessageBox()
message_box.setText(u'Der eingegebene Wert ist keine ganze Zahl')
message_box.exec_()
else:
self.ui.label.setText(unicode(zahl * zahl))
def main():
app = QtGui.QApplication(sys.argv)
simple_qt = SimpleQt()
sys.exit(app.exec_())
if __name__ == '__main__':
main()