Nachdem ich mich jahrelang mit DOS und Windows beschäftigt und ich mich immer wieder über den unstrukturierten Aufbau geärgert hatte, war Linux wie eine Erleuchtung. Endlich hatte ich ein System zur Verfügung, das strukturiert aufgebaut und durchdacht ist. So dauerte es dann auch nicht lange, bis Linux zu meinem bevorzugten Entwicklungssystem wurde.
Dabei muss es nicht unbedingt Linux sein. Den Einstieg in die *nix-Welt fand ich über ein Solaris Desktop-System. Später hatte ich dann auch mit Solaris-Servern zu tun.
Heute setze ich Linux als Desktop-Umgebung ein und betreue meine eigenen Root Web- und Nightbuild-Server.
Entscheidend ist: Je mehr ich mich mit Linux befasse, desto größer wird meine Begeisterung für dieses System; unabhängig davon, ob es sich um Anwendungsentwicklung, Systemprogrammierung oder Arbeitsplatzrechner handelt.
Während meines Studiums habe ich mich mit diversen Programmiersprachen befasst. Allerdings beschränken sich meine Erfahrungen nicht nur auf mein Studium. In dem Fall wären meine Kenntnisse auf diesem Gebiet wohl eher oberflächlich. Das Studium half mir, meine bis dato zehnjährige Programmiererfahrung in saubere Strukturen und durchdachte Konzepte zu lenken und animierte mich dazu, weitere Sprachen einzusetzen. So wurde dann auch Java zu einer meiner Favoriten.
Lange Zeit habe ich mich mit C++ beschäftige. Da ist einfach alles drin. Man kann absolut hardware-nah arbeiten, und gleichzeitig das Ganze in vernünftig durchdachte Konzepte verpacken. Sowohl auf Geschwindigkeit optimiertes Arbeiten als auch ein sauberer Stil sind koppelbar. Am meisten Spaß bringt mir das Programmieren unter Linux / Unix. Da stehen einem alle Türen offen. Man plagt sich nicht mit schlechten Implementierungen herum, rätselt nicht, ob der Fehler nun im Betriebssystem liegt, und findet für alles gute Beispiele oder Dokumentationen.
Mal liegt mein Schwerpunkt auf Java, mal auf C++ oder C#. Eigentlich ist es fast egal. Das einzige, was mich an Java stört, ist, dass man hier nicht so herrlich mit Zeigern jonglieren kann. Dafür kommt es meinem Wunsch nach einem sauberen Programmierstil sehr entgegen. Eine weitere schöne Sache an Java ist die gute Netzwerkunterstützung und Plattformunabhängigkeit.
Hierzu gehört natürlich alles, was damit zusammenhängt, also Java-Script, CSS, PHP, SQL usw. Dieses Thema interessiert mich besonders, weil hier eine Menge Kreativität einfließen kann. Es bringt einfach Spaß etwas zu schreiben, wo von Anfang an das Design und die Bedienbarkeit im Vordergrund steht. Hinzu kommt, dass das Internet eine schier unbegrenzte Flut an neuen Anregungen bietet. Da kommen mir ständig neue Ideen, was ich noch alles schreiben könnte.
Die von mir am häufigsten verwendete Sprache ist JavaScript. Nicht nur, weil moderne Websites kaum noch ohne auskommen, sondern vor allem, weil ich gerne Web Apps erstelle. Hierbei reizt mich, die völlige Plattform-unabhängigkeit und eine gleichermaßen für den Desktop als auch das Smartphone optimierte Bedienung zu ermöglichen. Besonders spannend finde ich in diesem Zusammenhang die Möglichkeiten, die moderne Erweiterungen der Sprache seit ECMAScript 6 bieten und darüber hinaus die Übersichtlichkeit steigernde Wirkung kleiner Frameworks wie Vue.js.
Neben den bisher genannten Sprachen, mit denen ich mich sehr intensiv beschäftigt habe, kenne ich mich noch in vielen weiteren Sprachen mehr oder weniger gut aus. Hier folgt eine vollständige Liste:
|
|
Ich denke mir gerne etwas Neues aus. Hier gibt es zwar für fast jedes Problem bereits Lösungen, jedoch können die oft noch angepasst oder erweitert werden. Besonders spannend wird es für mich, wenn sich das Ganze dann auch noch mit dem Computer verbinden und per Programm steuern lässt.
Das Schöne am Ausgefallenen ist, dass man nicht nur Gelerntes umsetzt oder irgendwelche Fertiglösungen zusammensetzt. Hierbei muss man kreativ sein und sich neue Wege erarbeiten.
Eine spannende Möglichkeit, Software- und Hardware-Entwicklung zu verbinden, ist das ESP2866 WLAN-Modul.
In meinem jüngsten Projekt setze ich diesen Chip für einen Fensterkontakt ein, der mein Telefon klingeln lässt, wenn das Badezimmer-Fenster zu lange offen steht.
Als Beschäftigung für den Weihnachtsurlaub, und weil ich kein gefälliges Fertiggerät finden konnte, habe ich einen Radiowecker auf Basis einer Raspberry Pi Zero gebaut.Dies bietet die seltene Gelegenheit in einem kleinen überschaubarem Projekt viele unterschiedliche Datenbuss Systeme zu verwenden und kennen zu lernen.