Die Veränderung des Selbst

So dumm wie damals

Da steh ich nun, ich armer Tor, und bin so klug als wie zuvor.

Johann Wolfgang von GoetheFaust

Gefühlt kann ich heute weniger bis maximal genauso viel wie damals. Manchmal stimmt das sicherlich auch, aber als ich mir kürzlich meinen drei Jahre alten Code anschaute, fiel mir auf, dass ich mich scheinbar doch irgendwie weiterentwickelte.

Leider wird das Problem in Zukunft voraussichtlich noch schlimmer, denn den Code, den ich auf Arbeit schreibe, kann ich zuhause nicht ohne weiteres aufrufen und somit fehlt mir da ein möglicher Vergleich. Sich mit anderen zu vergleichen ist zwar wenig sinnvoll, da man sich nicht nach anderen richten sollte (extrinsisch), sondern nach sich selbst (intrinsisch). Allerdings erachte ich es als wichtig, sich ab und an vor Augen zu führen, wie man sich selbst entwickelt hat. Ein Tagebuch ist ein grandioses Instrument dafür, aber auch sämtliche selbst geschriebenen Dokumente sind perfekt dafür geeignet. Auffällig ist, dass sich nicht nur der Schreibstil verändert, sondern auch die eigene Persönlichkeit, Charakterzüge, Ideale und Interessen. Das Selbst verändert sich vermutlich ständig (rein rational betrachtet arbeitet das Gehirn nahezu durchgehend und bildet daher neue Synapsen, erweitert oder restrukturiert das neuronale Netz, o.ä.), aber man kriegt es nicht mit.

Alter Code

Im Studium hatte ich im 1. Semester Programmierung mit C. Damals gefiel mir das gar nicht, mittlerweile kann ich einige Dinge durch diese Vorkenntnisse jedoch viel besser verstehen. Wert- und Referenztypen (in C#) kann ich durch meine Erfahrungen mit der Zeiger-Arithmetik einfacher nachvollziehen. Außerdem muss ich sagen, dass es sinnvoller ist, sich erst praktische Erfahrungen anzueignen und erst dann zu studieren. Besonders in der Informatik. Leider sorgt die Schule für keinerlei Verständnis, sondern es bleibt bei den Informationen die das Hirn dann wahllos zusammenwürfelt und versucht miteinander zu verbinden. Es entsteht also ein vollkommen ineffizientes und schlechtes neuronales Netz im Gehirn und dadurch, dass die Synapsenbildung irreversibel ist, bleibt eine ganze Menge Müll bis zum Rest des Lebens im Gehirn. Aber naja…

Zurück zum Thema: hier etwas von meinem alten C Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
#include<string.h>
int main()
{
char string1[200],string2[20]; // beide strings
char *position; // die position des gefundenen string2 im string1
int counter=0; // wie oft wurde string2 gefunden?
printf("Den grossen String bitte: ");
fgets(string1,sizeof string1,stdin); // den string einlesen, hier habe ich darauf zurueckgegriffen, da scanf keine leerzeichen akzeptiert
*strchr(string1,'\n')='\0'; // wieder das \n zeichen entfernen
printf("Und den kleinen: ");
fgets(string2,sizeof string2,stdin);
*strchr(string2,'\n')='\0';
position=strstr(string1,string2); // die erste position finden. sollte die naemlich gleich NULL sein, brauchen wir gar nicht weitersuchen
while(position!=NULL)
{
counter++; // gefunden!
position=strstr(position+1,string2); // und position ab der zuletzt gefundenen position, nur 1 feld weiter, sonst laufen wir endlos weiter, weitersuchen
}
printf("Der kleine String ist %d mal im grossen enthalten.",counter);
return 0;
}

Ja, Einrückungen sind quasi unwichtig! Braucht kein Mensch! Zum Glück habe ich vollkommen verständliche Kommentare geschrieben und weiß auch total, was an den jeweiligen Stellen passiert. Zu meiner Verteidigung: die Variablennamen waren oftmals vorgegeben. In dem Beispiel hier ist es jedoch schon wesentlich besser als noch ältere Code-Zeilen von mir:

1
2
3
4
5
6
7
// Vereinbarungen
int i,a,b,f,n;

printf ("i, a, b, f, n\n");

// Befehle des Programms
i=0,a=1,b=1,f=1;

Was? Iabfn? Was ist ein Iabfn? Vollkommen selbsterklärend und gut leserlich. Sollte sich jemand den Code nach ~3 Jahren nochmal anschauen, wird man direkt wissen, was in den einzelnen Zeilen passiert und wofür diese “sprechenden Variablennamen” gebraucht werden.

Aber mal ehrlich, mein Schreibstil war doch wohl komplett grausig, oder?

und position ab der zuletzt gefundenen position, nur 1 feld weiter, sonst laufen wir endlos weiter, weitersuchen

Vergangenheits-IchC-Code

Ist das Deutsch? Da fehlen doch ganze Worte um überhaupt einen Sinn herstellen zu können?!

Kommentare sollen eigentlich dazu dienen, den Code für alle verständlicher zu machen. Mangelt es dabei aber schon an der Fähigkeit, einen ordentlichen deutschen Satz zu formulieren, wird sich so etwas wie “Verständnis” gar nicht erst entwickeln können.

Schauen wir uns mal etwas aktuelleres an

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
for (i; i < $(".projectEntryImage").length; i++) {

//console.log("[LOG] " + projects[i]);

if (opacity >= 0.5) opacity = opacity - (i / 15);
else opacity = 0.5;
if (i == 0)
$(".projectEntryOverlay").eq(i).css("opacity", 1);
else
$(".projectEntryOverlay").eq(i).css("opacity", opacity);

$(".projectEntryImage").eq(i).css("zIndex", layer);

$(".projectEntry").eq(i).find(".linkSnippet").css("zIndex", layer + 1);
layer -= 2; // 2, because there must be a layer between 2 projects for the linkSnippets

if (($(".projectEntry").eq(i).find(".linkSnippet").length > 1) && isMobile == false) {

calcRight = 0;

for (j = 0; j < $(".projectEntry").eq(i).find(".linkSnippet").length; j++) {
$(".projectEntry").eq(i).find(".linkSnippet").eq(j).css("right", calcRight);
calcRight += 80;
}
} else if (($(".projectEntry").eq(i).find(".linkSnippet").length > 1) && isMobile == true) {

calcHeight = 300 / $(".projectEntry").eq(i).find(".linkSnippet").length; // result represents the pixel amount each snippet should be moved downwards aswell

$(".projectEntry").eq(i).find(".linkSnippet").css("height", calcHeight);

for (j = 1; j < $(".projectEntry").eq(i).find(".linkSnippet").length; j++) {
$(".projectEntry").eq(i).find(".linkSnippet").eq(j).css("top", calcHeight);
calcHeight += calcHeight;
}
}
}

Das ist ein Code-Snippet aus meinem Portfolio-Redesign, welches nun auch schon knapp 1 Jahr alt ist (und auch mal wieder überarbeitet werden sollte).
Gut, Kommentare fehlen nun nahezu gänzlich, aber immerhin ist der Code vernünftig formatiert und somit halbwegs leserlich.

Auch die Sprache ist eine ganz andere geworden. Von einer stark typisierten Sprache (C) bin ich bei einer sehr dynamisch typisierten Sprache (JavaScript) gelandet. Das ist das Ergebnis von learning by doing. Ich hatte damals lediglich den Codecademy JS Kurs und ein paar weitere (kurze) Online-Kurse zum Thema Web Development durchgearbeitet und einige wenige Kapitel aus einem veralteten Buch gelesen. Im Endeffekt wende ich auch nur die Grundstrukturen an (if/else-Anweisungen, Schleifen, usw.) und verbinde das mit meiner jQuery-Erfahrung.

Erst kürzlich habe ich angefangen ein aktuelles JS Buch zu lesen, Eloquent JavaScript, welches sogar kostenlos ist. Damit will ich meine Kenntnisse in der Sprache vertiefen und wirklich lernen, wie man effizienten und sauberen Code schreibt.

Und sonst?

Sonst habe ich mich im wesentlichen vermutlich kaum verändert. Ich versuche mittlerweile alles simpler zu gestalten (damals wollte ich am besten für jede Aufgabe ein eigenständiges Gerät haben, habe viel Wert auf kabelgebundene Peripherie gelegt und in einem reinen Kabelbaum gelebt…), erst kürzlich habe ich meinen alten DIY-Schreibtisch abgerissen. Der alte Schreibtisch war viel zu groß (ging über 2 Ecken, wie der Buchstabe U), die Seiten habe ich maximal zur “Müll”-Ablage genutzt, aber nie wirklich effektiv. Nun habe ich einen simplen, schwarzen Tisch von Ikea mit einer Breite von 2 Metern und richte mir den Platz nach und nach schick ein.

Abgesehen davon bin ich wieder ruhiger geworden, ich reiß meine Klappe nicht mehr unnötig weit auf (meistens zumindest…) und kriege es größtenteils sogar ganz gut hin, keine “Scheiße zu labern”. Ein Nebeneffekt ist jedoch, dass sich nun vieles in meinem Kopf abspielt. Diskussionen führe ich in meinem Kopf, meine Wut versuche ich auch dort zu behalten (leider). Gäbe es diesen Nebeneffekt nicht, würde ich jedoch höchstwahrscheinlich auch nicht diese Zeilen schreiben. Irgendwie hat tatsächlich alles zwei Seiten.

Ich bin gespannt, wo die Reise hingeht.