diff --git a/Lerntagebuch.md b/Lerntagebuch.md index 291809b..262459b 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -1,70 +1,76 @@ # Lerntagebuch Programmieren & -werkzeuge, 1. Woche ## Lernziele/Takeaway Am Anfang wurden überwiegend nur organisatorische Sachen geklärt, um einen Einblick auf die uns davorstehenden Aufgaben zu bekommen. - Daraufhin wurde besprochen welche Eigenschaften ein Softwareentwickler/in mitbringend sollte. - Unterschiede zwischen Laien und einem Profi, ist wie im Fußball. Der eine kann es, der andere hat mehr Glück als Verstand 😉 - Wie in allen Berufen wie wir wissen, bringt ein Profi ein erheblich wichtiges Fachwissen mit, die Kombination aus seinem Fachwissen - und richtigen Werkzeugen, hinzu noch die Logik und Prinzipien, machen einen Profi zum Profi. Zu den Prinzipien gehören z.B. Vorab planen, - was wird benötigt oder was kann weg. In unserem Fall hat es zu heißen, Codes die nicht mehr benötigt werden sollten weg. - Auch wurde geklärt, ob ein Softwareentwickler eher ein Künstler oder Handwerker ist. - Beschlossen haben wir, dass ein Entwickler in beide Kategorien gehören, da wie ein Künstler Emotionen mit ins Geschehen gebracht werden und - wie bei den Handwerken nützliches für den Kunden oder Nutzern zu schaffen. +Daraufhin wurde besprochen welche Eigenschaften ein Softwareentwickler/in mitbringend sollte. +Unterschiede zwischen Laien und einem Profi, ist wie im Fußball. Der eine kann es, der andere hat mehr Glück als Verstand 😉 +Wie in allen Berufen wie wir wissen, bringt ein Profi ein erheblich wichtiges Fachwissen mit, die Kombination aus seinem Fachwissen +und richtigen Werkzeugen, hinzu noch die Logik und Prinzipien, machen einen Profi zum Profi. Zu den Prinzipien gehören z.B. Vorab planen, +was wird benötigt oder was kann weg. In unserem Fall hat es zu heißen, Codes die nicht mehr benötigt werden sollten weg. +Auch wurde geklärt, ob ein Softwareentwickler eher ein Künstler oder Handwerker ist. +Beschlossen haben wir, dass ein Entwickler in beide Kategorien gehören, da wie ein Künstler Emotionen mit ins Geschehen gebracht werden und +wie bei den Handwerken nützliches für den Kunden oder Nutzern zu schaffen. ### Erkenntnis - An den Prinzipien und Planung halten ist sehr wichtig. Codes die nicht benötigt werden kommen weg. Mit den richtigen Werkzeugen - und den Richtigen Vorbereitungen ist vieles leichter zu erledigen. Man sollte viel mitdenken und nicht gut auf Glück handeln. +An den Prinzipien und Planung halten ist sehr wichtig. Codes die nicht benötigt werden kommen weg. Mit den richtigen Werkzeugen +und den Richtigen Vorbereitungen ist vieles leichter zu erledigen. Man sollte viel mitdenken und nicht gut auf Glück handeln. #### Wiederholung - Prinzipien sind sehr wichtig für den Entwickler. Dadurch kann die Quote für anfällige Fehler minimiert werden. Regelmäßige Tests - sollten ebenfalls zu den Prinzipien eines Entwicklers gehören, dadurch kann ein Frühzeitiges erkennen von Problemen angeregt werden, und - diese können sofort behoben werden. +Prinzipien sind sehr wichtig für den Entwickler. Dadurch kann die Quote für anfällige Fehler minimiert werden. Regelmäßige Tests +sollten ebenfalls zu den Prinzipien eines Entwicklers gehören, dadurch kann ein Frühzeitiges erkennen von Problemen angeregt werden, und +diese können sofort behoben werden. # Programmierparadigmen, 2. Woche ## Lernziele/Takeaway - Wir haben dieses Woche 5 Programmierparadigmen kennen gelernt. +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. +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. +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 +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. +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). +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 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. - 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. +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. +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.