From 111747d9d2d24cb95a9691afed7d4050c2fe89f7 Mon Sep 17 00:00:00 2001 From: fdai4796 Date: Wed, 16 Nov 2022 16:08:16 +0000 Subject: [PATCH] Lerntagebuch.md --- Lerntagebuch.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/Lerntagebuch.md b/Lerntagebuch.md index 8b13789..902c930 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -1 +1,67 @@ +# Lerntagebuch Programmieren & -werkzeuge, 1. Woche +## Lernziele/Takeaway + Zu erst haben wir die organisatorischen Sachen besprochen. Somit haben wir einen kleinen Einblick auf unsere Aufgaben bekommen. + Im zweiten Teil haben wir die wesentlichen Eigenschaften eines Softwareentlickler*innen beschprochen. Als nächstes haben wir geklärt wo + der Unterschied zwischen einem Laien & Profi liegt. Der Laie macht ausversehen etwas richtig, der Profi gewollt. Der Profi hat Fachwissen den + er mitbringt, er hat das Richtige Werkzeug und vor allem Prinzipien an die er sich hält. Z.B. was ich nicht brauche kommt weg, dies bedeutet + Codes die nicht mehr gebraucht werden, werden gelöscht. + Zu dem haben wir die Begriffe Künstler & Handwerker geklärt und in welche Kategorie Softwareentwickler*innen rein fallen. + Künstler schaffen Produkte um Emotionen aus zu lösen. Handwerker um Kunden etwas nützliches zu schaffen. Softwareentlickler*innen + können beides sein, fallen aber mehr in die Kategorie Handwerker. +### Erkenntnis/preception + Ich habe gelernt, dass ich mich an die Prinzipien halten muss. Das ich unnötige Sachen aus meinem Code lösche und mich mit meinen Werkzeugen + auskennen sollte, um so vieles wie möglich gewollt zu erledigen. +#### Wiederholung/repetition + Die Prinzipien sind essenziell für einen guten Handweker (Softwareentwickler*innen). Es muss sich dran gehalten werden um so viel wie möglich + richtig zu machen und um Fehler zu minimieren. Es gibt mehrere Prinzipien. Wie z.B. immer einen Unitest aus zu führen, um Fehler früh zu + erkennen und zu beheben. + +# Programmierparadigmen, 2. Woche +## Lernziele/Takeaway + Wir haben dieses Woche 5 Programmierparadigmen kennen gelernt. + 1. Imperative Programmierung + Imperative Programmierung gibt dem Computer eine Schritt für Schritt Anweisung, in welcher Reihenfolge was getan werden muss. + Die imperative Programmierungssprachen waren sehr Hardware nah. + 2. Declarative Programmierung + Bei der declarativen Programmierung wird das Problem beschrieben, im Anschluss wird das Problem automatisch ermittelt. + Die bekanntesten declarativen Programmierungssprachen sind Haskell, Lisp, Prolog, Xaml & im weiteren Sinne auch SQL & XSLT. + Declarative Programmierung ist in vergleichbaren Programmen kürzer als Imperative Programmierung. + 3. Prozedurale Programmierung + Prozedurale Programmierung ist so zu sagen der vorgänger der Objektorientierten Programmierung. Prozedurale Programmierung + ist eine erweiterung vom imperativen Programmierung. Diese Programmierparadigma folgt dem System mit aufeinander folgenden Befehlen, + teilt diese jedoch in überschaubere Teile. + Bekannte Bespiele wären Fortran, COBOL, ALGOL, C & Pascal + 4. Objektorientierte Programmierung + Objektorientierte Programmierung ist ein Modell der Computerprogrammierung, bei dem das Softwaredesign auf Daten + oder Objekten basiert und nicht auf Funktionen und Logik. Ein Objekt kann als ein Datenfeld definiert werden, + das eindeutige Attribute und Verhaltensweisen aufweist. + Diese Art der Programmierung weißt eine bessere Strucktur auf & Teile des Programms können wieder verwendet werden. Ein weiterer + Vorteil ist, dass die Programme besser testbar sind. + Bekannte Objektorientierte Programmierungssprachen sind C#, C++ & Java. + 5. Funktionale Programmierung + Die Funktionale Programmierung ist eine erweiterung von der declarative Programmierung. Hier können Funktionen + nicht nur definiert und angewendet werden können, sondern auch wie Daten miteinander verknüpft werden. + Ein Vorteile der Funktionale Programmierung wäre, dass Berechnungen effizient & übersichtlich dargestellt werden, jedoch + kann die Funktionale Programmierung nur für Berechnungen verwendet werden. + Bekannte Funktionale Programmierungssprachen sind C++ (ab Version 11) & Java (ab Version 8). + + Zu dem haben wir 2 Arten der Programmiersprachen kennen gelernt. + Die erste wäre die typisierte Programmiersprachen. Mit der Typisierung werden Variablen oder Konstanten in Programmiersprachen + bestimmte Type-Eigenschaften innerhalb des Computer-Systems zugewiesen. In der Informatik verstehen Programmierung unter + Typisierung die Zuweisung eines Objekts zu einem Datentyp. Datentypen könne implizit oder explizit festgelegt werden. + Ein Vorteil der typisierte Programmiersprache ist, dass man Vervollständigungsvorschläge durch die IDE bekommt. + Bekannte typisierte Programmiersprachen wären z.B.: C, C++, C#, Java usw.. + Die zweite Programmiersprache ist die typenlose. Hier werden die Variablen, Parameter & Rückgabewerte, im gegensatz zur + typisierte Programmiersprachen, nicht festgelegt. + Bekannte typenlose Programmiersprachen wären z.B. cmd & JavaScript. + + Zu letzt haben wir do's & dont's vorgestellt bekommen, um gute & übersichtliche Programme zu schreiben. + Die zwei Stichwört sind SOLID & STUPID. + Hier steht jeder Buchstabe für einen Punkt den man beachten soll. +### Erkenntnis/preception + Ich habe in dieser Vorlesung gelernt, welche Art von Programmiersprachen wann am Sinnvollsten wäre. + Zu dem habe ich mitgenommen auf was ich achten muss um ein gutes Programm zu schreiben. +#### Wiederholung/repetition + Separations of Concern ist ein Prinzip von SOLID. Diese besagt, dass man ein Programm in verschiedene Abschnitte unterteilt, die jeweils + ein Problem behandeln. Um eine gute Übersicht über das Programm zu erhalten.