Browse Source

Lerntagebuch.md

remotes/origin/HEAD
fdai4796 2 years ago
parent
commit
111747d9d2
  1. 66
      Lerntagebuch.md

66
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.
Loading…
Cancel
Save