Nach 2 Jahren noch kein "Code-Verständnis" - sollte ich aufgeben?

Thread Starter
Mitglied seit
05.06.2022
Beiträge
14
Moin Leute,

ich versuche mich kurz zufassen;

Ich habe vor 2 Jahren aus Langeweile angefangen WoW Addons (ja bin alt und spiele das noch) zu schreiben - vorher nie was mit IT oder Programmieren zu tun gehabt.
Daher LUA ja als anfängerfreundlich bekannt ist, besser noch als Python wie manche - und ich - finden, war der Einstieg erstmal gar nicht so schwer.
print("hello world") war schnell gemacht. Syntax ging auch schnell rein.
Habe mir auch andere Skriptsprachen angeschaut, da wurde mir schon schwindelig zum Teil...

Wie auch immer, habe jetzt in den letzten 2 Jahren ausprobiert und ausprobiert, und egal wie schwer es war, ich habe mir immer gesagt: "Bleib dran, bald machts 'klick'!",
leider kam das bis jetzt nicht. Ich kann zwar den Code den ich sehe und schreibe lesen, aber verstehen tue ich ihn meist sehr schnell nicht bzw. nicht mehr.
Ich verliere immer so schnell den Überblick über die Zusammenhänge oder die Strukturen die dahinter stecken.

Als Beispiel mal eine simple Funktion geschrieben von Blizzard:

Code:
function ActionButton_UpdateHotkeys(actionButtonType)
    if ( not actionButtonType ) then
        actionButtonType = "ACTIONBUTTON";
    end
    local hotkey = getglobal(this:GetName().."HotKey");
    local action = actionButtonType..this:GetID();
    local button = ActionButton_GetPagedID(this);
    if ( GetBindingText(GetBindingKey(action), "KEY_", 1) == "" ) then
        if ( not HasAction(button) ) then
            hotkey:SetText("");
        elseif ( ActionHasRange(button) ) then
            if ( IsActionInRange(button) ) then
                hotkey:SetText(RANGE_INDICATOR);
                hotkey:SetTextHeight(8);
                hotkey:SetPoint("TOPRIGHT", this:GetName(), "TOPRIGHT", -3, 5);
            else
                hotkey:SetText("");
            end
        end
    else
        hotkey:SetText(GetBindingText(GetBindingKey(action), "KEY_", 1));
    end
end

Ich kann diese Funktion zwar lesen, aber wenn es darum geht den vollen Zusammenhang zu begreifen und beizubehalten,
was ist in den Parametern, wer ruft die Funktion auf, was ist der Inhalt der Variablen, was machen die Funktionen innerhalb der Funktion (GetBindingText(), GetBindingKey() usw.),
alles nachzugucken und beizubehalten, das ist für mich selbst nach 2 Jahren einfach noch super anstrengend, und es wird nicht besser.
Und das ist nur eine einzige Funktion innerhalb einer riesen Datei, und auch noch eine einfache.
Aber auch auf großer Ebene - wenn ich Code von anderen lese, fällt es mir immer so schwer zu begreifen, wie der ganze "Laden" letztlich läuft.
Mein "Code-Verständnis" wird einfach net besser. :/

Ich begreife das nicht. Bin ich einfach nur dumm, erwarte ich zuviel, wie machen die ganzen IT-Leute das, die mit noch viel komplizierterem Code arbeiten?

Mfg
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Nicht jeder kann alles. Ich kann auch nicht zeichnen oder malen, dafür verstehe ich aber eigentlich jeden code :)

Vielleicht fehlt dir auch nur die richtige Unterstützung, oder du machst das falsche. Ich persönlich würde ja webentwicklung jeglicher ARt empfehlen. Hat einen unglaublich seichten Einstieg und KIs wie Claude Code oder Codex können einem eigentlich alles erklären.

Aufgeben würde ich nur, wenn es keinen Spaß mehr macht.
 
Vielleicht fehlt dir auch nur die richtige Unterstützung, oder du machst das falsche. (...) und KIs wie Claude Code oder Codex können einem eigentlich alles erklären.

Moin moin!

Ja ich glaube du hast da was richtiges gesagt. Ich habe gestern mal diesen Artikel hier gelesen, und mir mal dieses Youtube-Video hier angeguckt, und
ich bekomme so langsam das Gefühl, dass Chatbots mein Problem sind. Ich habe von Anfang an mit KI gearbeitet, und ich merke immer mehr, wie ich selber
gar nicht richtig Code schreiben oder lesen kann, zumindest nicht richtig. Ich quassel einfach nur Chatbots voll und copy/paste dann alles, und schaue drüber,
aber ich selber muss nie die eigentlich Denkarbeit machen.

Deshalb habe ich jetzt mal folgendes gemacht, ich habe mein VScode mal komplett umgebaut und alles ausgeschaltet was es an tools gibt,
um es zu einem einfachen Notepad zu machen - keine Extensions, kein Syntax-Highlight, kein Linting oder Warnungen, keine KI, keine Tooltips, nichts mehr.
Mein Hirn muss jetzt alles alleine machen und wenn irgendwo ein '.' fehlt, dann muss ich den alleine finden. Mal schauen wie mein Hirn in den nächsten 2 Wochen damit klar kommt.
 
Zuletzt bearbeitet:
Bin seit > 30 Jahren Programmierer und kann dir echt den Tipp geben: quäl dich da durch und du wirst Erfolg haben. Es ist als wärst du in einem Land in dem dich keiner versteht und keiner verstehen will. Wenn du nicht verhungern willst dann lernst du die Sprache, auf Dauer hilft nur das...
 
Bin seit > 30 Jahren Programmierer und kann dir echt den Tipp geben: quäl dich da durch und du wirst Erfolg haben. Es ist als wärst du in einem Land in dem dich keiner versteht und keiner verstehen will. Wenn du nicht verhungern willst dann lernst du die Sprache, auf Dauer hilft nur das...

Moin moin, sorry für die späte Antwort, es verschlägt mich immer seltener ins Luxx heutzutage.

Zum Thema - ich bin tatsächlich immer noch dabei, und versuche mich immer noch dadurch zu kämpfen.
Ich würde auch sagen, dass es wohl doch etwas besser wird mit der Zeit,

aber wenn ich dann wiederum sowas hier sehe, wird mir übel...

Vor ca. einem Monat habe ich angefangen, mich an C ranzutrauen, mal schauen.
Es bleibt schwierig.
 
Mir geht es ähnlich, besonders wenn Variablen und Strukturen bedient werden müssen die nicht von mir stammen.

Irgendwann habe ich angefangen mit Kommentaren zu arbeiten.
Auch in Addons für WoW die ich geflickt oder geschrieben habe.
Am Anfang erstmal nen zwei drei Zeilen Bereich hingeklatscht, fix beschrieben was das Ziel womit und warum und dann los.

Das hilft ungemein, besonders wenn man nach all den Jahren genau weiß was man vergessen haben werden wird.
 
Wenn du es nicht beruflich machst und keinen Spass daran hast, lass es.
Ein Hobby soll Spass machen und nicht belasten.

Ich trage auch seit über 20 Jahre den Wunsch mit mir rum, zu programmieren. Hab einige Bücher gekauft, PHP, XML, C, C++, später auch mal Python, bash oder PS. Ich hab da auch keinen dauerhaften Zugang gefunden. Jetzt mit KI bin ich ehrlich gesagt fast froh, nicht noch mehr Zeit auf den Bereich verschwendet zu haben. Wenn ich sowas brauche, copy/paste ich mir alles zusammen.
Und ich bin beruflich IT-ler btw...

Hab kein schlechtes Gewissen. Wie gesagt, entweder du kommst wieder zum unschuldigen Spass zurück oder hak es ab und such dir ein Hobby, dass mehr Spass macht und dich erfüllt.
 
Mir geht es ähnlich, besonders wenn Variablen und Strukturen bedient werden müssen die nicht von mir stammen.

Irgendwann habe ich angefangen mit Kommentaren zu arbeiten.
Auch in Addons für WoW die ich geflickt oder geschrieben habe.
Am Anfang erstmal nen zwei drei Zeilen Bereich hingeklatscht, fix beschrieben was das Ziel womit und warum und dann los.

Das hilft ungemein, besonders wenn man nach all den Jahren genau weiß was man vergessen haben werden wird.

This - Kommentare sind das A&O. Mir kann keiner Erzählen das er bei z.b. 600 Zeilen im zweiten Drittel noch genau weiß was am Anfang war (außer in groben Zügen). Kommentare und in Sektionen schreiben ---> So behält man den Überblick.
 
Mir geht es ähnlich, besonders wenn Variablen und Strukturen bedient werden müssen die nicht von mir stammen.

Irgendwann habe ich angefangen mit Kommentaren zu arbeiten.
Auch in Addons für WoW die ich geflickt oder geschrieben habe.
Daher du auch an WoW Addons gearbeitet hast - wie würdest du prinzipiell vorgehen,
wenn du ein großes Addon wie WeakAuras analysieren müsstest?
Schreibst du dann auch Notizen in den fremden Code oder in dein Notepad?

This - Kommentare sind das A&O. Mir kann keiner Erzählen das er bei z.b. 600 Zeilen im zweiten Drittel noch genau weiß was am Anfang war (außer in groben Zügen). Kommentare und in Sektionen schreiben ---> So behält man den Überblick.
Ich habe mal den Satz gehört, dass Code sich selbst erklären sollte, und die meisten Kommentare überflüssig sind,
und sogar schädlich sein können, wenn man Code verändert und somit die Kommentare evtl. nicht mehr stimmen.
Was sagst du dazu?

Wenn du es nicht beruflich machst und keinen Spass daran hast, lass es.
Ein Hobby soll Spass machen und nicht belasten.
Nee also wenn das der Fall wäre, wäre ich ja nicht hier.
Wie du selbst sagst: "Ein Hobby soll Spass machen und nicht belasten.".

Jetzt mit KI bin ich ehrlich gesagt fast froh, nicht noch mehr Zeit auf den Bereich verschwendet zu haben.
Klingt so, als wenn es dir fast keinen Spaß macht (kleiner Scherz).

Ich habe den Thread ja gestartet, weil mich das copy/paste eben gelangweilt hat,
und ich endlich Verständnis für das Programmieren entwickeln möchte.

Per Hand schreiben und selber Probleme lösen fühlt sich weitaus besser an finde ich.
 
@matrixReworg33

Rausfinden an welchen APIs sich das Dingen bedient was wie und wen lädt und dann meine Minimalinstallation damals bemühen.
Da habe ich dann nur mein jeweiliges Addon genommen und mir angesehen, in aller Ruhe auf einem Char am Arsch der Welt ausserhalb von Chat und Gilde.
Dann auch gerne drin rum manipuliert und geschaut.
War es in WoW nicht auch so das man mittels /reload eine ganze Menge live verbauen und testen konnte?

Meine WoW Zeit ist seit Ende Shadowlands aber auch rum, nie wieder reingeschaut. Daher sind meine Infos auch nicht up to date.

Und natürlich sollte sich guter Code selbst erklären. Aber auch nur soweit das der jeweilige Autor nach nen paar Monaten des "nicht mehr Draufschauens" weiß was er getan hat.
Es verlangt niemand das ein Fremder auf anhieb versteht was ein anderer gemacht hat und man ohne Einarbeitung reinkommt.

Und wenn es an APIs und Workarrounds oder an Blizzards Unart geht andauernd Features zu beschneiden, umzubenennen, Monate verbugged zu lassen oder zu streichen ohne das gescheit zu kommunizieren, da ist ein Kommentar der dann alles sauber beschreibt, und sogar noch ein Datum trägt, reines Gold wert.
 
[...]
Ich habe mal den Satz gehört, dass Code sich selbst erklären sollte, und die meisten Kommentare überflüssig sind,
und sogar schädlich sein können, wenn man Code verändert und somit die Kommentare evtl. nicht mehr stimmen.
Was sagst du dazu?
[...]

Ganz ehrlich, wenn du etwas auf das Gerede von irgendwelchen Leuten hörst... DU musst doch damit klar kommen und nicht XYZ. (Edit: Nein, ich meine nicht @Zyxx :fresse: - man sagt das so )

Ich hab z.b. letztens einen Touchfreundlichen, extrem minimalistischen Musikspieler geschrieben weil es einfach weder in Flathub noch den Ubuntu/Debian Repositorys keinen passenden gab
(Ich brauchte einen der in meinen 10" System-Überwachungsmonitor passt, größtenteils frei Skalierbar ist UND Tasten hat die groß genug sind um via Touch bedient werden zu können, dabei ohne irgendwelche Albumbilder o.ä.).

Dort habe ich ALLES Sektioniert

· Konstanten wie Farben, Abtastrate, Bufferzeit, Abtast/Suchzeit für Ordner/Musikdaten und eben deren Standardsuchorte)
· Audio Engine
· API (öffentlich)
· GUI
· Config (letzter Titel, Größe des GUIs & Zoom)
· UI Aufbau (wie es gerendert wird)
· … und so weiter

jeweils dann an den Funktionen noch kurze Kommentare was etwas jeweils ist... So kann ich mir das auch nächstes Jahr nochmal anschauen und weiß direkt was wo hin gehört.
Ja - man könnte sie (die Kommentare) weglassen, vieles ist selbsterklärend... Und? Was interessiert mich das Geschwätz von anderen, sie gehen ihren Weg - ich meinen. (Nebenbei habe ich bspw in dem Projekt das erste mal CustomTkinter genutzt - es ist zwar Tkinter extrem ähnlich, aber dennoch heißen Funktionen mitunter anders - ohne Kommentare würde ich das wahrscheinlich in einigen Wochen nicht mehr wissen :vrizz: )

Edit: Falls du es dir mal anschauen möchtest (Funzt allerdings nur unter Linux, vorzugsweise Debian/Ubuntu)
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh