Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Guten Tag,

ich würde mich selbst als Programmieranfänger beschreiben und hoffe, ihr könnt mir bei einigen Fragen & Problemen helfen.

Ich lerne seit ca. 2 Jahre das Programmieren. Bisher war es aber so, dass ich mir immer verschiedene Sprachen angeschaut habe und eben die Grundlagen gelernt habe. Nun habe ich mich vor ca. 6 Monaten entschieden, bei C++ zu bleiben. Ziel ist es, GUI-Anwendungen und Spiele zu programmieren. Zu Zweiteres zähle ich keine unrealistischen 3D-Ultraspiele, die ich am besten sogar noch alleine programmiere, sondern kleinere Spiele, die sich zumindest vorerst im 2D-Bereich beschränken sollten.

Nun kommen wir auch schon zum Hauptproblem. Ich habe mir bisher mehrere Bücher durchgelesen und kenne viele Funktionalitäten der allgemeinen Programmierung und C++. Damit will ich sagen, dass ich vom Allgemeinwissen her eigentlich up to date bin. Ich kenne die Grundlagen, von Schleifen bis hin zur STL und habe mich auch mit der Objektorientierung befasst. Trotzdem weiß ich nie, wie ich beim Programmieren vorgehen soll.

Sei es, dass ich eine "Übungsaufgabe" von Freunden gestellt bekomme. Ich versuche sie zu lösen und komme an manchen Punkten nicht weiter. Ich weiß einfach nicht, wie man das "gelernte" auch sinnvoll anwendet. Gucke ich mir nun aber den Quellcode des Anderen an, scheint mir alles logisch und ich kann es sowohl nachvollziehen als auch verstehen. Dann stellt sich mir immer die Frage, wieso ich bloß selbst nicht darauf gekommen bin.

Und genau dies ist auch das, dass mich desöfteren demotiviert. Einerseits reicht es mir langsam mit der Konsole. Denn die Funktionalität anhand des Codes habe ich mittlerweile gelernt. Wenn ich mir dann aber nun diverse "Next-Way-Things" wie QT für die GUI-Programmierung anschaue, merke ich wieder, dass ich nicht weiß, wie ich vorgehen soll.

Gucke ich mir aber fertige QT-Konstrukte an, kann ich diese verstehen.

Ist dies normal? War dies bei euch genauso? Oder bin ich einfach nur zu "dumm" dafür?

Ich hoffe, dass ihr mir vielleicht einige Tipps geben könntet, wie ich mein Problem lösen könnte. Denn dieses "für das Eine zu gut, für das Andere zu schlecht" lässt mir keinen Mittelpunkt, mit dem ich mich befassen könnte. Dies hat die Folge, dass ich nach einiger Zeit des Lernens wieder eine "Lernpause" einrichte, da die Motivation wieder flöten ging.

Ich möchte noch anmerken, dass ich ein Autodidakt bin. Ich bringe mir alles selbstständig anhand eines Buches bei.

Liebe Grüße,

Geschrieben

Hi,

tja, das kenne ich auch. Ich glaube man muss dann schon genau analysieren, woran man scheitert. Das erfordert natürlich ein gewisses Durchhaltevermögen, aber genau das bringt einen ans Ziel. Bücher lesen gehört dazu, ist aber auf Dauer langweilig. Das demotiviert (mich) eher, als dass es was nutzt.

Wenn ich eine Idee versuche umzusetzen, komme ich irgendwann mal an einen Punkt, an dem ich nicht mehr weiter weiss. Dann versuche ich herauszufinden, ob andere das gleiche Problem schon irgendwie gelöst haben, oder versuche die konkrete Problemstellung in einem Forum zu schildern. Aber genau das ist wichtig: Was fehlt mir, um das Problem zu lösen? Kann ich das Problem überhaupt konkretisieren? Das ist leider oftmals sehr mühselig, aber anders geht es (bei mir zumindest) nicht.

Auch wichtig ist, dass man sich keine zu hohen Ziele setzt, das demotiviert genauso. Man sollte sich zudem davon verabschieden, immer alles komplett neu erfinden zu wollen. Wenn bestimmte Teile eines existierenden Programms das tun, was dein Programm tun soll, übernimm diese. Dabei lernt man auch eine Menge.

Geschrieben

dein problem ist scheinbar das du programmiersprachen lernst und nicht programmieren.

die syntax zu beherrschen und programme entwickeln sind zwei völlig verschiedene dinge.

du musst lernen wie du abstrakte probleme in code verwandelst. zu wissen was die funktion xy tut reicht nicht, du musst wissen wann du sie wofür einsetzen kannst.

möglicherweise hilft da mal ein buch das sich nicht mit einer speziellen sprache befasst:

Einführung in die Software-Entwicklung: Vom Programmieren zur erfolgreichen Software-Projektarbeit: Amazon.de: Hartmut Helmke, Frank Höppner, Rolf Isernhagen: Bücher

Geschrieben
dein problem ist scheinbar das du programmiersprachen lernst und nicht programmieren.

die syntax zu beherrschen und programme entwickeln sind zwei völlig verschiedene dinge.

du musst lernen wie du abstrakte probleme in code verwandelst. zu wissen was die funktion xy tut reicht nicht, du musst wissen wann du sie wofür einsetzen kannst.

Also ich würde sogar noch einen Schritt weiter gehen:

Das erlernen einer Programmiersprache ist das eigentlich nebensächliche am Programmiererdasein. Wichtiger ist schon, wie mein Vorredner sagte, dass man die Fähigkeit besitzt, abstrakte Probleme in Codezeilen zu formen.

Noch wichtiger ist, dass Du lernst, Probleme als solche zu erkennen und zu klassifizieren. Das heißt, Du musst in der Lage sein, von der Konkreten Aufgabe abstrahieren zu können, und eine allgemeine Lösungsstrategie zu formulieren.

Dabei gibt es einen einfachen Grundsatz: Divide et impera.

"Teile und Herrsche!"

Ein Problem wird derart unterteilt, dass Du die Teilaufgaben Lösen kannst.

Beispiel: Du sollst eine Balkengrafik auf den Bildschirm bringen.

Dieses Problem kannst Du ganz kleinteilig formulieren, dass Du quasi aus jedem Einzelschritt schon fast eine Codezeile generieren kannst: Wie erzeuge ich ein Ausgabefenster? Wie kann ich das erzeugte Fenster anzeigen lassen? Wie kann ich im Folgenden weiter darauf zugreifen? Wie kann ich einen Strich auf den Schirm zeichnen? Wie kann ich aus verschiedenen Strichen eine Blakengrafik entstehen lassen? Wie ist der Maßstab? Welche Werte repräsentiert ein Balken? etc. pp.

Kannst Du eine der vorangegangen Fragen nicht konkret mit einem Stück Code beantworten, musst Du diese Frage weiter zerlegen, bis Du es kannst.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...