HAUPTMENÜ I M P E R I A L   G A M E S
MS-DOSC 64InternChatPreviewAnimeHilfe

Allgemein
Privat
Kommentar

Intern - über Imperial Games

Der folgende Text beschreibt eigentlich ziemlich gut, womit ich mich so die ganze Zeit am Computer beschäftige oder beschäftigt habe:
von Enrico Kuß (Imperial Games)

Es folgt eine kurze (eigentlich eher etwas längere) Abhandlung über alles, was ich so auf dem Computer mache oder bisher gemacht habe.

Zunächst das Wichtigste: Ich weiß leider nicht, ob das, was ich so programmiere, überhaupt nach heutigen Wertmaßstäben noch von irgendeinem Wert ist. Ich programmiere ja "immer noch" in DOS. Es ist zwar nun so, daß es nicht wirklich etwas entscheidendes darüber aussagt, was jemand kann, in welcher Sprache oder welchem System er codet. Aber das wissen viele Leute (leider) oft nicht einzuschätzen - weshalb es öfter vorkommt, daß sich Dialoge der folgenden Art ergeben:
  • "Was, du programmierst noch in DOS?"
  • "Ja, in was programmierst du denn?"
  • "Oh. Ich habe noch nie programmiert, aber..."
Aha. Und solche Leute meinen aber einschätzen zu können, ob jemand Ahnung hat oder nicht. Die von DOS vielleicht gerade mal wissen, daß es älter ist als Windows. Und (wenn sie etwas schlauer sind) daß es das ist, wo man hinkommt, wenn man bei Windows aus Versehen auf "Eingabeaufforderung" klickt - beziehungsweise etwas sehr ähnliches.

(Stichwort: Es ist viel leichter, von einem DOS-SPIELER zu einem Windows-SPIELER zu werden, als von einem DOS-Programmierer zu einem Windows-Programmierer. Ein Narr, wer Spielen mit Programmieren vergleichen will.)

Es soll im folgenden um das gehen, was und wie ich programmiere. Zunächst geht es um das WIE - also welche Programmiersprachen und "Umgebungen" ich benutze. Dann um das WAS - also mit welchen Arten von Projekten ich mich beschäftige.



WAS UND WIE ICH PROGRAMMIERE

DIE PROGRAMMIERSPRACHEN, DIE ICH BEHERRSCHE:
  • Borland Pascal 7.x (hauptsächlich)
  • Assembler 80x86 (bis zu 386, leider noch kein Protected-Mode)
  • Assembler verschiedene 8-Bit-Familien, hauptsächlich Motorola und Verwandte. (6502/6510, 6805)
  • BASIC (damit habe ich angefangen) - verschiedene Dialekte
  • PHP - damit habe ich vor einer Weile angefangen, um Webseiten dynamisch machen zu können, mach das aber eher nebensächlich.
  • HTML empfinde ich zwar nicht als Programmiersprache, aber manche Leute schon, daher führe ich es hier auf.
  • Eigene Programmiersprachen und Scripts, die ich für verschiedene meiner Systeme entwickle.


DIE PROGRAMMIERSPRACHEN, DIE ICH NOCH ERLERNEN WILL:
  • Protected Mode - Assembler (also "echten" 32bit-Assembler) (Hab mich schon ein wenig damit befaßt.)
  • C, vielleicht auch mal sowas wie C++
  • Sollte es beruflich erforderlich sein, auch andere Programmiersprachen (Zum Beispiel Java/Java-Script, das viele ja in letzter Zeit für ein Allheilmittel halten. Das es nicht ist.)
Anmerkung: Mit Hilfe von Büchern und der Entwicklungsumgebung des entsprechenden Compilers ist es mir möglich, mir nahezu jede konventionelle Programmiersprache innerhalb kurzer Zeit anzueignen.

Ich bin der Meinung, daß die Qualität einer Programmiersprache nur vom entsprechenden "Übersetzer" (also Compiler) abhängt und man mit derselben Sprache schnelle, speichersparende und kompatible Programme einerseits und langsame, ressourcenfressende, unverträgliche Programme andererseits gleichermaßen produzieren kann. Dies hängt sehr vom Programmierer, seinem Ehrgeiz, seiner Programmierdisziplin - sowie auch von den Bedingungen, unter denen er arbeiten muß, ab. Zeitdruck, Geldgier und ähnliches von Seiten der Auftraggeber haben leider dazu beigetragen, daß die Qualität der Software in den letzten Jahren stark nachgelassen hat. Der Endverbraucher sieht das nicht auf den ersten Blick. Weil es BUNT ist. Umständliche Bedienung, Programmierfehler (Bugs), Inkompatibilitäten und Ressourcenverbrauch /-verschwendung fallen einem jedoch oft erst auf, wenn man ein Programm längere Zeit benutzt / benutzen muß. Und es ist meiner Meinung nach kein Geheimnis, daß die Produkte großer Firmen in Computer-/Spiele-Zeitschriften grundsätzlich besser bewertet werden. Weil Zeitschriften nur so unabhängig sind, wie die Finanzen es zulassen.

WOMIT ICH MICH BESCHÄFTIGE / SCHON BESCHÄFTIGT HABE
Hier führe ich auf, was die hauptsächlichen Dinge sind, die ich so programmiere. Ich bitte dabei zu beachten, daß ich bisher ausschließlich in meiner Freizeit und ausschließlich allein programmiert habe. Daher orientiert sich diese "Auswahl" natürlich eher an privaten Zielen wie persönlicher Weiterentwicklung und dergleichen und ist nicht so sehr gewinnorientiert, wie dies bei kommerziellen Programmierern der Fall ist.

Anmerkung zu meinen Projekten: Ich habe viele halbfertige Projekte hier. Es gibt (außer bei Auftragsarbeiten) niemanden, der dahintersteht und mich in irgendeiner Weise "antreibt". Auf diese Art habe ich eben Zeit und Gelegenheit, alles auszuprobieren. Ich arbeite eigentlich immer an mehreren Projekten gleichzeitig. Das mag unorganisiert und unordentlich klingen - muß es aber nicht sein! Erkenntnisse (oder auch Programmroutinen!), die man bei Erstellung eines Projektes gewinnt, kann man dann oft auch bei anderen Projekten einsetzen. Die Projekte befruchten sich praktisch gegenseitig mit Ideen. Es kommt oft vor, daß Erkenntnisse, die ich beim Spieleprogrammieren habe, mir später auch beim Programmieren einer Anwendung zugute kommen.

1. COMPUTERSPIELE (alle Genres)
Das liegt ebenfalls daran, daß ich ein "Freizeitprogrammierer" bin. Spiele bieten oft die Möglichkeit, sich selbst die Umsetzung einer (teilweise recht abstrakten) Idee zur Aufgabe zu setzen - und auszuloten, in welcher Qualität einem dies gelingt. Ich will hier keine Beispiele nennen. Die Anzahl angefangener Projekte ist immens. Ein schönes Beispiel wird vielleicht das Spiel, an dem ich schon seit einer Weile gearbeitet habe. Wird vielleicht sogar fertiggestellt.

2. TOOLS (Anwendungen)
Es gibt (unter DOS) bekanntermaßen zwei Arten von Tools. Die sogenannten Kommandozeilen-Tools (bei denen man am DOS-Prompt den Namen, eventuell gefolgt von Parametern, eingibt) und die Oberflächen-Tools.

Ich habe schon alle Arten von Tools programmiert. Kommandozeilen-Tools sind dabei die häufigste Art, weil ich selbst - und andere Leute - diese am häufigsten brauchen, und weil sie sehr praktisch sind. Man kann sie in andere Programme unkompliziert einbinden, sie verbrauchen nicht viel Speicher und Ressourcen.

Die Oberfächen-Tools zeichnen sich durch höheren Bedienkomfort aus - ich habe selbst allerdings kaum Verwendung für Oberflächen. Ich programmiere sie eher im Auftrag - oder wenn ich ein Kommandozeilen- Tool, das andere Leute praktisch fanden, um eine Oberfläche erweitere.

Beispiele für die Arten von Tools, die ich schon programmiert habe, sind:
  • Konvertierprogramme (Text, Grafik, Musik/Sound). Dies sind meistens Kommandozeilentools. Beispielsweise zur Umwandlung von HTML in ASCII. Oder zur Konvertierung von Grafik oder Sounddateien.

  • Entwicklungsumgebungen (Text, Grafik, Musik/Sound, Spiele-Levels) Hier sind Texteditoren, Malprogramme, Level-Entwickler, Musik- Entwickler, 2D-/3D-Welten/Figuren-Entwickler zu nennen.

  • Analyse-Programme für andere Dateien. (Beispielsweise, um die Zusammensetzung eines Dateiformats zu ermitteln.)

  • Compiler, Assembler, Tokensierer, Wandler. Alles, was zur Umsetzung von Klartext / Script in ein Script oder ausführbaren Code benutzt werden kann. Schönes Beispiel auf dem PC ist ein Tool, was es ermöglicht, relativ einfach umfangreiche Internetseiten mit sich wiederholenden Seitendesigns zu erstellen - und mit dem meine Internetseite erstellt wurde.

  • Eine Auftragsarbeit, die aber vom Auftraggeber gecancelt wurde, da er eine einfachere Variante (mit weniger Features), die ich ihm unter EXCEL zunächst vorläufig erstellt hatte, vorzog. Allerdings ist diese "Oberflächen-Plattform" auch anderweitig verwendbar: Eine grafische Oberfläche, die scriptgesteuert ist und Fenster, Buttons und sonstige Benutzeroberflächen-Elemente enthält. Das Projekt ist völlig selbständig im puren DOS lauffähig und erfordert kein Windows, keine DLL-Dateien oder dergleichen - sondern einfach nur MS-DOS, VESA und (optional) einen Maustreiber. Wer will da behaupten, daß DOS-Programmierer nichts draufhätten? (Anmerkung: Es gibt heutzutage wirklich viele Leute, die denken, es gäbe in DOS nichts anderes außer 80x25 Zeichen Textmode, graue Schrift auf schwarzem Hintergrund.)

  • Internetseiten. Habe meine eigene im Netz stehen, von dort stammt ja auch dieser Text. Außerdem habe ich auch schon Seiten für andere Leute erstellt. Ich will damit nur sagen: Ich kann HTML und ich kann Seiten erstellen. Wie gesagt, ich empfinde dies eigentlich nicht als wirkliche Programmierung. Aber es ist ja eine gewisse Entwicklungstätigkeit. Anmerkung: Ich benötige hierzu lediglich einen HTML-fähigen "Betrachter" (z.B. Internet Explorer im Offline-Modus - oder Arachne, den ich natürlich benutze. Ein Browser für DOS - für alle, die es nicht wissen). Ein Entwicklungs-Tool ist nicht erforderlich. Ich habe festgestellt, daß ich mich selbst in diesen Entwicklungs-Tools (habe schon mit Macromedia-Dreamweaver gearbeitet) zu 99% im HTML-Quelltext aufhalte und eher weniger mit der Maus irgendwelche Objekte ziehe. Mein Vorteil: Ich erstelle Seiten, die nicht nur auf dem Explorer, sondern auf nahezu JEDEM Browser gleich aussehen und funktionieren!


3. EXPERIMENTE
Das ist für mich das interessanteste Gebiet überhaupt. Für Laien das wohl eher uninteressanteste. Ich beschäftige mich mit sehr vielen Dingen und vielen Programmier-Experimenten, die nicht immer fertige Projekte werden, sondern oft auch einfach dazu dienen, mich selbst und meine Fähigkeiten weiterzuentwickeln. Was natürlich nicht ausschließt, daß besonders interessante "Experimente" später auch mal zu Projekten - also Spielen oder Tools werden können. Gerade im Bereich 3D- Programmierung habe ich da einiges an Dingen, die wirklich ziemlich vielversprechend sind. Aber es ist, wie gesagt, ja nicht vornehmlich mein Ziel, fertige (geldbringende) Projekte zu erstellen, sondern zu lernen. Oder, wie Meister Bruce Lee es so treffend formulierte: "Der Weg ist das Ziel."

Ich habe mich unter anderem mit folgenden Dingen schon programmiererisch beschäftigt:
  • Grafikkartenprogrammierung. VGA und VESA. Jeder Grafikmodus, jede Auflösung, jede Farbtiefe - und viele VGA-Tricks. Bisher keine der Hardware-3D-Fähigkeiten der Grafikkarte. 3D programmiere ich softwaremäßig (d.h. Grafikkarten-unabhängig)

  • 3D-Programmierung. Ob es Demos oder Spielengines sind, mit diesem Punkt habe ich mich sehr sehr intensiv beschäftigt. Ich habe einiges an Routinen hier, das ich noch weiterentwickeln will (bin zur Zeit in andere Projekte eingebunden) und was dann auch z.B. ein Spiel werden könnte. Beispielsweise habe ich eine 3D-Engine entwickelt, mit der ich durch 3D-Spielewelten laufen kann. (Ich kann auch andere Levels laden - beispielsweise die Levels von ID-Software-Spielen wie DOOM 1 und 2, HERETIC und HEXEN, oder von 3D-REALMS´ Duke Nukem 3D - und durch diese laufen. Nicht, daß ich es nötig hätte, Levels zu rippen. Aber es beweist, daß meine Engine durchaus auch Levels kommerzieller Spiele darstellen kann.

  • Soundprogrammierung, Klangerzeugung. Dazu zählt erstens die Ausgabe digitaler Klänge über die Soundkarte, Soundchips oder PC-Speaker und zweitens auch die Programmierung und Erzeugung von Sounds - quasi durch softwaremäßige Klangsynthese. Ich habe auch schon Sprachsynthesizer programmiert.

  • Ansteuerung externer Geräte (z.B. Drucker, Maus) / Ports. Ich habe schon grafische Ausgabe über Drucker programmiert, Mausabfrage (teils sogar auf unterster Systemebene - also ohne vorhandenen Maustreiber) und auch Ansteuerung z.B. des seriellen Ports (diverse Terminalprogramme). Auf 8-Bit habe ich den seriellen Port auch schon vollständig selbst simuliert (bis zu 38400 Baud auf 1 Mhz). Vor einiger Zeit habe ich eine I²C-Schnittstelle (ein Industriestandard für serielle Datenübertragung) programmiert, ebenfalls "von Hand".

  • Übertragungsprotokolle. Habe PPP und TCP/IP vollständig selbst programmiert (auf seriellem Port). Sowie auch einige eigene Übertragungsprotokolle erfunden. Übertragungsprotokolle sind sozusagen eine neue Art Hobby von mir.

  • Emulatoren. Ich habe schon einen C64-Emulator programmiert. Ein erster Versuch, der schon ziemlich gut funktionierte. Der zweite ist zur Zeit in Arbeit - und er ist bereits so schnell, daß ich ihn auf meinem 486er (133 Mhz) demnächst nicht mehr unter den 50 Hz (PAL-Frequenz) halten kann, ohne Warteschleifen einzubauen... (also so schlecht ist er garnicht mal...) Solche Projekte (zumindest die Hauptschleife) programmiere ich natürlich in 100% Assembler. Wer schon einmal ein Projekt programmiert hat, das auf einem Rechner den kompletten Chipsatz (es ist ja nicht nur die CPU) eines anderen Rechners emuliert, weiß, daß das mehr als nur eine kleine dumme Spielerei ist.

  • Pack-/Verschlüsselungsalgorithmen. Hier habe ich schon viele verschiedene Experimente gemacht und erst neulich wieder einen sehr interessanten Verschlüsselungsalgorithmus erstellt. Auch zu Packalgorithmen ist mir schon einiges interessantes eingefallen.

  • Compiler, Interpreter, Assembler. Ich schreibe auch diese Tools selbst. Das eine Auftrags-Projekt (scriptgesteuerte GUI) wird beispielsweise durch ein tokensiertes Script gesteuert. Der Script-Interpreter kann auch Formeln interpretieren, die Funktionen, Klammern und Operationen enthalten und arbeitet mit Vorrangautomatik.

  • Algorithmen im allgemeinen. Auch die Darstellung eines 3D-Levels / einer 3D-Figur setzt ja - schon wegen der Verdeckung und dergleichen - einen vernünftigen Algorithmus voraus.

  • Künstliche Intelligenz. Bisher hauptsächlich zur Mustererkennung (Stichwort OCR - also Zeichenerkennung). Zum Thema Sprachsynthese: Vielleicht programmiere ich auch noch einmal einen KI-Sprachsynthesizer oder noch besser einen KI-Spracherkenner - aber das ist natürlich nur so... - werde erst einmal einige meiner aktuellen Projekte beenden.

  • Knacken von Formaten. In Ermangelung von Dokumentation zu vielen Dateiformaten muß man sich oftmals selbst behelfen. (Die Zusammensetzung des WAD-Formats, sowie der Levels von DOOM & Co habe ich völlig selbständig herausgefunden.) Manchmal ist es auch ziemlich interessant, Formate zu knacken. Allerdings habe ich es noch nie verwendet (und habe es auch nicht vor), um zu "hacken" oder irgendwie Gewinn daraus zu schlagen. Wer selbst unfähig oder faul ist und deshalb die Daten anderer Leute benutzen muß, sei es, wenn er "Musiker" sein will und in Wirklichkeit - mehr schlecht als recht - die Songs anderer Leute covert [also klaut] oder wenn er "Programmierer" sein will und in Wirklichkeit nur die Arbeit anderer Leute kopiert [also klaut], kann sich selbst eigentlich nicht wirklich ernsthaft professionell, begabt oder ähnliches nennen wollen. Daß solche Leute oft trotzdem erfolgreicher sind als die eigentlichen Urheber, beweist eigentlich nur einmal mehr, daß irgendetwas mit der Gesellschaft nicht stimmen kann. Darauf möchte ich jedoch nicht näher eingehen, da es nicht hierher gehört.


4. "DATEN"
Wenn man Spiele und Tools programmiert / entwickelt, ergibt sich natürlich auch die Notwendigkeit, neben dem Programmcode andere Dinge zu entwickeln, als da wäre: Zeichensätze, Musiken, Leveldaten, Figuren, Grafiken, etc.

Im folgenden Beispiele für das, was ich an Daten erstelle - also das, was ich neben Programmieren so auf dem Computer tue. Auch hier erhebt diese Aufzählung keinen Anspruch auf Vollständigkeit.
  • Sprites, Levelblöcke, 2D- / 3D-Figuren, Texturen. Eigentlich alles, was man braucht, damit ein Spiel auch Grafik bekommt. Auch hier arbeite ich eigentlich nahezu ausschließlich mit eigenen Tools.

  • Vektorzeichensätze, eigene Grafik-, Musik-, Programm-, Zeichensatz-Formate. So etwas ist leider oft erforderlich. Ich würde viel öfter konventionelle Formate verwenden, aber diese glänzen oft mit Umständlichkeit und Platzverschwendung. Gerade Microsoft bekleckern sich oft nicht gerade mit Ruhm, wenn sie neue Formate entwickeln. (Stichwort: Wieso sind alle Bildformate, die Microsoft entwickelt - entgegengesetzt zur Grafikkarten-Richtung immer von unten nach oben gespeichert? - Erschwert die Bearbeitung ungemein, wenn man z.B. eine Universal-Lese-Routine für mehrere Grafikformate programmieren will.) Ich hätte für speicherintensive Formate ja sogar noch Verständnis, wenn sie dadurch zur Erhöhung der Verarbeitungs-Geschwindigkeit beitrügen - von Erhöhung von Geschwindigkeit in irgendeiner Form kann bei Microsoft-Produkten jedoch wirklich nicht die Rede sein. Jede neue Version eines Programms erfordert schnellere Rechner - ohne dabei jedoch seine eigene Geschwindigkeit zu erhöhen - und oft nur, um den Funktionsumfang um animierte Logos, transparente Fenster und dergleichen Unnötigkeiten zu erweitern. Es versteht sich von selbst, daß ich für die Erstellung von Zeichensätzen in selbsterfundenen Formaten auch wieder eigene Entwicklungstools erstellen mußte.

  • Musik / Klänge. Auf dem PC habe ich bisher eher wenig dazu gemacht, da mein dazugehöriges neues Tool noch in Arbeit ist. Allerdings habe ich schon einiges erstellt, was vielleicht - dann in gesteigerter Qualität - auch demnächst in diversen Spielen und dergleichen Anwendung finden könnte.

  • Texte. Ich weiß, ich bin nicht gerade ein Poet. (Nun gut, ich schreibe auch Gedichte und Lieder in deutsch und englisch. Außerdem zeichne ich auch gern - und wenn man den "Fans" glauben will, auch ziemlich gut. - Aber das gehört nicht hierher.) Aber daneben, daß ich Romane schreibe, schreibe ich natürlich auch die Dokumentationen und Hilfen zu meinen Projekten alle selbst - und zwar oft in deutsch UND englisch. Vielleicht ist es schon jemandem aufgefallen: Ich bin ziemlich fit in Orthographie und Grammatik. Ich kann auch beide Rechtschreibungen - die normale und die sogenannte reformierte. Ich privat bevorzuge die normale. Allerdings kann ich jederzeit auch Texte in reformierter Rechtschreibung verfassen. Hier sei vielleicht noch angemerkt, daß ich ziemlich schnell (und nahezu blind) tippen kann - Ergebnis rund 19-jähriger Programmiertätigkeit.

  • Ich als ANWENDER. Ich habe auch schon mit vielen Tools gearbeitet (privat eher nicht), und beherrsche diese hervorragend. Dazu zählen zunächst erst einmal alle meine Programmier-Entwicklungs-Umgebungen und dann die folgenden kommerziellen Programme von Microsoft & Co, gleichermaßen auf IBM-kompatiblen Systemen und auf Apple Macintosh (auf Macintosh bin ich lediglich Anwender - programmiert habe ich Mac noch nicht):
    • MS-Office-Paket (MS-WORD, MS-EXCEL, MS-ACCESS)
    • QuarkXpress, Adobe PhotoShop, Macromedia FreeHand
    • MS-Power Point, Corel Draw
    • Macromedia Dreamweaver, HTML-Edit, jede Art Texteditor


5. WAS ICH GERN MAL MACHEN WÜRDE
Es gibt Dinge, die ich noch nicht gemacht habe - oder noch nicht in dem Maße, wie ich gern würde. Auch diese Liste ist nicht vollständig und um einiges erweiterbar:
  • Umsetzen eines Computerspiels auf ein anderes System. So etwas habe ich zwar eigentlich schon einmal gemacht (Umsetzung von PC-"Digger" auf C64) - aber dies war eigentlich kein richtig ernstes Projekt.

  • Programmieren eines KI-Charakters, ähnlich dem legendären Max Headroom. Also eine virtuelle Person programmieren, die lern- und kommunikationsfähig ist. Eventuell auch als vollständige "körperliche" Person in einer virtuellen Welt.

  • Programmieren von Netzwerken. Alle Leute, die ich kenne, die sich mit Netzwerken beschäftigen, tun dies als Anwender - so daß sie mir hierzu keine große Hilfe sind. Wobei ich allerdings sagen muß, daß der Anfang hierzu definitiv schon gemacht ist. Habe gerade ein kleines Multiplayer-Netzwerk-System erfunden für Mehrspieler-Spiele. Mal sehen, ob es dann funktioniert.

  • Programmieren einer Spielkonsole. Dies sollte eigentlich kein Problem sein. Die Hardware-Architektur von Spielkonsolen ist oft viel "ordentlicher" und aufgeräumter als beispielsweise die von so "Stückwerk" wie 80x86er PCs.


6. WAS MICH NICHT SO INTERESSIERT
Um der Wahrheit die Ehre zu geben, gibt es auch einige (aber eher wenige) Dinge, die mich an Programmierung nicht so sehr interessieren. Diese will ich hier auch nennen. Es ist nicht so, daß ich in diesem Punkten generell keine Fähigkeiten hätte oder diese nicht erlernen könnte. Aber jeder Mensch hat nun einmal bestimmte Vorlieben und bestimmte Sachen, für die er weniger Interesse aufbringen kann.

Zu diesen Dingen zählen für mich:
  • Hacken, Programmierung destruktiver Programme (=Viren). Es ist nicht so, daß ich diesen Dingen absprechen will, daß sie ganz interessant sein können. Allerdings haben sie mich selbst nie besonders interessiert. Hacken, um damit Geld zu sparen, die Systeme anderer Leute (oder sein eigenes) lahmzulegen oder um zu beweisen, "daß man es kann" mag für einige Leute sehr ansprechend sein - für andere sogar der einzige Grund, sich überhaupt mit Computern zu beschäftigen. Für mich ist es lediglich etwas, das ich vielleicht erlernen könnte, wenn ich wollte. Oder müßte.

  • Programmieren durch Schieben von Objekten auf Benutzeroberflächen. Es ist nicht so, daß ich mir so etwas nicht zutraue. Im Gegenteil. Ich habe auf dem C64 in 8-Bit-Maschinensprache schon eine Subroutine geschrieben, die die Quadratwurzel einer Zahl zieht (zur Information: Die C64-CPU hat keine Multiplikation/Division!). Ich bin mir völlig sicher, daß 98% der Deutschen nicht einmal auf dem Papier eine Quadratwurzel ziehen könnten. Und schon garnicht im binären System und in Maschinensprache... Was ich damit sagen will: Das Zusammenschieben von Objekten ist für mich keine Herausforderung. Daher kann ich so wenig Interesse dafür aufbringen. Es ist dabei eben nicht mehr so, daß es für ein Problem mehrere Lösungen gibt und man als Programmierer eine möglichst optimale finden muß. Es ist eher so, daß man auf diese Art (die Zusammenschiebe-Art) nahezu überhaupt keine Möglichkeit hat, auf die Qualität des Endproduktes entscheidenden Einfluß zu nehmen - wobei mit Qualität gemeint ist: Geringer Speicher- und Ressourcenverbrauch, sowie hohe Verarbeitungsgeschwindigkeit und Kompatibilität. Daher hat mich so etwas nie so recht angesprochen. Das will aber nichts heißen. Sollte ich beruflich oder im Rahmen eines Projektes mit so einer Programmierung ("visual" Programmiersprachen wie Visual Basic oder Visual Pascal (unter Delphi bekannt)) umgehen müssen, kann ich mir dies wahrscheinlich eher leicht aneignen. Daß ich meine PRIVATEN Programmiergewohnheiten jedoch auf diesen Bereich umstelle und die systemorientierte ("systemnahe") Programmierung jemals ganz aufgeben werde, glaube ich eher nicht.


WIE ICH ARBEITE
  • Am liebsten allein. Ich kann durchaus als Teil eines "Teams" arbeiten. In der Form, daß ich einen Teil der Arbeit, mit den dazugehörigen zu erreichenden Parametern zugewiesen bekomme, dazu ein Zeit- und Ressourcenlimit und dann gehe ich und tue meine Arbeit. Im "großen Kreis" irgendwo zu sitzen und in kollegialem Austausch zu stehen, ist eher nicht die Art, auf die ich arbeite. Mit anderen Worten: Es ist nicht unbedingt so, daß ich bei der Arbeit auf die physische Anwesenheit anderer Menschen gesteigerten Wert lege - eher im Gegenteil. Ich bin nicht gerade sehr kontaktfreudig. Ich versuche also, einen Job zu finden, wo ich persönlichen Kontakt zu Kunden nach Möglichkeit vermeiden kann. Ich weiß, daß dies schwierig ist. Aber ich finde, daß man einen Menschen nicht zwingen sollte, permanent (und jahrelang) etwas zu tun, was gegen seine Natur geht. Der Mensch wird irgendwann daran verzweifeln. Und ich bin auch der Meinung, wenn der Mensch bereit ist, vernünftige Arbeit zu liefern, ist das kein zu hoher Preis.

  • Ich möchte vermeiden, daß dies allzu kraß klingt, weiß aber nicht, wie ich es anstellen soll. Ich arbeite oft in einer Art "kreativem Chaos". (Ein Grund mehr, auf Kontakt zu Kunden eher zu verzichten.) Das soll nicht heißen, daß ich auf meinem Arbeitsplatz Pilze züchte. Es ist nur so: Wenn man mir die Organisation meiner Arbeit und meines Systems selbst überläßt, kann ich viel besser, schneller und effektiver arbeiten. Es ist mir zwar auch möglich, mich vorgeschriebenen Gegebenheiten anzupassen (nicht, wenn dies allerdings heißt, daß ich meine Haare abschneiden muß oder dergleichen - weil die Haarlänge überhaupt keinen Einfluß auf die Qualität der Computertätigkeit eines Menschen hat, weshalb es keinen entschuldbaren Grund gibt, in derart private Dinge eines Menschen einzugreifen). Aber es ist eben auch so, daß es ein natürlicher Vorgang ist, wenn man einen Menschen in seinen Möglichkeiten beschränkt, man natürlich auch seine Arbeit behindert.

  • Am liebsten nachts. Ich bin ein ausgesprochener Nachtmensch. Außerdem kann mein Arbeitsraum auch klein, kühl und dunkel sein. (Eigentlich sollte er es sogar.) Diese Atmosphäre mag ich ohnehin viel mehr. (Ehrlich gesagt kann ich kaum glauben, daß manche Menschen in diesen großen weißen "Kreativ-Büros" mit weißen Möbeln, weißen Wänden, weißen Computern, Fenstern groß wie Schaufenster und Kollegen, die aussehen wie aus einem Versandhauskatalog überhaupt auch nur einen einzigen kreativen Gedanken entwickeln können.)

  • Am liebsten zu Hause. Das wäre der Idealfall. Zu Hause kann man sich völlig frei entfalten, seine eigene Arbeitszeit einteilen, sein System völlig selbst organisieren, usw. Desweiteren bietet sich für einen Arbeitgeber der Vorteil, daß er keinen (zum Teil teuren) (Computer-)Arbeitsplatz zur Verfügung stellen muß - und daß er Menschen wie mich auch nicht mit seinen Kunden zusammenbringen muß, wenn er dies nicht will.


WAS ICH AM ARBEITSMARKT BEMÄNGELE
Hier folgt noch ein Abschnitt, der eigentlich nichts mit Programmieren zu tun hat...
  • Die Umorganisation des Arbeitsamtes löst auch nicht das Problem der hohen Arbeitslosigkeit. Auch das bestorganisierte Arbeitsamt der Welt kann nur Stellen vermitteln, die auch vorhanden sind.

  • Jeder Chef will zwar, daß alle bei ihm kaufen - aber keiner bei ihm Geld verdient. Er muß jedoch davon ausgehen: Wenn alle Chefs so denken, gibt es bald keinen mehr, der irgendetwas von irgendwem kaufen kann - in Ermangelung von jeglichem freiverfügbaren Geld.

  • Arbeitsbeschaffungsmaßnahmen und staatlich unterstützte Minijobs frisieren nur die Arbeitslosenstatistik - weil diese Leute offiziell nicht mehr als Arbeitslose zählen! Aber: Sie haben oft auch nicht viel mehr Geld als ein Arbeitsloser. Und: Sie zahlen mit ihrem "Arbeitsplatz" keine Steuern und Abgaben - sondern belasten im Gegenteil eher noch den Staat und damit die Allgemeinheit. Fazit: Diese Maßnahmen dienen nur dazu, Billiglohnkräfte zu schaffen, damit Arbeitgeber mehr verdienen können und noch weniger dafür ausgeben müssen. Viel größeres Fazit: Die wirklichen Arbeitslosenzahlen sind bei weitem höher als die meisten denken.

  • "Wir können die Arbeitgeber und Konzerne nicht mit Abgaben belasten, dann gehen die ins Ausland, investieren nicht mehr hier und müssen Leute entlassen." - Dies wäre gut, wenn es stimmen würde. Aber: Seit Jahren erhalten "Chefs" und vor allem sehr große Betriebe Steuergeschenke und Sonderregelungen und TROTZDEM gehen sie ins Ausland und TROTZDEM investieren sie nicht bzw NICHT HIER und TROTZDEM entlassen sie ständig Arbeiter. Das geht nicht in den Bereich ein oder zwei, sondern eher einige TAUSEND! Und zwar auch dann, wenn die Geschäfte nachweislich hervorragend laufen. Vielleicht wird es Zeit, zu überlegen, ob die Stellen, wo sehr viel verdient wird, auch mal ihren Beitrag an der Gesellschaft leisten sollten - wenn eben nicht freiwillig (z.B. durch Investition im Inland und Einstellung von Arbeitern auf Vollbeschäftigungsbasis) dann eben durch Abgaben - in Form von Steuern, die der "kleine Mann" ja schließlich auch zu zahlen hat. (Anmerkung: Wenn ein Franzose oder US-Amerikaner ein Haus in Monaco hat, muß er trotzdem in seinem Heimatland Steuern entrichten, solange er die Staatsbürgerschaft hat. Es wäre kein Problem, über entsprechende Gesetze auch in Deutschland solche Regelungen zu treffen - es wird jedoch nicht getan. Man könnte den subjektiven Eindruck gewinnen, daß dies deshalb nicht geschieht, weil die gesetzgebenden Organe sich dabei gegen die eigene Lobby bzw. die eigene Geldquelle wenden würden.)

  • Ich habe nichts gegen Überstunden. Wenn mich ein Problem interessiert, merke ich ohnehin nicht wie die Zeit vergeht (und wenn ich einen Programmierer-Job hätte, würde ich ohnehin am liebsten gleich IM Computer wohnen...) Aber: Es ist meiner Meinung nach nicht in Ordnung, einerseits zu behaupten, es wäre keine Arbeit da - wenn andererseits die Anzahl Überstunden in Deutschland ins Uferlose steigen. Ich wage jetzt mal die folgende kühne Behauptung: Es ist schon Arbeit da - es will sie nur keiner anständig (oder überhaupt) bezahlen.

  • Nimmt man einmal an, man sucht sich einen Partner/Partnerin, so muß man heute ja schon fast sagen: Wie er/sie aussieht oder sich kleidet, muß einem ja schon völlig egal sein, da über solche Dinge Chefs mehr zu bestimmen haben als die Menschen selbst (meiner Meinung nach verfassungswidrig). Will sagen: Wenn man seine Traumfrau/Traummann finden will, muß man entweder jemanden finden, der arbeitslos ist, oder jemanden, dessen Chef zufällig denselben Geschmack hat wie man selbst. Was ich damit sagen will: Wenn ich mich irgendwo bewerbe, liest sich der Sachbearbeiter oder Chef wahrscheinlich meine Bewerbung nicht mehr durch, wenn er mein Bewerbungsfoto gesehen hat. Leider zählt heute die Leistung, die ein Mensch bringt oder bringen kann, nicht mehr sehr viel. Viel wichtiger scheint es, inwieweit er jeden Gedanken daran, eine eigene Persönlichkeit zu entwickeln, hinter die Interessen einer Firma zu stellen bereit ist.

  • Ich sage gern meine Meinung und bin schonungslos ehrlich. Es ist mir nicht so wichtig, ob mich andere Menschen mögen, wenn ich mich dafür selbst nicht mehr mögen kann. Ich möchte morgens noch voller Stolz in den Spiegel schauen können, ohne mich für das, was ich bin oder tue zu schämen. Das ist leider für viele Leute schon zuviel verlangt.


WOZU DIESER TEXT?
Jemand könnte ja jetzt ernsthaft auf den Gedanken kommen, zu fragen, wieso ich all dies so ausführlich erzähle. Nun - vielleicht gibt es irgendwo da draußen ja jemanden, der vielleicht einen Computerarbeitsplatz zu vergeben hat - als Programmierer, aber vielleicht auch grafischen Bereich (z.B. Layout in der Druckvorstufe oder Webseitengestaltung). - Es gehört vielleicht nicht hierher, aber ich habe außerdem 2002 ein Zertifikat zum Screen-/Printmediendesigner erworben.

Und möglicherweise könnte es auch sein, daß man dabei jemanden wie mich in die engere Wahl ziehen könnte - trotz (oder vielleicht wegen) meiner etwas unkonventionellen Persönlichkeit. (Es ist kein Geheimnis, daß die kreativsten Menschen - und auch die besten Programmierer - immer etwas unkonventionell waren und sind.)

ANMERKUNG
Dieser Text dient nur der privaten Information über meine bisherige Arbeit auf dem Computer. Ihn weiterzuverbreiten sollte nicht viel Sinn machen - und unterbleiben. (Anders ausgedrückt: Sollte ich diesen Text in irgendeiner Form (ob plain ASCII oder HTML oder sonstige Formate - auch wenn leicht abgewandelt) in einer Mailbox oder auf einer Internetseite finden, behalte ich mir rechtliche Schritte vor.

Ja - ich fände es eigentlich auch besser, nicht jedesmal Anmerkungen wie diese machen zu müssen. Aber sobald man mal denkt, so etwas wäre nicht nötig, überzeugt einen die Welt vom Gegenteil...

Der Autor (Enrico Kuß)
 (DOS-Version dieses Textes)

 (Windows-Version dieses Textes)


erste Seite vorige Seite Seite  8 


© 2006 Imperial Games