So es kann losgehen! Es wird hoffentlich eine aufregende und spannende Reise voller Mysterien und Abenteuer. Ich erwarte nicht, dass es einfach wird, zumindest nicht allzu einfach. Naja wir werden sehen…
Wie ich in diesem Beitrag ja schon sagt habe ich beschlossen Programmieren zu lernen, nicht wirklich weil das gerade „in“ zu sein scheint, sondern vielmehr weil ich glaube, dass das genau mein Ding sein wird. Ein paar letzte Zweifel bleiben dennoch. Was wenn ich mich falsch entschieden habe? Habe ich zum Glück nicht!
Warum Python
Aus beruflicher Sicht hätte ich auch PHP lernen können. Der Nutzen für diese Sprache wäre bei uns in der Firma sehr hoch gewesen, dadurch dass wir verschiedene PHP basierte Anwendungen betreiben. Dennoch habe ich mich dagegen entschieden.
Ich habe mir erst einmal einen Überblick verschafft was durchaus etwas Zeit gekostet hat. Es gibt mittlerweile sehr viele Programmiersprachen und es ist bei Weitem nicht so, dass es die EINE Sprache gibt, die man als die Beste bezeichnen könnte. Das Ganze hat neben den reinen Fakten schon fast etwas Religiöses wie bei vielen anderen Themen auch. Nachdem ich einige Artikel gelesen habe und auch ein paar Videos geschaut habe viel meine Vorauswahl auf C#, Python oder Javascript. Für Python habe ich mich letztlich aus den folgenden Gründen entschieden:
- Lesbarkeit und Eleganz: Ich fand es auf Anhieb faszinierend, dass die Einrückungen zur besseren Lesbarkeit die Blockstruktur definieren und damit Blockklammern einfach entfallen. Außerdem „zwingt“ einen die Sprache dadurch den Code sauber zu strukturieren.
- Python ist eine höhere Programmiersprache, d.h. man braucht sich z.B. um Speichermanagement keine Sorgen zu machen
- Python eigenen sich für die Lösung vieler Anwendungsprobleme und besitzt eine sehr umfangreiche Standard Bibliothek
Ich muss ganz ehrlich sagen, dass der erste Punkt der wichtigste für mich ist. Ob ich lange bei Python bleibe oder recht schnell zu einer anderen Sprache wechsle kann ich heute nicht sagen. Dennoch glaube ich, dass gut geschriebener Code die Grundvoraussetzung für jede Programmiersprache ist und ich gehe davon aus, dass das Erlernen von Python hier sehr hilfreich ist, egal wo die Reise hingeht.
Buch, Kurs, Selbststudium?
Ich habe so ein paar Artikel dazu gelesen wie man am besten eine Programmiersprache lernt. Ein paar Videos gab es auch zu dem Thema. Ist schon witzig, dass fast jeder einen Onlinekurs zum Python lernen anbietet.
Aus Büchern zu lernen war noch nie mein Ding. Also ich lese gern und ich lese auch gerne Fachbücher. Trotzdem sehe ich keinen Sinn darin das Programmieren aus einem Buch zu lernen. Es mag bestimmt einige gute Bücher geben, aber ich glaube, dass Programmieren einfach etwas ist was man TUN muss. Das Buch kann allenfalls zum Nachschlagen genommen werden.
Für den Start habe ich mich dann für einen Online Video Kurs entschieden. Boah habe ich mich gelangweilt. Stundenlang habe ich mir Videos angesehen, aber nachdem ich einen Überblick der wichtigsten Konzepte in Python hatte habe ich den Kurs erst einmal wieder links liegen lassen. Es war kein schlechter Kurs, ganz im Gegenteil. Alles war sehr detailliert erklärt und es gab auch viele praktische Beispiele. Ich hatte trotzdem nicht, dass Gefühl, dass mich das sehr weit bringen wird.
Stattdessen habe ich mich dafür entschieden so zu lernen, wie ich es am Liebsten tue. Ich fange an ein Problem zu lösen und den Rest lerne ich unterwegs. Als Hilfestellung werde ich mir nur die offizielle Dokumentation nehmen. Die ist zum einen sehr ausführlich, zum anderen gibt es in der Dokumentation auch sehr gute Beispiele.
Das Problem, dass gelöst werden soll
Ich habe mir eine besonders nervige Problemstellung ausgesucht. Eine die Stunden um Stunden verschlingen kann. Wir verkaufen unsere Produkte im Internet. Dabei arbeiten wir mit einigen größeren Partnern zusammen, an die unsere Produkte übermittelt werden. In den meisten Fällen ist es so, dass jeder nach seinem eigenen System arbeitet. Dennoch müssen die Stammdaten für die Produkte irgendwie ausgetauscht werden. Wenn man 2 Systeme hat, die über eine API Daten austauschen ist alles super, oft übermittelt man jedoch gute alte CSV oder EXCEL Daten.
Wir sind schon relativ gut dabei. Für führen die Stammdaten für unsere Produkte in 5 Sprachen in einem PIM-System, dass uns präzise Importe und Exporte von genau den Datensätzen und Datenfeldern erlaubt, die wir brauchen. Das Problem ist, dass diese Daten in manchen Fällen in ein Template eines unserer Partner übertragen werden müssen. Diese Daten kann dieser dann in sein System überspielen. Das ist bei ein paar Datensätzen kein Problem, bei vielen Datensätzen kann das aber schnell zeitintensiv werden, ganz zu schweigen von dem armen Menschen, der einfach nur stupide Daten hin- und her kopieren darf.
Das Programm
Im ersten Schritt soll es sich um ein Programm für Kommandozeile handeln. Für die erste Fassung habe ich folgende Grundfunktionen im Kopf:
- verschiedene Parameter müssen empfangen und ausgewertet werden können
- es sollen verschiedene Zuordnungen gespeichert werden können, so dass man per Parameter gezielt eine Eingabedatei in ein zuvor gespeichertes Ausgabeschema umwandeln kann
- die Zuordnungen soll man sich anzeigen lassen, neue hinzufügen und löschen können
Dadurch, dass es sich um ein Programm für die Konsole handelt kann ich es sobald alles funktioniert in unserer Firma in die bestehende Automatisierung eingliedern.
Demnächst mehr dazu.