53 lines
3.4 KiB
Markdown
53 lines
3.4 KiB
Markdown
+++
|
|
title = "Code"
|
|
description = "Programmierung und Skripten"
|
|
weight = 2
|
|
template = "page.html"
|
|
|
|
[taxonomies]
|
|
tags = ["programming","linux"]
|
|
|
|
[extra]
|
|
local_image = "img/code.svg"
|
|
+++
|
|

|
|
## Einleitung
|
|
In diesem Artikel liste ich Programmiersprachen auf, mit welchen ich schon gearbeitet habe und ordne sie nach Erfahrungslevel (1-am wenigsten Erfahrung bis 5-am meisten Erfahrung). Ich gebe jeder Sprache außerdem eine Note abhängig davon wie gerne ich mit der Sprache Programmiere und wie gut ich ihr Design finde.
|
|
|
|
## Level 1:
|
|
#### ein kleineres Projekt
|
|
- **C#** - vor einiger Zeit ein paar Berührungspunkte, als ich mit der Unity Engine experimentiert habe *(4+)*
|
|
- **Go** - kleines Tool geschrieben, dass Daten von einer öffentlichen Bundesliga API abgerufen hat um diese im Terminal anzuzeigen *(2-, relativ einfach aber sehr effektiv)*
|
|
- **Haskell** - ein simples Spiel implementiert *(2, macht Spaß)*
|
|
- **Lua** - einfaches neovim Plugin geschrieben um die Funktionen einiger Plugins abzubilden, die ich auf meinem Arbeitsrechner nicht installieren wollte *(2)*
|
|
## Level 2:
|
|
#### mehrere kleinere Projekte
|
|
- **Java** - mit Java habe ich für die Uni einiges Programmiert und zudem ein einfaches Spiel mit GUI, in welchem die Tipp-Geschwindigkeit gemessen wurde *(3-, nicht meins aber besser als C#)*
|
|
- **JavaScript** - ich habe einiges mit JavaScript und TypeScript gemacht, auch mit dem Framework VueJS und der Grafikengine ThreeJS *(4-, der JavaScript Kosmos ist wirklich sehr suspekt)*
|
|
- **Rust** - ich habe mit Rust einige kleine Projekte umgesetzt, darunter ein Discord Bot und einen API-Client *(2+, harte Lernkurve, aber sehr gutes Design und guter Compiler)*
|
|
## Level 3:
|
|
#### ein größeres Projekt oder viele kleinere Projekte
|
|
- **C** - mit C habe ich Programmieren gelernt und benutze die Sprache gerne für unterschiedlichste kleine Projekte *(1, eine geniale Sprache, die mangels vieler Abstraktionen großen Spaß macht, bei der man sich aber auch leicht ins Knie schießen kann)*
|
|
- **C++** - mit C++ habe ich in der Uni ein komplexes Konzept(b-spline Oberflächen) aus der Computergrafik implementiert und dabei die pmp Bibliothek benutzt *(2, macht viel Spaß, C auf Steroiden mir aber zum Teil etwas zu überladen)*
|
|
## Level 4:
|
|
#### Shell
|
|
Unter Shell fasse ich sowohl Wissen über Shellskripte als auch generelles Wissen über die Unix Kommandozeile zusammen.
|
|
Für diese Dinge habe ich schon Shellskripte geschrieben:
|
|
- Backupskript mit rsync
|
|
- Diverse selbstgeschriebene Checks für CheckMK
|
|
- Automationsskripte für Cloudsysteme, Cluster und Benchmarking
|
|
*(1+, ich gebe dem Shellskript stellvertretend für die Unix-Philosophie eine perfekte Note, weil sich in dem Design das großartige Unix Design fortsetzt)*
|
|
## Level 5:
|
|
#### Python
|
|
Mit Python habe ich am Abstand am meisten gearbeitet. Die Sprache schlägt eine Brücke zwischen simplen Skripten und komplexen Anwendungen. Sie ist sehr einfach zugänglich,
|
|
muss aber wegen den Performance-Limitationen richtig eingesetzt werden um nicht zu langsame Software zu erzeugen. Meine Erfahrungen mit der Sprache sehen wie folgt aus:
|
|
- professionell Python-Django als Server Backend-Entwickler
|
|
- Automationsskripte mit verschiedenen APIs für Netzwerkadministration
|
|
- Datenauswertung und Visualisierung per Jupyter Notebook
|
|
- Implementierung Kognitiver Algorithmen mit numpy
|
|
- Bildbearbeitung mit Pillow
|
|
*(2-, eine sehr vielseitige Sprache, braucht allerdings für Typisierung und Performance einige Tweaks)*
|
|
|
|
|
|
|