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 darber 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 fhre ich es hier auf. - Eigene Programmiersprachen und Scripts, die ich fr 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 fr ein Allheilmittel halten. Das es nicht ist.) Anmerkung: Mit Hilfe von Bchern 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 fhre 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" natrlich 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 fr 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 fr 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 fr 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 ausfhrbaren 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 fr 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 natrlich benutze. Ein Browser fr DOS - fr 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 fr mich das interessanteste Gebiet berhaupt. Fr 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 natrlich 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 fr serielle Datenbertragung) 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 natrlich 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-/Verschlsselungsalgorithmen. Hier habe ich schon viele verschiedene Experimente gemacht und erst neulich wieder einen sehr interessanten Verschlsselungsalgorithmus 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 vernnftigen Algorithmus voraus. - Knstliche 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 natrlich 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 natrlich auch die Notwendigkeit, neben dem Programmcode andere Dinge zu entwickeln, als da w„re: Zeichens„tze, Musiken, Leveldaten, Figuren, Grafiken, etc. Im folgenden Beispiele fr 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 wrde 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 fr mehrere Grafikformate programmieren will.) Ich h„tte fr speicherintensive Formate ja sogar noch Verst„ndnis, wenn sie dadurch zur Erh”hung der Verarbeitungs-Geschwindigkeit beitrgen - 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 fr 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 natrlich 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 wrde. 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 fr 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 "Stckwerk" 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, fr die er weniger Interesse aufbringen kann. Zu diesen Dingen z„hlen fr 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 fr einige Leute sehr ansprechend sein - fr andere sogar der einzige Grund, sich berhaupt mit Computern zu besch„ftigen. Fr 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 fr mich keine Herausforderung. Daher kann ich so wenig Interesse dafr aufbringen. Es ist dabei eben nicht mehr so, daá es fr 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 mssen, 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, vernnftige 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 zchte. 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 natrlicher Vorgang ist, wenn man einen Menschen in seinen M”glichkeiten beschr„nkt, man natrlich auch seine Arbeit behindert. - Am liebsten nachts. Ich bin ein ausgesprochener Nachtmensch. Auáerdem kann mein Arbeitsraum auch klein, khl 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-Bros" 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 fr einen Arbeitgeber der Vorteil, daá er keinen (zum Teil teuren) (Computer-)Arbeitsplatz zur Verfgung 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 freiverfgbaren Geld. - Arbeitsbeschaffungsmaánahmen und staatlich untersttzte 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 dafr ausgeben mssen. 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 mssen Leute entlassen." - Dies w„re gut, wenn es stimmen wrde. 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 Staatsbrgerschaft 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 wrden.) - 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, wrde 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 khne 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 dafr selbst nicht mehr m”gen kann. Ich m”chte morgens noch voller Stolz in den Spiegel schauen k”nnen, ohne mich fr das, was ich bin oder tue zu sch„men. Das ist leider fr 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 ausfhrlich 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 ausgedrckt: 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 mssen. Aber sobald man mal denkt, so etwas w„re nicht n”tig, berzeugt einen die Welt vom Gegenteil... Der Autor (Enrico Kuá)