<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[michster - jeder kann Coden lernen!]]></title><description><![CDATA[Persönlicher Blog von michster. Softwareentwicklung, CMS, SEO und alles weitere aus dem Leben eines Softwareentwickler]]></description><link>https://michster.de/</link><image><url>https://michster.de/favicon.png</url><title>michster - jeder kann Coden lernen!</title><link>https://michster.de/</link></image><generator>Ghost 5.82</generator><lastBuildDate>Tue, 21 Apr 2026 11:07:17 GMT</lastBuildDate><atom:link href="https://michster.de/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Ghost CMS 6 - ActivityPub und Analytics]]></title><description><![CDATA[Update auf Ghost 6 steht vor der Tür. Erfahre mehr über den offenen Standard für dezentrale soziale Netzwerke ActivityPub.]]></description><link>https://michster.de/ghost-cms-6-activitypub-und-analytics/</link><guid isPermaLink="false">67b0ec2a2fd4fea2c77ca569</guid><category><![CDATA[CMS]]></category><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Sat, 15 Feb 2025 20:34:35 GMT</pubDate><media:content url="https://michster.de/content/images/2025/02/Ghost_Cms_6_ActivityPub_Analytics_michster.webp" medium="image"/><content:encoded><![CDATA[<img src="https://michster.de/content/images/2025/02/Ghost_Cms_6_ActivityPub_Analytics_michster.webp" alt="Ghost CMS 6 - ActivityPub und Analytics"><p>Nach eigenen Aussagen des Gr&#xFC;nders und Gesch&#xE4;ftsf&#xFC;hrers von Ghost wird das Major Update dieses Jahr (2025) ver&#xF6;ffentlich. Es soll sich gr&#xF6;&#xDF;tenteils um die Implementierung von ActivityPub und Analytics handeln.</p><h2 id="was-genau-ist-das-protokoll-activitypub">Was genau ist das Protokoll ActivityPub?</h2><p>ActivityPub ist ein offener Standard f&#xFC;r ein dezentrales soziales Netzwerk. Das Protokoll kann von jedem implementiert werden, da es von W3C standardisiert wurde.</p><h3 id="welches-problem-wird-mit-activitypub-gel%C3%B6st">Welches Problem wird mit ActivityPub gel&#xF6;st?</h3><p>Das Problem der meisten Sozialen Netzwerke liegt an der Geschlossenheit. Jedes System ist f&#xFC;r sich. Wenn jemand z.B. auf Instagram einen Beitrag erstellt, wird man diesen auf X nicht finden, au&#xDF;er man dupliziert seinen Content auf andere Plattformen. Creator sind dann meistens nur auf einer ein paar wenigen Netzwerken aktiv.</p><p>Jeder k&#xF6;nnte damit theoretisch seine eigenen Beitr&#xE4;ge hosten und w&#xE4;re nicht mehr abh&#xE4;ngig von einem Unternehmen wie Meta oder X.</p><p>Man kann ActivityPub gut mit E-Mail vergleichen. E-Mail geh&#xF6;rt nicht einem Unternehmen sondern es gibt unz&#xE4;hlige Anbieter. Man kann auch seinen eigenen Mail-Server aufsetzen und E-Mail empfangen / senden. Die Kommunikation funktioniert in alle Richtungen GMX &lt;-&gt; GMail &lt;-&gt; Outlook &lt;-&gt; eigener Server.</p><p>ActivityPub macht genau das gleiche, nur eben f&#xFC;r Soziale Netzwerke. Das Protokoll kennt keine Grenzen. Das hei&#xDF;t, du kannst Leuten &#xFC;ber verschiedenste Plattformen hinweg abonnieren, folgen, liken und kommentieren. Es gibt keine Algorithmen und man ist nicht in einem Netzwerk gefangen.</p><p>Dadurch ist man wesentlich unabh&#xE4;ngiger und h&#xE4;tte theoretisch auch eine viel gr&#xF6;&#xDF;ere Reichweite - was wiederum dem Wachstum hilft.</p><p>Weitere Infos folgen in einem separaten Post, sobald ich ActivityPub getestet habe.</p>]]></content:encoded></item><item><title><![CDATA[Monolithen oder Micro-Service Architektur?]]></title><description><![CDATA[Monolith oder Microservices? Erfahrungsbericht, wann der Wechsel lohnt, basierend auf Datendurchfluss, Teamgröße und Ausfallsicherheit.]]></description><link>https://michster.de/monolithen-oder-micro-service-architektur/</link><guid isPermaLink="false">67af3e492fd4fea2c77ca4c4</guid><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Fri, 14 Feb 2025 22:19:09 GMT</pubDate><media:content url="https://michster.de/content/images/2025/02/Monolith_oder_MicroService_Architektur_Erfahrungsbericht_michster.webp" medium="image"/><content:encoded><![CDATA[<img src="https://michster.de/content/images/2025/02/Monolith_oder_MicroService_Architektur_Erfahrungsbericht_michster.webp" alt="Monolithen oder Micro-Service Architektur?"><p>&#xDC;ber diese Fragen kann man sich Tage, Wochen, Monate und Jahre den Kopf zerbrechen. </p><p>Eine 100&#xA0;% L&#xF6;sung wirst du nicht finden. Da es sie einfach nicht gibt.</p><p>Du versuchst wahrscheinlich aktuell entweder ein komplett neues Projekt zu starten oder ein bestehendes komplett neu aufzubauen.</p><p>Beide F&#xE4;lle hatte ich bereits. Vorhanden war eine Enterprise Service Bus als Monolith. Diese musste aufgrund der &#xC4;nderung des prim&#xE4;ren Endpunktes der Schnittstelle und EOL Java-Version / Community-Framework ersetzt werden.</p><p>Nat&#xFC;rlich kam mir dann auch die Frage: </p><blockquote>&quot;Es w&#xE4;re doch sinnvoller, den tr&#xE4;gen und aufgebl&#xE4;hten Monolithen in Micro-Services abzubilden, oder nicht?&quot;</blockquote><p>Wie so oft ist die Antwort, es kommt drauf an. Auch wenn viele sagen, dass Micro-Services die L&#xF6;sung auf alle Probleme sind&#xA0;&#x2026;</p><p>Folgendes sollte beachtet werden:</p><ul><li>Welche Art von Datendurchfluss und -last erwartest du?</li><li>Wie viel Softwareentwickler arbeiten am Projekt?</li><li>Wie viel Endpunkte m&#xFC;ssen bespielt werden?</li><li>Was genau waren die Probleme am Monolithen in deinem speziellen Fall?</li><li>Langfristiges Ziel? Eventuelle Skalierungen?</li><li>...</li></ul><p>Bist du alleine, dann schei&#xDF; drauf und bau wieder einen Monolithen. Spar dir den unn&#xF6;tigen Overhead an Administrationsarbeit und fang endlich damit an. Ich war bei dem Projekt auch alleine. Monolith alleine war genug Arbeit. Man stopft einfach alles in ein System und gut ist. Au&#xDF;er du bist sehr fit in Orchestrierungen mit z.B. Kubernetes oder der Gleichen.</p><p>Ist die Datenrate sehr hoch, splitte den Monolithen und verwende irgendeine Hybridarchitektur aus Monolith und Micro-Service. Mono-Services oder Microliths, wie auch immer.</p><p>Outsource einfach die leistungsintensiven Jobs aus dem Monolithen. Je nach Umgebung ist sowas wichtig, um ein gewisses Load-Balancing zu betreiben.</p><p>Das einzige Problem am Monolithen in meinen Fall war &quot;nur&quot; die Ausfallsicherheit. Wenn der Service crasht, geht halt gar nichts mehr. Wobei das nat&#xFC;rlich auch beim Thema Subsysteme einer Schnittstelle der Fall ist. Datenbank nicht erreichbar? Geht nichts mehr. Endpunkt A down? Gehts nichts mehr. Dead Letter Queue des Message-Brokers hat zu &quot;System out of Memory&quot; gef&#xFC;hrt? Geht nichts mehr. Zugangsdaten vom Root-Server vergessen? Geht nichts mehr und du kannst nichts dran &#xE4;ndern.</p><p>Den kompletten Stillstand einer Schnittstelle kann man mit Micro-Services mehr oder weniger gut vermeiden. Es kommt auch immer auf die Abh&#xE4;ngigkeiten der Services darauf an. Ob sich der Mehraufwand daf&#xFC;r lohnt, musst du selbst entscheiden. Ich w&#xFC;rde lieber die Fehler, welche zur Downtime f&#xFC;hrten, beheben und mich f&#xFC;r einen stabilen Monolithen entscheiden oder den hybriden Ansatz. </p><p>Als verantwortlicher f&#xFC;r die Schnittstelle will man ja die h&#xF6;chste Verf&#xFC;gbarkeitsrate seines Produktes. Es ist kein Problem, wenn die anderen Systeme nicht funktionieren. Das liegt au&#xDF;erhalb deines Verf&#xFC;gungsrahmens. </p><p>Hauptsache, deine Schnittstelle l&#xE4;uft und w&#xFC;rde Daten liefern.</p>]]></content:encoded></item><item><title><![CDATA[Automatisierter Upload nach Git-Push]]></title><description><![CDATA[Continuous Deployment mit Git Hooks: Lade nach jedem Commit automatisch Dateien auf deinen Server hoch. Einfaches Beispiel mit SSH & SCP für schnelle Updates.]]></description><link>https://michster.de/automatisierter-upload-nach-git-push/</link><guid isPermaLink="false">67ae0bf72fd4fea2c77ca461</guid><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Thu, 13 Feb 2025 15:45:31 GMT</pubDate><media:content url="https://michster.de/content/images/2025/02/Automatisierter_Upload_Nach_Git_Push_commit_michster.webp" medium="image"/><content:encoded><![CDATA[<img src="https://michster.de/content/images/2025/02/Automatisierter_Upload_Nach_Git_Push_commit_michster.webp" alt="Automatisierter Upload nach Git-Push"><p>Continuous Deployment muss nicht immer umfangreich oder kompliziert konfiguriert werden. Oft braucht man keine Tests oder Stage-Umgebungen, wenn man schnell eine Website ausrollen will oder nur Kleinigkeiten wie Texte oder Styles anpasst. </p><p>Aber auch andere Anwendungen k&#xF6;nnen relative einfach mit git hooks automatisch nach bestimmten Aktionen, wie push, commit, rebase oder update, ausgef&#xFC;hrt werden.</p><p>Angenommen, wir wollen nach jedem erfolgreichen git commit unsere lokalen Daten auf unseren Webhosting-Server hochladen. Im Beispiel verwende ich einen normalen SSH-Zugang. Auf dem Server ist bereits ein Verzeichnis mit entsprechenden Berechtigungen f&#xFC;r den Benutzer angelegt. </p><p>Zuallererst brauchen wir ein Git-Repository. Nach dem Initialisieren des Repos wird ein Ordner mit dem Namen .git erstellt. In diesem befindet sich ein Unterordner /hooks.</p><p>Zur Wahl steht nun:</p><ul><li>pre-commit: Das Skript wird <strong>vor dem</strong> commit ausgef&#xFC;hrt</li><li>post-commit: Das Skript wird <strong>nach dem</strong> commit ausgef&#xFC;hrt</li></ul><p>In dem Beispiel wollen wir erst einen Erfolgreichen commit und anschlie&#xDF;end die Dateien hochladen.</p><p>Also erstellen wir in /hooks eine Datei mit dem Namen <strong>post-commit</strong></p><p>Stellen sicher, dass der Benutzer auch Rechte f&#xFC;r die Ausf&#xFC;hrung der Datei hat:</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">chmod +x post-commit</code></pre><figcaption><p><span style="white-space: pre-wrap;">&#xC4;nderung der Berechtigung f&#xFC;r post-commit</span></p></figcaption></figure><p>Dann erstellen wir eine Funktion, welche mithilfe von scp die Dateien auf den Server verschiebt. Zuvor wird noch &#xFC;berpr&#xFC;ft, ob die Dateien auch existieren.</p><figure class="kg-card kg-code-card"><pre><code class="language-bash">#!/bin/sh

# Definieren der Dateien und Serververbindung
FILES_TO_UPLOAD=(&quot;index.html&quot; &quot;styles.css&quot; &quot;scripts.js&quot;)
REMOTE_USER=&quot;your-username&quot;
REMOTE_HOST=&quot;your-remote-host&quot;
REMOTE_PATH=&quot;path/on/remote/server&quot;

# Jede Datei einzeln pr&#xFC;fen und hochladen
for FILE in &quot;${FILES_TO_UPLOAD[@]}&quot;; do
  # Checken, ob die Datei existiert
  if [ -f &quot;$FILE&quot; ]; then
    # Hochladen mit scp
    scp &quot;$FILE&quot; &quot;$REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH&quot;
    if [ $? -ne 0 ]; then
      echo &quot;Datei konnte nicht hochgeladen werden $FILE.&quot;
      exit 1
    fi
  else
    echo &quot;Datei $FILE existiert nicht.&quot;
    exit 1
  fi
done

# Fortfahren mit dem commit
exit 0</code></pre><figcaption><p><span style="white-space: pre-wrap;">post-commit mit SCP</span></p></figcaption></figure><p>Nach jedem erfolgreichem commit wird nun diese Funktion ausgef&#xFC;hrt und die Dateien auf den Server hochgeladen.</p><p>Nat&#xFC;rlich kann man diese Funktion noch um alle m&#xF6;glichen Features erweitern. Wie z.B. l&#xF6;schen von nicht mehr vorhandenen Dateien, automatisierte Tests, ausf&#xFC;hren von Skripten auf dem Server, neu starten von Prozessen auf dem Server und so weiter.</p><p>Das Beispiel soll erstmal nur zeigen, dass so etwas &#xFC;berhaupt m&#xF6;glich ist. Man braucht nicht zwangsweise diese fancy CI/CD Funktionen von GitHub. Vor allem hat man so die volle Kontrolle dar&#xFC;ber und muss seine Secrets nicht mit der Cloud teilen.</p>]]></content:encoded></item><item><title><![CDATA[Gefahren durch KI - Wissensverlust]]></title><description><![CDATA[Künstliche Intelligenz erleichtert die Arbeit von Softwareentwicklern, birgt aber auch das Risiko, dass Wissen verloren geht. Wie beeinflusst KI die Zukunft der Programmierung und sollte man weiterhin lernen, obwohl KI Apps in Minuten erstellen kann?]]></description><link>https://michster.de/gefahren-durch-ki-wissensverlust/</link><guid isPermaLink="false">67ac744d2fd4fea2c77ca3e1</guid><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Wed, 12 Feb 2025 11:08:39 GMT</pubDate><media:content url="https://michster.de/content/images/2025/02/Gemini_Generated_Image_mvp2hgmvp2hgmvp2.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://michster.de/content/images/2025/02/Gemini_Generated_Image_mvp2hgmvp2hgmvp2.jpeg" alt="Gefahren durch KI - Wissensverlust"><p>Vorab:<br>K&#xFC;nstliche Intelligenz ist super. Gerade f&#xFC;r mich als Softwareentwickler / Programmierer ist es eine enorme Erleichterung. Google verwende ich nur noch sehr selten f&#xFC;r die Recherchearbeiten w&#xE4;hrend des Codens. </p><p>Eine Gefahr, welche ich auch schon bei mir bemerkt habe - ist der Verlust an Wissen, welches man mit sich herumtr&#xE4;gt. Man verl&#xE4;sst sich zu sehr auf die KI. Wissen geht verloren bzw. wird gar nicht erst aufgebaut. Zumindest, wenn man gewisse Themen nicht hinterfragt und tiefer eintaucht.</p><p>F&#xFC;r eines meiner letzten Projekte habe ich einen Service Worker f&#xFC;r die PWA (Progressive Web App) ben&#xF6;tigt. Da ich kein Plan davon hatte, hab ich einfach Claude AI um die Erstellung einer service-worker.js gefragt. </p><p>10 Sekunden sp&#xE4;ter war das Skript fertig und der Service-Worker l&#xE4;uft einwandfrei.</p><p>Anschlie&#xDF;end habe ich einfach weiter an der eigentlichen Anwendung gearbeitet, ohne &#xFC;berhaupt zu wissen, wie der Service-Worker genau funktioniert. Stand jetzt k&#xF6;nnte ich nicht ohne Doku einen Service-Worker aufsetzen. Es gibt auch verschiedene Zyklen eines Service-Workers usw. </p><p>Als man noch m&#xFC;hselig bei Problemen die Suchmaschinen durchforsten musste, hat man sich intensiv mit den Problemen und L&#xF6;sungen auseinandersetzen m&#xFC;ssen, warum etwas nicht funktioniert oder gerade warum etwas funktioniert. Nat&#xFC;rlich gab es auch hier schon das simple Copy&amp;Paste - wovon ich aber nie ein Freund war (bis auf CSS). </p><p>Nat&#xFC;rlich wird KI und die LLMs bleiben und sich weiterentwickeln. Ich frage mich nur, was aus der zuk&#xFC;nftigen Generation wird.</p><p>Wird es noch Softwareentwickler geben oder nur noch Prompt-Entwickler? </p><p>Vorstellen kann ich mir das ganze noch nicht. Irgendwer muss schlussendlich auch die AI programmieren, warten und weiterentwickeln. </p><p>Auf der anderen Seite muss man sich auch vor Augen halten, dass alle Programmiersprachen, welche von mehreren Millionen Menschen auf der ganzen Welt t&#xE4;glich verwendet werden, von nur einigen Hunderten bis Tausenden Menschen entwickelt wurden. </p><p></p><p>Meiner Meinung nach sollte man schon verstehen, womit man t&#xE4;glich arbeitet. Auch wenn die KI in 5 Minuten eine vollfunktionsf&#xE4;hige App erstellen kann.</p><p>Lernen konnte man noch nie so effektiv und effizient wie heute - wenn man KI daf&#xFC;r richtig einsetzt. </p><p> Wissen ist Macht - wollen wir diese Macht abgeben?</p><p></p>]]></content:encoded></item><item><title><![CDATA[Wie entwickle ich meine eigene App mit Flutter - Planung]]></title><description><![CDATA[<p>Vor ungef&#xE4;hr zwei Jahren (2020) habe ich mich das erste Mal mit Flutter, also der Entwicklung und Programmierung von Apps, besch&#xE4;ftigt. Damals auch bereits den mehr oder weniger guten Grundriss einer &quot;Fitness Tracking App&quot; versucht umzusetzen. Leider habe ich mir da etwas zu viel</p>]]></description><link>https://michster.de/wie-programmiere-ich-eine-eigene-app-mit-flutter-planung/</link><guid isPermaLink="false">64ff6f129774e2baa26e21b2</guid><category><![CDATA[Flutter]]></category><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Wed, 21 Sep 2022 18:00:40 GMT</pubDate><media:content url="https://michster.de/content/images/2022/09/Erste_Flutter_Sport_App_UI_Michster_Fivel_Programmieren-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://michster.de/content/images/2022/09/Erste_Flutter_Sport_App_UI_Michster_Fivel_Programmieren-1.png" alt="Wie entwickle ich meine eigene App mit Flutter - Planung"><p>Vor ungef&#xE4;hr zwei Jahren (2020) habe ich mich das erste Mal mit Flutter, also der Entwicklung und Programmierung von Apps, besch&#xE4;ftigt. Damals auch bereits den mehr oder weniger guten Grundriss einer &quot;Fitness Tracking App&quot; versucht umzusetzen. Leider habe ich mir da etwas zu viel zugemutet und habe das Projekt relativ schnell wieder schleifen lassen. </p><p>Der Status Quo schaut folgenderma&#xDF;en aus: </p><ul><li>Design eher so mittelm&#xE4;&#xDF;ig (UI/UX)</li><li>Funktionen gar nicht gegeben</li><li>Datenmodell funktioniert so nicht</li><li>lokale Datenbank SQLite</li></ul><p>Was ich behalten m&#xF6;chte:</p><ul><li>Farbdesign (evtl. sp&#xE4;ter andere Themes, nicht alle m&#xF6;gen Darkmode &#x1F937;&#x200D;&#x2642;&#xFE0F;)</li></ul><p>Was ich &#xE4;ndern (verbessern) m&#xF6;chte:</p><ul><li>Datenmodell unbedingt &#xFC;berdenken und m&#xF6;glichst einfach erweiterbar</li><li>Umstieg von relationaler zu dokumentenbasierter Datenspeicherung; SQLite durch Realm ersetzen. Auch ein Punkt, welcher Ersters schon mal erleichtert.</li><li>MVP Funktionen integrieren</li><li>Automatisierte Funktionstests</li><li>sinnvolles UI/UX-Design</li><li>erstmal keine Cloud-Anbindung f&#xFC;r Benutzerdaten</li></ul><p>Hier mal ein Video zu dem aktuellen Stand der App. Sobald ich einen brauchbaren Release habe, werde ich diesen im Google Play Store ver&#xF6;ffentlichen. </p><figure class="kg-card kg-image-card"><img src="https://michster.de/content/images/2022/09/Erste_Flutter_Sport_App_UI_Michster_Fivel_Programmieren.png" class="kg-image" alt="Wie entwickle ich meine eigene App mit Flutter - Planung" loading="lazy" width="2000" height="1125" srcset="https://michster.de/content/images/size/w600/2022/09/Erste_Flutter_Sport_App_UI_Michster_Fivel_Programmieren.png 600w, https://michster.de/content/images/size/w1000/2022/09/Erste_Flutter_Sport_App_UI_Michster_Fivel_Programmieren.png 1000w, https://michster.de/content/images/size/w1600/2022/09/Erste_Flutter_Sport_App_UI_Michster_Fivel_Programmieren.png 1600w, https://michster.de/content/images/size/w2400/2022/09/Erste_Flutter_Sport_App_UI_Michster_Fivel_Programmieren.png 2400w" sizes="(min-width: 720px) 720px"></figure>]]></content:encoded></item><item><title><![CDATA[Umgebungsvariablen unter Windows 10 setzen]]></title><description><![CDATA[In diesem kurzen Beitrag erfährst du, wie du ganz einfach deine Path Umgebungsvariablen für zum Beispiel Java setzen kannst.]]></description><link>https://michster.de/wie-setze-ich-die-path-umgebungsvariablen-unter-windows-10/</link><guid isPermaLink="false">64ff6f129774e2baa26e21af</guid><category><![CDATA[gut_zu_wissen]]></category><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Mon, 07 Sep 2020 15:26:44 GMT</pubDate><media:content url="https://michster.de/content/images/2020/09/die_path_umgebungsvariable_unter_windows10_michster.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://michster.de/content/images/2020/09/die_path_umgebungsvariable_unter_windows10_michster.png" alt="Umgebungsvariablen unter Windows 10 setzen"><p>Unter Windows 10 lassen sich die Umgebungsvariablen einfach &#xFC;ber die Benutzeroberfl&#xE4;che setzen.</p>
<p>Daf&#xFC;r benutzt du einfach die Windows 10 Suche und suchst nach &quot;Systemumgebungsvariablen bearbeiten&quot;. Dann einfach das Ergebnis ausw&#xE4;hlen und das folgende Fenster mit den Systemeigenschaften sollte sich &#xF6;ffnen.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://michster.de/content/images/2020/09/systemeigenschaften_windows10_michster.png" class="kg-image" alt="Umgebungsvariablen unter Windows 10 setzen" loading="lazy"><figcaption>Systemeigenschaften - Windows 10</figcaption></figure><!--kg-card-begin: markdown--><p>Anschlie&#xDF;end auf den Button &quot;Umgebungsvariablen...&quot;, der bereits fokusiert ist, klicken.</p>
<p>Entsprechendes Fenster sollte sich dann &#xF6;ffnen.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://michster.de/content/images/2020/09/umgebungsvariablen_windows10_michster.png" class="kg-image" alt="Umgebungsvariablen unter Windows 10 setzen" loading="lazy"><figcaption>Umgebungsvariablen - Windows 10</figcaption></figure><!--kg-card-begin: markdown--><p>Hier hast du dann die Auswahl zwischen:</p>
<ol>
<li>Benutzervariablen f&#xFC;r dein Konto</li>
<li>Systemvariablen f&#xFC;r das gesamte Betriebssystem</li>
</ol>
<p>Hinzugef&#xFC;gte Systemvariablen sind f&#xFC;r alles Benutzerkonten sichtbar. Sollte es der Fall sein, dass nur du den PC verwendest, reicht das Setzen von Benutzervariablen v&#xF6;llig aus.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Um zum Beispiel das Java JDK einzubinden, bearbeitet man ganz einfach die &quot;Path&quot;-Variable unter den Benutzervariablen.</p>
<p>Die Path-Variable ausw&#xE4;hlen, auf Bearbeiten... klicken und auf Durchsuchen</p>
<p>Falls es diese noch nicht gibt, einfach auf Neu... klicken und entsprechend ausf&#xFC;llen.</p>
<p>Name der Variable: Path<br>
Wert der Variable: auf den Button Verzeichnis durchsuchen... klicken und den Ort ausw&#xE4;hlen.</p>
<p>Bei Java kommt es immer drauf an, welche JDK-Version und von welchen Anbieter du diese verwendest.</p>
<p>Bei mir ist der Pfad zum Beispiel dieser:</p>
<!--kg-card-end: markdown--><pre><code class="language-bash">C:\Program Files\AdoptOpenJDK\jdk-13.0.1.9-hotspot\bin</code></pre><!--kg-card-begin: markdown--><p>Anschlie&#xDF;end alle Fenster mit OK best&#xE4;tigen und einmal die Konsole neustarten. In der offnen Instanz sind noch die alten Variablen gespeichert.</p>
<p>Bei Fragen - Mein Discord ist f&#xFC;r alle offen :)<br>
<a href="https://discord.gg/BMsgmsx?ref=michster.de">https://discord.gg/BMsgmsx</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Flutter für Anfänger - Was ist der Scaffold?]]></title><description><![CDATA[Das MaterialApp Widget in Flutter ist eines der wichtigsten Widgets, die es gibt. Darin kann unteranderem der Scaffold, die AppBar oder der FloatingActi...]]></description><link>https://michster.de/flutter-fur-anfanger-was-ist-der-scaffold-und-die-appbar/</link><guid isPermaLink="false">64ff6f129774e2baa26e21ad</guid><category><![CDATA[Flutter]]></category><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Fri, 04 Sep 2020 15:55:59 GMT</pubDate><media:content url="https://michster.de/content/images/2020/09/Flutter_Fu-r_Anfa-nger_Was_Ist_Scaffold_Appbar_MaterialApp.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://michster.de/content/images/2020/09/Flutter_Fu-r_Anfa-nger_Was_Ist_Scaffold_Appbar_MaterialApp.png" alt="Flutter f&#xFC;r Anf&#xE4;nger - Was ist der Scaffold?"><p>Falls du hier gelandet bist, beginnst du vermutlich erst mit der Entwicklung von App mithilfe von Flutter und Dart. Dir ist vermutlich auch schon aufgefallen, dass der Scaffold so gut wie &#xFC;berall in Flutter auftaucht. Nat&#xFC;rlich hat dieser auch seine Da-Seinsberechtigung.</p>
<p>Was der Scaffold in Flutter ist, wof&#xFC;r dieser ben&#xF6;tigt wird und warum du ihn unbedingt verwenden sollst, wirst du hier erfahren.</p>
<!--kg-card-end: markdown--><pre><code class="language-javascript">import &apos;package:flutter/material.dart&apos;;

void main() =&gt; runApp(MichsterApp());

class MichsterApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text(&quot;Michster App&quot;),
          centerTitle: false,
          backgroundColor: Colors.red,
        ),
        body: Center(
          child: Text(&quot;Hier steht was!&quot;),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: () {
            print(&quot;Test&quot;);
          },
          child: Icon(Icons.add),
        ),
      ),
    );
  }
}</code></pre><!--kg-card-begin: markdown--><p>Wie du siehst, ist ein Scaffold nichts anderes als ein weiteres Widget. Darauf baut auch das Konzept von Flutter auf.</p>
<p>Das Scaffold Widget hat die Besonderheiten, dass es die standart Strukturen einer Material App bereitstellt und auch visuell darstellt. Die AppBar und der FloatingActionButton sind hier nur ein paar Beispiele daf&#xFC;r.</p>
<h2 id="dasflutterscaffoldwidget">Das Flutter Scaffold Widget</h2>
<p>Das Scaffold Widget wird meistens in der &quot;home&quot; Eigentschaft eines MaterialApp Widgets verwendet.</p>
<p>Der Scaffold liefert Struktur und Design einer modernen Material-App.</p>
<p>Folgend Eigenschaften k&#xF6;nnen verwendet werden:</p>
<ul>
<li>title: Text-Widget</li>
<li>appBar: AppBar-Widget</li>
<li>floatingActionButton: FloatingActionButton-Widget</li>
<li>backgroundColor: Farbe</li>
<li>body: Inhalt der Seite</li>
</ul>
<h2 id="dieflutterappbar">Die Flutter AppBar</h2>
<p>Die AppBar ist ein weiters Widget aus dem Flutter SDK. Es ist die Leiste am oberen Bildschrimrand, wor&#xFC;ber meistens die &#xDC;berschrift und Navigation stattfindet.</p>
<p>Als Eigenschaften gibt es Beispielsweise:</p>
<ul>
<li>backgroundColor: Farbe</li>
<li>title: Text-Widget</li>
<li>centertitle: true oder false</li>
</ul>
<h2 id="derflutterfloatingactionbutton">Der Flutter FloatingActionButton</h2>
<p>Der standard Button innerhalb eines Scaffolds ist der floatingActionButton. Dieser kann nat&#xFC;rlich jede x-beliebige Funktion enthalten, meistens wird dadurch aber ein Create-Event getriggert. Also ein bestimmer Datensatz wird durch einen Klick erstellt.</p>
<p>Auch der FloatingActionButton hat Eigenschaften:</p>
<ul>
<li>onPressed: erwartet einen anonyme Funktion</li>
<li>color: Farbe</li>
<li>child: Text, Icon,...</li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Flutter auf macOS installieren]]></title><description><![CDATA[Auf dem MacBook, iMac oder Mac Pro, Flutter lässt sich auf allen Geräten installieren die auf macOS 64Bit laufen. OSX wird laut der Dokumentation nicht unterstützt. Solange dein OS X aber auf 64Bit läuft, wüsste ich nicht was dagegen spricht.]]></description><link>https://michster.de/flutter-auf-macos-installieren/</link><guid isPermaLink="false">64ff6f129774e2baa26e21aa</guid><category><![CDATA[Flutter]]></category><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Fri, 12 Jun 2020 14:38:55 GMT</pubDate><media:content url="https://michster.de/content/images/2020/06/flutter_macos_installation_michster_anleitung_yt.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://michster.de/content/images/2020/06/flutter_macos_installation_michster_anleitung_yt.jpg" alt="Flutter auf macOS installieren"><p>Auf dem MacBook, iMac oder Mac Pro, Flutter l&#xE4;sst sich auf allen Ger&#xE4;ten installieren die auf macOS 64Bit laufen. OS X wird laut der Dokumentation nicht unterst&#xFC;tzt. Solange dein OS X aber auf 64Bit l&#xE4;uft, w&#xFC;sste ich nicht was dagegen spricht.</p><hr><!--kg-card-begin: markdown--><h2 id="1gitinstallieren">1. Git installieren</h2>
<p>Check vorher kurz, ob Git schon installiert ist. Das kannst du machen, in dem du im Terminal einfach mal &quot;git&quot; eingibst.</p>
<p>Wenn folgendes erscheint, hast du noch kein Git installiert.</p>
<blockquote>
<p>-bash: git: command not found</p>
</blockquote>
<p>Sollte das der Fall sein, sollte das Terminal dir zeigen, wie du Git installierst.<br>
Mehr Infos zu Git? <a href="https://michster.de/wie-lerne-ich-effektiv-git/">Gibt&apos;s hier!</a></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="2flutterherunterladen">2. Flutter herunterladen</h2>
<p>&#xD6;ffne ein neue Terminal und klone die aktuelle Stable-Version von Git.</p>
<blockquote>
<p>git clone <a href="https://github.com/flutter/flutter.git?ref=michster.de">https://github.com/flutter/flutter.git</a> -b stable --depth 1</p>
</blockquote>
<h2 id="3pathvariablesetzen">3. PATH Variable setzen</h2>
<p>Im Terminal einmal folgenden Befehl eingeben:</p>
<blockquote>
<p>echo $SHELL</p>
</blockquote>
<p>Wenn du hier &quot;bash&quot; also R&#xFC;ckgabe bekommst, kannst pr&#xFC;fen, ob bereits ein Datei Namens &quot;.bash_profile&quot; existiert.</p>
<blockquote>
<p>pico $HOME/.bash_profile</p>
</blockquote>
<p>Anschlie&#xDF;ende f&#xFC;gst du den Pfad zu Flutter in die .bash_profile Datei ein.<br>
Bei mir schaut das folgenderma&#xDF;en aus:</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://michster.de/content/images/2020/06/flutter_installieren_macos_path_festlegen_michster.jpg" class="kg-image" alt="Flutter auf macOS installieren" loading="lazy"><figcaption>PATH-Variable f&#xFC;r Flutter festlegen</figcaption></figure><!--kg-card-begin: markdown--><blockquote>
<p>export PATH=&quot;$PATH:$HOME/flutter/bin&quot;</p>
</blockquote>
<p>Datei mit CONTROL + X schlie&#xDF;en und mit Y best&#xE4;tigen.</p>
<p>Terminal neustarten und mit</p>
<blockquote>
<p>which flutter</p>
</blockquote>
<p>testen, ob es funktioniert. Wenn ja, sollte der Pfad ausgegeben, werden. Ansonsten bitte nochmal die Schritte wiederholen.</p>
<h2 id="4flutterprecache">4. Flutter precache</h2>
<p>Am besten gibts du die folgenden Befehl in der Reihenfolge ein:</p>
<blockquote>
<p>flutter</p>
</blockquote>
<p>Dadurch werden noch ein paar Daten f&#xFC;r Flutter heruntergeladen</p>
<blockquote>
<p>flutter precache</p>
</blockquote>
<p>Um ben&#xF6;tigte binaries und assets zu cachen.</p>
<p>Und direkt mal ein</p>
<blockquote>
<p>flutter upgrade</p>
</blockquote>
<p>ausf&#xFC;hren, um gleich mal die neuste Version zu installieren.</p>
<h2 id="5flutterdoctor">5. Flutter doctor</h2>
<p>Nun bitte pr&#xFC;fen, ob dein macOS soweit Fit ist:</p>
<blockquote>
<p>flutter doctor</p>
</blockquote>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://michster.de/content/images/2020/06/flutter_installieren_auf_macos_doctor_michster.jpg" class="kg-image" alt="Flutter auf macOS installieren" loading="lazy"><figcaption>Flutter doctor starten</figcaption></figure><!--kg-card-begin: markdown--><p>Der Doc sagt dir dann, was du f&#xFC;r Flutter noch alles brauchst.<br>
Die Punkte mit den Ausrufezeichen sind optional, du brauchst also nicht alle Editoren zu installieren. Xcode und Android Studio brauchst du jedoch f&#xFC;r die beiden Simulatoren (iOS und Android).</p>
<h2 id="6androidstudioinstallierenmitandroidsimulator">6. Android Studio installieren (mit Android Simulator)</h2>
<p>Einfach hier herunterladen:<br>
<a href="https://developer.android.com/studio?ref=michster.de">Android Studio herunterladen</a></p>
<p>Anschlie&#xDF;end wird es so installiert, wie jedes andere Programm auf macOS aus.<br>
Doppelklick -&gt; Drag &amp; Drop -&gt; Android Studio</p>
<p>Android Studio &#xF6;ffnen und durchklicken, wichtig ist hier, dass der Haken bei Android SDK gesetzt ist.</p>
<p>Um f&#xFC;r Android zu programmieren, musst du noch den Lizenzen zustimmen.</p>
<blockquote>
<p>flutter doctor --android-licenses</p>
</blockquote>
<p>Nach dem &#xF6;ffnen von Android Studio unten auf das Zahnrad &quot;Configure&quot; und auf Plugins klicken. Dann nach Flutter suchen und das erste mit ca. 5M Downloads installieren. W&#xE4;hrend der installation erscheint eine Meldung, dass automatisch Dart mit installiert wird. Diese kannst du mit ok best&#xE4;tigen.</p>
<p>Wenn du damit fertig bist, musst du Android Studio neustarten. Dann wieder auf Configure und auf AVD Manager klicken. Hier kannst du dann dein virtuelles Android Smartphone erstellen. Ich empfehle hier:</p>
<p>Device: Nexus 5<br>
Android: 28 (vorher auf Download klicken)</p>
<p>Und fertig!</p>
<p>Nun kannst du gleich dein erstes Test-Projekt erstellen.</p>
<p>Starte hierzu Android Studio neu und klick auf &quot;Create New Flutter Project&quot;.<br>
Alles mit weiter best&#xE4;tigen und schon kannst du die App starten.</p>
<p>Gestartet wird &#xFC;ber den gr&#xFC;nen Playbutton.</p>
<h2 id="7xcodeinstallierenmitiossimulator">7. XCode installieren (mit iOS Simulator)</h2>
<p>Einfach hier herunterladen:<br>
<a href="https://apps.apple.com/us/app/xcode/id497799835?ref=michster.de">XCode herunterladen / installieren</a></p>
<p>Nach der installation wirst du aufgefordert, einige Bedinungen zu akzeptieren. Wenn du das nicht machst, kannst du auch den Simulator nicht starten.</p>
<p>Um das virtuelle iPhone zu benutzen:<br>
&#xD6;ffnen kannst du den iOS Simulator &#xFC;ber das Terminal.</p>
<blockquote>
<p>open -a Simulator</p>
</blockquote>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://michster.de/content/images/2020/06/flutter_auf_macos_installieren_ios_simulator_xcode.jpg" class="kg-image" alt="Flutter auf macOS installieren" loading="lazy"><figcaption>iOS Simulator &#xFC;ber Terminal &#xF6;ffnen</figcaption></figure><!--kg-card-begin: markdown--><p>Oder du w&#xE4;hlst in Android Studio den Simulator aus:</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://michster.de/content/images/2020/06/flutter_auf_macos_installieren_android_studio_simulator.jpg" class="kg-image" alt="Flutter auf macOS installieren" loading="lazy"><figcaption>iOS Simulator &#xFC;ber Android Studio starten</figcaption></figure><hr><!--kg-card-begin: markdown--><p>Falls du nicht weiterkommst, schau dir einfach das zum Beitrag passende Youtube Video von mir an. Falls du dann noch Fragen hast, kommentier einfach unter dem Video und ich werde mich darum k&#xFC;mmern. :)</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Falls du mehr aus der Welt der Softwareentwickler erfahren m&#xF6;chtest, melde dich doch sehr gerne hier f&#xFC;r den Newsletter an. Keine Angst, ich werde dich nicht mit sinnlosen Mails zuspammen. Du sollst ja schlie&#xDF;lich lernen wie man Software entwickelt. :)</p>
<!--kg-card-end: markdown--><!--kg-card-begin: html--><script async data-uid="78a4daec5a" src="https://michster.ck.page/78a4daec5a/index.js"></script><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Das sicherste Passwort ist ein Schlüssel!]]></title><description><![CDATA[<p>Lasst mich mal eben eines klarstellen, es gibt Menschen, die verwenden f&#xFC;r jedes Benutzerkonto das gleiche Passwort. Gerade jene, welche nicht in der IT-Branche arbeiten. Das ist aber auch gar nicht weiter schlimm. Egal welches Passwort du auch verwendest. Jedes kann mithilfe der n&#xF6;tigen Ressourcen gehackt</p>]]></description><link>https://michster.de/das-sicherste-passwort-ist-ein-schlussel/</link><guid isPermaLink="false">64ff6f129774e2baa26e21a4</guid><category><![CDATA[Storys]]></category><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Sat, 25 Jan 2020 16:29:00 GMT</pubDate><media:content url="https://michster.de/content/images/2020/01/michster_was_ist_2fa_sicheres_passwort_schl-ssel.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://michster.de/content/images/2020/01/michster_was_ist_2fa_sicheres_passwort_schl-ssel.jpg" alt="Das sicherste Passwort ist ein Schl&#xFC;ssel!"><p>Lasst mich mal eben eines klarstellen, es gibt Menschen, die verwenden f&#xFC;r jedes Benutzerkonto das gleiche Passwort. Gerade jene, welche nicht in der IT-Branche arbeiten. Das ist aber auch gar nicht weiter schlimm. Egal welches Passwort du auch verwendest. Jedes kann mithilfe der n&#xF6;tigen Ressourcen gehackt werden. </p><p>Wie kann ich mich denn dann am besten sch&#xFC;tzen?</p><!--kg-card-begin: markdown--><p>Seit einigen Jahren bieten verschiedenste Plattformen die M&#xF6;glichkeit auf 2FA an.</p>
<h2 id="wasgenauist2fa">Was genau ist 2FA?</h2>
<p>2FA steht f&#xFC;r Two-Factor Authentication zu deutsch Zwei-Faktor-Authentisierung. Dieses verfahren erweitert den Identit&#xE4;tsnachweis um einen weiteren Faktor.</p>
<p>Standardm&#xE4;&#xDF;ig ist das Passwort oder Kennwort f&#xFC;r die Anmeldung bei einer Plattform n&#xF6;tig. Mit 2FA kommt nun eine weitere Abfrage hinzu. Hier kann man unterscheiden, ob man per SMS eine Code best&#xE4;tigen muss, eine E-Mail mit einem Code best&#xE4;tigen muss oder einen physischen Schl&#xFC;ssel einsteckt.</p>
<p>Erst wenn beide Faktoren g&#xFC;ltig sind, wird die Anmeldung best&#xE4;tigt.</p>
<h2 id="welches2faverfahrenistamsichersten">Welches 2FA Verfahren ist am sichersten?</h2>
<p>SMS-TAN und die Best&#xE4;tigung via E-Mail kann verwendet werden und ist auch besser als keine 2FA. Zu beachten ist hier jedoch, dass SMS sehr unsicher in der &#xDC;bertragung ist und E-Mail Konten auch gehackt werden k&#xF6;nnen.</p>
<p>Du hast es vermutlich schon erahnt, der physische Schl&#xFC;ssel ist hier am sichersten. Niemand bekommt ohne deinen U2F FIDO Security Key Zugriff auf dein Benutzerkonto. Wenn also jemand dein Passwort herausfinden sollte, m&#xFC;sste der Angreifer dich finden und deinen Schl&#xFC;ssel klauen. Was aber wahrscheinlich 99,9% niemand machen wird.</p>
<h2 id="momentwasistdennjetztfidoundu2fschonwieder">Moment, was ist denn jetzt FIDO und U2F schon wieder?</h2>
<p>Also, FIDO ist eine nicht-kommerzielle Allianz, die unteranderm von gro&#xDF;en Unternehmen wie PayPal und Lenovo gegr&#xFC;ndet wurde.</p>
<p>FIDO steht hier f&#xFC;r Fast IDentity Online und wurde bereits 2013 gegr&#xFC;ndet.</p>
<p>U2F steht f&#xFC;r Universal Second Factor und ist eine Industriestandard f&#xFC;r eine allgemeine Zwei-Faktor-Authentisierung.</p>
<p>Das wiederum wurde von Google in kooperation mit Yubico gegr&#xFC;ndet. F&#xFC;r die Weiterentwicklung von U2F ist die FIDO Allianze zust&#xE4;ndig.</p>
<h2 id="wiefunktioniertsoeinfidou2fsicherheitsschlssel">Wie funktioniert so ein FIDO U2F Sicherheitsschl&#xFC;ssel?</h2>
<p>Die Schl&#xFC;ssel schauen meistens aus wie ein normaler USB-Stick mit einem Knopf.</p>
<p>Beim Einrichten wird bei der jeweiligen Plattform ein &#xF6;ffentlicher und privater Schl&#xFC;ssel erstellt und verschl&#xFC;sselt auf dem Stick gespeichert. Mit dem &#xF6;ffentlichen Schl&#xFC;ssel erfolgt die Anmeldung.</p>
<p>Das h&#xF6;rt sich jetzt vielleicht etwas kompiliziert an, in der Praxis ist das aber sehr einfach.</p>
<p>Stick einstecken, Button dr&#xFC;cken und fertig!</p>
<h2 id="warumwird2fanichtfterverwendet">Warum wird 2FA nicht &#xF6;fter verwendet?</h2>
<p>Das ist eine sehr gute Frage, bei der ich mir auch noch nicht wirklich schl&#xFC;ssig geworden bin. Nat&#xFC;rlich erfordert die Umsetzungen der 2FA mittels einem U2F Schl&#xFC;ssel ein gewisses Know-How. Die public und private Keys sollen ja nicht irgendwo f&#xFC;r 24 Stunden im Internet herumirren, sondern am besten so schnell wie nur m&#xF6;glich mit der n&#xF6;tigen Verschl&#xFC;sselung auf dem Stick gespeichert werden.</p>
<p>Klein und auch gro&#xDF;e Firmen kann ich hier auch gut verstehen, man will schlie&#xDF;lich keine neuen Sicherheitsl&#xFC;cken &#xF6;ffnen. Ein Parade-Beispiel f&#xFC;r 2FA ist auch jeden Fall Google bzw. die Alphabet Inc, aber auch Amazon bietet hier bereits mehr Sicherheit an.</p>
<p>Bei Google hast du sogar die M&#xF6;glichkeit einen Ersatzschl&#xFC;ssel zu hinterlegen, sollte der Schl&#xFC;ssel aus irgendeinem Grund nicht mehr funktionieren oder er geht einfach verloren.</p>
<p>Was ich sehr schade finde, ist der Fakt, dass es bei PayPal nicht mehr diese M&#xF6;glichkeit gibt. Warum wurde von seitens PayPal noch nicht bekanntgegeben.</p>
<h2 id="woverwendeichdie2fa">Wo verwende ich die 2FA?</h2>
<p>Da ich pers&#xF6;nlich viel mit Google Produkte arbeite, z.B GSuite, GMail, YouTube, Analytics, Search Console usw., m&#xF6;chte ich nat&#xFC;rlich, dass das Konto besonders gut gesichert ist. Google bietet sogar MFA an, also die Multi-Factor-Authentication, hier kommt einfach noch der Faktor des Standortes hinzu. Meistens bekommt man eine E-Mail wenn sich jemand aus Texas bei deinem Konto anmelden m&#xF6;chte. Google erkennt anhand deines letzten Standortes bzw. von den GPS Daten deines Handys, wo du dich gerade aufh&#xE4;ltst.</p>
<p>Genau also Google, Amazon, PayPal (via SMS Tan), Steam (E-Mail Code).</p>
<!--kg-card-end: markdown--><hr><!--kg-card-begin: markdown--><p>Benutzt du auch schon die 2FA? Wenn ja welche Methode und bei welchem Anbieter? Wie ist deine Erfahrung damit?</p>
<p>Wenn du noch Fragen bzgl. den Keys hast, schreib mir einfach bei Instagram unter @michster eine Nachricht. Ansonsten m&#xF6;chte ich abschlie&#xDF;end nur mitteile, dass sich jeder mit diesem Thema besch&#xE4;ftigen sollte. T&#xE4;glich werden Benutzerkonten gehackte und f&#xE4;lschlicherweise missbraucht.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Wie lerne ich Flutter?]]></title><description><![CDATA[Eine neue Programmiersprache erfordert meistens viel Aufwand, Zeit und Energie. In diesem Beitrag möchte ich dir erzähle, wie du, ...]]></description><link>https://michster.de/wie-lerne-ich-flutter/</link><guid isPermaLink="false">64ff6f129774e2baa26e21a3</guid><category><![CDATA[Coding, Coden und Programmieren!]]></category><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Mon, 06 Jan 2020 22:57:25 GMT</pubDate><media:content url="https://michster.de/content/images/2020/01/michster_wie_lerne_ich_flutter_teil_1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://michster.de/content/images/2020/01/michster_wie_lerne_ich_flutter_teil_1.jpg" alt="Wie lerne ich Flutter?"><p>Neue Frameworks oder Programmiersprachen lernen ist meistens mit etwas Aufwand verbunden. Gleichzeitig ist es jedoch auch sehr spannend zu sehen, wie andere Programmiersprachen aufgebaut sind und funktionieren. </p><!--kg-card-begin: markdown--><p>In diesem Beitrag m&#xF6;chte ich dir zeigen, wie meine Vorgehensweise beim erlernen von neuen Programmiersprachen bzw. Frameworks ist. Was sollte man beachten und wie kommt man am schnellsten zum Ziel?</p>
<h2 id="solerneichflutter">So lerne ich Flutter</h2>
<p>Als erstes schaue ich mir die Dokumentation an. Da Flutter von Google ist, kannst du hier auf jeden Fall eine ordentliche und sch&#xF6;n strukturierte Dokumentation erwarten.</p>
<p>Wunderbar, es gibt sogar eine &quot;Get Started&quot; Anleitung f&#xFC;r Anf&#xE4;nger.<br>
<a href="https://flutter.dev/docs/get-started/install?ref=michster.de">Flutter Get Started</a></p>
<p>In solchen Schritt bei Schritt Anleitungen sind meistens die folgenden Schritte enthalten:</p>
<ul>
<li>Installation</li>
<li>Entwicklungsumgebung einrichten</li>
<li>Erster Funktionstest</li>
<li>Erstes eigenes Projekt schreiben, meistens wird hier alles sehr detailiert beschrieben und erkl&#xE4;rt</li>
<li>Best Practice</li>
<li>Wie kann ich jetzt von hier aus weiter machen</li>
</ul>
<p>Bei Flutter ist das genauso. Als erstes beginne ich mit dem installieren von Flutter und richte die Entwicklungsumgebung ein. Da ich schon das ein oder andere mal etwas mit Android, Java und irgendwas mit Webentwicklung gemacht habe, hatte ich die IDE (Entwicklungsumgebung) schon auf meinem PC installiert. F&#xFC;r Flutter wird entweder Android Studio, IDEA IntelliJ oder Visual Studio Code ben&#xF6;tigt. Da es f&#xFC;r diese IDEs die entsprechenden Plugins f&#xFC;r Flutter und Dart gibt. Dart ist eine Programmiersprache von Google, die auf den ersten Blicken stark an Java errinnert.</p>
<p>Nach der Installation habe ich Flutter &#xFC;ber die Kommandozeile getestet. Das geht nat&#xFC;rlich auf &#xFC;ber eine der Entwicklungsumgebungen, aber ich finde den Weg &#xFC;ber die Konsole schneller und leichter. W&#xE4;hrend der Testphase lege ich ein neues Projekt an. Jedes neue Projekt beinhaltet eine Demo-App, damit die generelle funktionalit&#xE4;t von Flutter getestet werden kann.</p>
<p>Dann stecke ich einfach das Handy am PC an und starte die App &#xFC;ber die Konsole. Nach ca. 30 Sekunden wird die App auf dem Handy ge&#xF6;ffnet und kann benutzt werden. Das erstmalig Ausf&#xFC;hren dauert immer etwas l&#xE4;nger, dank &quot;hot reload&quot; k&#xF6;nnen weitere &#xC4;nderungen sehr schnell &#xFC;bernommen werden.</p>
<p>Jetzt kommt der spannende Teil, die erste &quot;eigene&quot; App. Hierbei handelt es sich nat&#xFC;rlich um eine vorgefertigte App, die in der Doku genauestens beschrieben ist.<br>
Die einzelnen Schritte kannst du <a href="https://flutter.dev/docs/get-started/codelab?ref=michster.de">hier</a> anschauen. W&#xE4;re sonst etwas zu viel f&#xFC;r diesen Beitrag.</p>
<p>N&#xE4;chster Schritt f&#xFC;r mich ist nun eine wirklich richtige eigene App zu schreiben. Daf&#xFC;r habe ich mir bereits im Vorfeld einige gedanken gemacht. Am besten suchst du dir hier eine kleine Funktion aus einem zuk&#xFC;nfigen Projekt raus. Bei mir wird das zum Beispiel ein Barcode Scanner. F&#xFC;r den Anfang sollte das hoffentlich relativ schnell Umgesetzt werden k&#xF6;nnen.</p>
<p>Wie ich diesen erstelle, kannnst du hier nachlesen, sobald ich soweit bin. :)</p>
<p>So gehe ich bei den meisten neuen Sachen vor, die ich lerne. Ich schau mir zuerst an, was die Dokumentation hergibt und entscheide dann, ob ich darauf aufbaue. Falls nicht, schau ich mich im Internet um und suche mir ein paar brauchbare Tutorials raus.</p>
<p>Dann gehts eigentlich schon mit der direkten Praxis los. Nur die Syntax lernen zeigt bei mir wenig Wirkung. Notizen mache ich mir auch kaum welche. Bringt bei mir leider nicht so viel, das hat w&#xE4;hrend der Schulzeit schon nicht funktioniert.</p>
<p>Wenn ich irgendwo h&#xE4;nge, Google ich meisten nach dem Problem und schau mir an, wie das genau funktioniert. Ich muss das einfach verstehen, ansonsten blockiere ich mich damit selbst. Das gute daran, wenn ich&apos;s einmal verstanden habe, bleibt es auch. :)</p>
<p>Jetzt w&#xFC;rde mich mal interessieren, wie du an eine neue Programmiersprach herangehst. Schreib mir einfach eine E-Mail an <a href="mailto:wasgeht@michster.de">wasgeht@michster.de</a> oder eine DM auf Instagram --&gt; <a href="https://www.instagram.com/michster/?ref=michster.de">@michster</a></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Kommandozeilen Crashkurs - Wie navigiere ich in der Konsole?]]></title><description><![CDATA[Für Anfänger ist es oftmals etwas schwierig, sich mit der Konsole zurechtzufinden. Deswegen bekommst du hier von mir mal einen kleinen Überblick von den gängigen Befehlen, um ordentlich mit der Konsole zu arbeiten.]]></description><link>https://michster.de/kommandozeile-crashkurs-wie-navigiere-ich-in-der-konsole/</link><guid isPermaLink="false">64ff6f129774e2baa26e21a0</guid><category><![CDATA[Coding, Coden und Programmieren!]]></category><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Fri, 27 Dec 2019 15:10:38 GMT</pubDate><media:content url="https://michster.de/content/images/2019/12/michster_befehle_git_bash_shell_cmd_kommandozeile.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://michster.de/content/images/2019/12/michster_befehle_git_bash_shell_cmd_kommandozeile.jpg" alt="Kommandozeilen Crashkurs - Wie navigiere ich in der Konsole?"><p>F&#xFC;r Anf&#xE4;nger ist es oftmals etwas schwierig, sich mit der Konsole zurechtzufinden. Deswegen bekommst du hier von mir mal einen kleinen &#xDC;berblick von den g&#xE4;ngigen Befehlen, um ordentlich mit der Konsole zu arbeiten.</p><!--kg-card-begin: markdown--><p>Nicht wundern, die Konsole wir bei jedem Betriebssystem anders genannt. Sie tr&#xE4;gt auch oft Namen wie, Terminal, Bash, CMD, Kommandozeile, Shell oder auch &quot;HACKST du schon wieder ein Computer?&quot;. Ich beschr&#xE4;nke mich hier mal auf Konsole.</p>
<h2 id="1welchekommandozeilesollichunterwindows10benutzen">1. Welche Kommandozeile soll ich unter Windows 10 benutzen?</h2>
<p>Die standart Kommandozeile unter Windows ist nicht unbedingt eine gute und umfangreiche Konsole.</p>
<p>Deswegen solltest du dir entweder MINGW64 (am Besten einfach git installieren) oder du benutzt die Windows PowerShell. Dieser kleine Crashkurs hier handelt jedoch nur &#xFC;ber die Git Bash (MINGW64).</p>
<h2 id="2wiefunktioniertdiekonsolegitbash">2. Wie funktioniert die Konsole (Git Bash)</h2>
<p>Eine Konsole ist im Grunde nur das Betriebsystem ohne die grafische Benutzeroberfl&#xE4;che. Das hei&#xDF;t du bewegst dich hier ganz normaler auf deiner Festplatte. Du kannst Dateien verwalten, bearbeiten, l&#xF6;schen, &#xE4;ndern und erstellen, es ist m&#xF6;glich Sachen aus dem Netz herunterzuladen und nat&#xFC;rlich auch Programm zu installieren. Das wichtigste f&#xFC;r einen Softwareentwickler, du kannst deine Projekte mit Git versionieren.</p>
<h2 id="3wiegeheichmitderkonsoleum">3. Wie gehe ich mit der Konsole um?</h2>
<p>Um zu navigieren, brauchst du lediglich diese 3 Befehle:</p>
<ul>
<li>pwd</li>
<li>ls</li>
<li>cd</li>
</ul>
<p>Schauen wir uns die einzelnen Befehle mal genauer an.</p>
<h3 id="wasmachtderbefehlpwd">Was macht der Befehl pwd?</h3>
<p>PWD steht f&#xFC;r <strong>P</strong>rint <strong>W</strong>orking <strong>D</strong>irectory und gibt den vollst&#xE4;ndigen aktuelle Pfad aus.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://michster.de/content/images/2019/12/michster_befehl_pwd_git_bash_shell_cmd_kommandozeile.png" class="kg-image" alt="Kommandozeilen Crashkurs - Wie navigiere ich in der Konsole?" loading="lazy"><figcaption>So wird der Befehl pwd verwendet</figcaption></figure><!--kg-card-begin: markdown--><h3 id="wasmachtderbefehlls">Was macht der Befehl ls?</h3>
<p>ls ist die Kurzform von list und gibt den Inhalt des aktuelle Verzeichnisses aus.<br>
Dieser Befehl kann auch zus&#xE4;tzlich noch mit -a (f&#xFC;r alle Dateien), -l (mit mehr Informationen) und -t (Sortierung nach Datum) ausgef&#xFC;hrt werden. Entweder du Benutz die Flags einzeln oder zusammen. Zum Beispiel so: ls -alt</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://michster.de/content/images/2019/12/michster_befehl_ls_git_bash_shell_cmd_kommandozeile.png" class="kg-image" alt="Kommandozeilen Crashkurs - Wie navigiere ich in der Konsole?" loading="lazy"><figcaption>So wird der Befehl ls verwendet</figcaption></figure><!--kg-card-begin: markdown--><h3 id="wasmachtderbefehlcd">Was macht der Befehl cd?</h3>
<p>Der Befehl cd steht f&#xFC;r Change Directory. Damit kannst du den aktuellen Pfad &#xE4;ndern. Der Befehl erwartet entweder einen vollst&#xE4;ndigen Pfad, Ordner die mit dem Befehl &quot;ls&quot; angezeigt werden oder auch &#xFC;bergeordnete Verzeichnisse, die mit .. angesteuert werden. Probier es einfach selbst aus.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://michster.de/content/images/2019/12/michster_befehl_cd_git_bash_shell_cmd_kommandozeile.png" class="kg-image" alt="Kommandozeilen Crashkurs - Wie navigiere ich in der Konsole?" loading="lazy"><figcaption>So wird der Befehl cd verwendet</figcaption></figure><!--kg-card-begin: markdown--><h3 id="wasmachtderbefehlmkdir">Was macht der Befehl mkdir?</h3>
<p>Mkdir steht f&#xFC;r make directory und erstellt ein neuen Ordner.<br>
Zum erstellen von Ordnern, verwendet du diesen Befehl folgenderma&#xDF;en:<br>
mkdir &quot;name&quot;</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://michster.de/content/images/2019/12/michster_befehl_mkdir_git_bash_shell_cmd_kommandozeile.png" class="kg-image" alt="Kommandozeilen Crashkurs - Wie navigiere ich in der Konsole?" loading="lazy"><figcaption>So wird der Befehl mkdir verwendet</figcaption></figure><hr><!--kg-card-begin: markdown--><p>Ich hoffe du hast nun einen guten kleinen Einblick in die Welt der Kommandozeilen bekommen und kannst jetzt zumindest navigieren und neue Ordner erstellen.</p>
<p>Bei fragen kannst du dich jederzeit an mich wenden. Bei Instagram, Facebook oder per Mail <a href="mailto:wasgeht@michster.de">wasgeht@michster.de</a>.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Was ist ein Full Stack Webdeveloper]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>Ein Full Stack Webdeveloper ist eine Entwickler, der sowohl im Frontend Sektor als auch im Backend-Bereich bewandert ist. Die genauen Skills m&#xF6;chte ich dir weiter unten aufzeigen. Vorerst gebe ich dir ein paar Vor- und Nachteile, die ein Webdeveloper Lifestyle mit sich bringt.</p>
<h2 id="vorteileeinesfullstackwebdevelopers">Vorteile eines Full Stack Webdevelopers</h2>]]></description><link>https://michster.de/was-macht-ein-fullstack-webdeveloper/</link><guid isPermaLink="false">64ff6f129774e2baa26e219c</guid><category><![CDATA[HelloWorld]]></category><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Sun, 17 Nov 2019 19:39:50 GMT</pubDate><media:content url="https://michster.de/content/images/2019/11/was_macht_ein_full_stack_entwickler_michster.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://michster.de/content/images/2019/11/was_macht_ein_full_stack_entwickler_michster.jpg" alt="Was ist ein Full Stack Webdeveloper"><p>Ein Full Stack Webdeveloper ist eine Entwickler, der sowohl im Frontend Sektor als auch im Backend-Bereich bewandert ist. Die genauen Skills m&#xF6;chte ich dir weiter unten aufzeigen. Vorerst gebe ich dir ein paar Vor- und Nachteile, die ein Webdeveloper Lifestyle mit sich bringt.</p>
<h2 id="vorteileeinesfullstackwebdevelopers">Vorteile eines Full Stack Webdevelopers</h2>
<p>Die Vorteile liegen nat&#xFC;rlich auf der Hand. Du kannst (theoretisch) eine eigene Webapplikation im Alleingang erstellen, warten und kontinuierlich verbessern. Du hast ein Verst&#xE4;ndis f&#xFC;r ein gutes User Interface bzw. weist du, was dem Endbenutzer gefallen k&#xF6;nnte. Grob gesagt, du hast ein weiten Blick auf jeden Bereich eines Projektes. Perfekt f&#xFC;r die Stelle als Team-/ Projektleiter. :P</p>
<p>Du sammelst Wissen und Erfahrung in so ziemlich jeden einzelnen Bereich der Entwicklung. Hier nur mal eine kleine Auflistung von meinen bisherigen learnings:</p>
<ul>
<li>Datenbanken: MySQL, MSSQL, MongoDB, Firebase DB, PostgreSQL</li>
<li>Programmiersprachen: JavaScript, Java, GoLang, Ruby, PHP, ...</li>
<li>Umgang mit der Shell / Konsole</li>
<li>Linux-Kenntnisse</li>
<li>Docker</li>
<li>NGINX</li>
<li>Git</li>
<li>Frameworks: NodeJS, SpringBoot, VueJS, Express, PassportJS,...</li>
<li>HTML &amp; CSS</li>
<li>Umgang mit Grafiktools wie Affinity Designer und Affinity Photo</li>
<li>SEO</li>
<li>Algorihtmen</li>
<li>... t&#xE4;glich was neues ^^</li>
</ul>
<h2 id="nachteileeinesfullstackwebdevelopers">Nachteile eines Full Stack Webdevelopers</h2>
<p>Das Problem ist die Spezialisierung. Da die Erfahrung stark in verschiedene Themen abdriftet, kann man sich kaum in jedem Bereich zu 100% auskennen und dabei noch wissen, was man eigentlich gerade macht.</p>
<p>Falls du doch im Alleingang ein Projekt umsetzen m&#xF6;chtest, kannst du dir schon mal etwas Zeit nehmen. Eine Person kann vielleicht das Wissen von zwei Personen besitzen, aber die Umsetzungsgeschwindigkeit verringert sich sehr stark. Zwei K&#xF6;pfe und 20 Finger sind halt nunmal immer besser, als nur ein Kopf und 10 Finger.</p>
<p>Das Ganze l&#xE4;sst sich aber nicht unendlich skalieren. Vergleichen kannst du das mit einem Hausbau und Bauarbeitern. Wenn 10 Bauarbeiter 10 Tage brauchen. Dann brauchen 100 Bauarbeiter nicht automatisch nur einen Tag. Hier spielen verschiedene Faktoren eine gro&#xDF;e Rolle. Das l&#xE4;sst sich auch auf Softwareenwickler &#xFC;bertragen. Nat&#xFC;rlich kann man ein Team mit 50 Entwicklern besch&#xE4;ftigen. Daf&#xFC;r braucht man allerdings eine sehr gute Organistation der Mitarbeiter und einen Plan der Kopf und Fu&#xDF; hat.</p>
<p>Du musst das wirklich wollen. Am besten programmierst du auch in der Freizeit sehr gerne und lernst gerne neue Technologien. Du schwingst dich von Sideproject zu Sideproject und erledigst alle Aufgaben im Schlaf.</p>
<p>H&#xF6;rt sich wieder sehr einfach an. Aber eine echten Full Stack Webdeveloper wird es vermutlich nicht geben. Ich besch&#xE4;ftige mich zwar auch unfassbar gerne mit allen verschiedenen Bereichen, merke aber auch, dass die Zeit vorne und hinten nicht ausreicht um alles zu lernen. Machine Learning ist so ein interessantes Thema, jedoch muss ich mich gerade mit der MongoDB besch&#xE4;ftigen, weil das gerade relevant f&#xFC;r ein anderes Projekt ist.</p>
<p>Wenn ich mehrere Sachen auf einmal machen k&#xF6;nnte, w&#xFC;rde ich es sofort tun. Multitasking funktioniert generell schon nicht so wirklich gut und gerade als Softwareentwickler kannst du das vollkommen in die Tonne treten. Klar, man lernt, in dem man Fehler macht. Das ist aber kein Multitasking. Zu dem Thema sollte ich eventuell eine eignen Post verfassen. ;)</p>
<h2 id="welchefhigkeiteneigenschaftenbrauchteinfullstackdeveloperentwickler">Welche F&#xE4;higkeiten / Eigenschaften braucht ein Full Stack Developer / Entwickler</h2>
<p>Hier mal ein grober &#xDC;berblick. Du entwickelst nat&#xFC;rlich auch einige der F&#xE4;higkeiten im Laufe der Zeit. Gerade wenn du im Beruf weiter aufsteigst, wachsen deine Kenntnisse im Bereich der Softskills. Immer mehr Leute kommen zu dir, da du die Person mit der Erfahrung und dem n&#xF6;tigen Know-How bist. :P</p>
<ol>
<li>Gaaaaanz viel Ausdauer</li>
<li>Zeit (Zeiteinteilung / Zeitmanagement)</li>
<li>Spa&#xDF; am Lernen</li>
<li>Hobby: Coden</li>
<li>Kreativit&#xE4;t</li>
<li>Probleml&#xF6;ser</li>
<li>Ein Auge f&#xFC;r gutes Design</li>
<li>Softskills wie Kommunitkationsf&#xE4;higket (au&#xDF;er du bist kein Teamplayer)</li>
</ol>
<h2 id="welcheaufgabengebietehateinfullstackentwickler">Welche Aufgabengebiete hat ein Full Stack Entwickler</h2>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://michster.de/content/images/2019/11/was_ist_ein_full_stack_entwickler_developer_michster.png" class="kg-image" alt="Was ist ein Full Stack Webdeveloper" loading="lazy"><figcaption>Full Stack Developer - Aufgabengebiet</figcaption></figure><!--kg-card-begin: markdown--><p>Sorry f&#xFC;r dieses Denglisch. Das wirst du bei mir vermutlich &#xF6;fters so lesen. Passiert mir immer viel zu schnell, dass ich lieber das englische Wort benutzt.</p>
<p>Wie auch immer.</p>
<p>BAM!</p>
<p>Ein <strong>Full Stack Entwickler</strong> ist quasi die <strong><a href="https://de.wikipedia.org/wiki/Eierlegende_Wollmilchsau?ref=michster.de">Eierlegende Wollmilchsau</a></strong> unter den Entwicklern. Sei es <strong>Frontend</strong> oder <strong>Backend</strong>, die ideale <strong>Speicherung</strong> der <strong>Daten</strong> und das installieren eines <strong>Ubuntu Servers</strong> in einer hochkomplexen <strong>Clusterumgebung</strong>, welche noch dazu <strong>horizontal Skalierbar</strong> sein soll. Der <strong>Full Stack Developer</strong> wei&#xDF; nat&#xFC;rlich auf alles die perfekte <strong>L&#xF6;sung</strong>.</p>
<p>Das ist Schwachsinn!</p>
<p>Einen groben &#xDC;berblick zu haben, ist vollkommen in Ordnung. Auch sehe ich von meiner Seite aus keine Probleme sich in <strong>Frontend</strong>, <strong>Backend</strong> und <strong>Datenbanken</strong> einzuarbeiten. Wenn einem das wirklich Spa&#xDF; macht, kann man das schaffen.</p>
<p>Ich geh noch mal eben etwas auf die einzelnen Bereiche ein.</p>
<h3 id="wasistfrontend">Was ist Frontend</h3>
<p><strong>Frontend</strong> ist das, was der <strong>Endbenutzer</strong> sieht. Das ist beispielsweise im <strong>Webdevelopment</strong> die <strong>Website</strong> oder bei <strong>App-Entwicklern</strong> die grafische <strong>Benutzeroberfl&#xE4;che</strong> der <strong>App</strong>.</p>
<p>Da das Frontend im gr&#xF6;&#xDF;tenteils aus <strong>Design</strong> besteht, kommt hier viel <strong>HTML</strong>, <strong>CSS</strong> und <strong>JavaScript</strong> zum Einsatz. <strong>HTML</strong> f&#xFC;r die <strong>Struktur</strong>. <strong>CSS</strong> f&#xFC;r das <strong>grafische Design</strong> und <strong>JavaScript</strong> f&#xFC;r <strong>Validierungen</strong> und <strong>Animationen</strong>. Nur mal als grobe Richtung, wohin das f&#xFC;hrt.</p>
<h3 id="wasistbackend">Was ist Backend</h3>
<p>Wo ein <strong>Frontend</strong>, da auch ein <strong>Backend</strong> (meistens!). Backend ist genau der Part, der f&#xFC;r den <strong>Endbenutzer</strong> <strong>nicht</strong> <strong>sichtbar</strong> ist und auch nicht sichtbar sein soll. Als <strong>Beispiel</strong> f&#xFC;r einen <strong>Anwendungszweck</strong>, ein Kunde registriert sich bei deinem Webshop. Die Daten m&#xFC;ssen nach <strong>valider Eingabe</strong> in einer <strong>Datenbank</strong> gespeichert werden. Genau dieser Vorgang geschieht Backend-Seitig. Das erneute Pr&#xFC;fen auf <strong>Vollst&#xE4;ndigkeit</strong> / <strong>Richtigkeit</strong> und das <strong>Schreiben</strong> in die <strong>Datenbank</strong>. W&#xFC;rde man diesen Part rein Frontend-Seite l&#xF6;sen wollen, w&#xE4;re deine Datenbank innerhalb von ein paar Sekunden entweder <strong>leer</strong>, <strong>geklaut</strong> oder <strong>&#xFC;berf&#xFC;llt</strong>.</p>
<p>Damit du verstehst, warum das so ist, hier eine kurze Erkl&#xE4;rung am Rande.<br>
Jeglicher <strong>Code</strong>, der <strong>Frontend-Seitig</strong> geschrieben wird, kann von wirklich <strong>jedem</strong> <strong>gelesen</strong> werden. Einmal <strong>F12</strong> dr&#xFC;cken und zack, du hast den <strong>Code</strong>. Wenn du jetzt deine <strong>Datenbank Abfragen</strong> in genau diesen Teil deiner Website einbaust, sieht jeder deine Zugangsdaten f&#xFC;r die Datenbank. Und glaub mir, das willst du nicht.</p>
<p><strong>NodeJS</strong>, <strong>GoLang</strong> und <strong>Java</strong> sind nur ein paar <strong>Beispiele</strong> f&#xFC;r <strong>Programmiersprachen</strong>, die du im Backend <strong>Serverbereich</strong> verwenden kannst. <strong>Sicherheit</strong> spielt auch hier eine <strong>gro&#xDF;e Rolle</strong>. Von <strong>Authentifizierung</strong> bis <strong>SSL-Verschl&#xFC;sselung</strong>. <strong>API</strong> ist eine Abk&#xFC;rzung f&#xFC;r <strong>Application Programming Interface</strong>. Hier gibt es auch wieder verschiedene Technologien, wie z.B. <strong>REST</strong>, <strong>SOAP</strong> und auch in <strong>Libaries</strong> und <strong>Frameworks</strong> findest du APIs.</p>
<h3 id="wasisteinedatenbank">Was ist eine Datenbank</h3>
<p>Ganz kurz, der <strong>Ort</strong> wo du deine <strong>Daten</strong> <strong>speicherst</strong>.</p>
<p><strong>SQL</strong> steht f&#xFC;r <strong>Structured Query Language</strong> und ist eine <strong>Abfragesprache</strong> f&#xFC;r <strong>relationale Datenbanken</strong>.</p>
<p><strong>NoSQL</strong> steht f&#xFC;r <strong>Not Only SQL</strong>. Hier werden meistens <strong>anbieterspezifische Sprachen</strong> zum <strong>Abfragen</strong> der <strong>Daten</strong> verwendet. MongoDB nenne ich hier mal als Beispiel.</p>
<p>Die Speicherung der Daten unterscheidet sich von Datenbanksystem zu Datenbankystem. Bei <strong>MySQL</strong> werden die <strong>Daten</strong> in <strong>Tabelle</strong> gespeichert, bei <strong>MongoDB</strong> in <strong>Collections</strong> bzw. <strong>Dokumenten</strong>.</p>
<p>Alles weitere w&#xFC;rde hier den Rahmen sprengen. Wenn es einen Beitrag dazu gibt, werde ich ihn hier verlinken.</p>
<h3 id="wasmussichsonstnochwissen">Was muss ich sonst noch wissen</h3>
<p><strong>Hosting</strong>, das hei&#xDF;t wie viele <strong>Ressourcen</strong> brauche ich f&#xFC;r meine <strong>Anwendung</strong>. Mit wie viel <strong>Traffic</strong> muss ich <strong>rechnen</strong> und <strong>wo</strong> steht mein <strong>Rechenzentrum</strong>. Diese Fragen solltest du bei der Auswahl deines Hostings auf jeden Fall beachten. Die meisten <strong>Hoster</strong> sind zwar im Bereich der <strong>Ressourcenverwaltung</strong> sehr <strong>flexibel</strong>, aber die <strong>Kosten</strong> m&#xFC;ssen nat&#xFC;rlich <strong>kalkuliert</strong> werden.</p>
<p><strong>UI/UX</strong> also <strong>User Interface</strong> und <strong>User Experience</strong> sind nur optinal. Bietet sich jeodch an, da man vermutlich sehr viele <strong>Projekt</strong> mit <strong>Benutzeroberfl&#xE4;che</strong> erstellt. Dadurch entwickelt sich mit der Zeit ein Gef&#xFC;hl f&#xFC;r gute <strong>Positionierung</strong> und sch&#xF6;nes <strong>Design</strong>.</p>
<p><strong>Git</strong> ist ein <strong>Repository</strong> f&#xFC;r den <strong>Quellcode</strong> deines <strong>Projektes</strong>. Falls du dar&#xFC;ber mehr wissen m&#xF6;chtest, kannst du dir <a href="https://michster.de/helloworld-was-ist-git/">hier</a> meine anderen Post zum Thema Git durchlesen.</p>
<p>Mit der <strong>Shell</strong> wirst du sehr schnell und auch noch lange <strong>Arbeiten</strong>. Vermutlich kennst du <strong>Shell</strong> auch unter den anderen <strong>Namen</strong>, wie z.B. <strong>Terminal</strong>, <strong>Konsole</strong>, <strong>PowerShell</strong> oder auch <strong>Eingabeaufforderung</strong>.</p>
<p>Last but not least (wie ich diesen Spruch hasse :D ) <strong>Algorithmen</strong>! F&#xFC;r gutes <strong>Coding</strong> brauchst du auch ein Verst&#xE4;ndnis f&#xFC;r <strong>Algorithem</strong> und gutem Code. Gerade wenn du mit anderen Programmieren arbeitest, solltest du auf alle F&#xE4;lle einen gewissen Style Guide befolgen und diesen auch publizieren. Wie Einr&#xFC;ckungen sein sollen und ob Leerzeichen oder Tabs verwendet werde. :D</p>
<h2 id="fazitzumfullstackentwickler">Fazit zum Full Stack Entwickler</h2>
<p>Ich bin auch gerade dabei, mich als Full Stack Entwickler zu etablieren. Firmen sind immer auf der Such nach solchen multitalenten. Jedoch gibt es diese und diese. F&#xFC;r mich ist Oberfl&#xE4;chliches Wissen nichts. Deswegen spezialisiere ich mich auf die Bereiche Backend, Datenbanken und alles andere, bis auf Frontend. Frontend kann gerne jemand anderes f&#xFC;r mich &#xFC;bernehmen.</p>
<p>Gut, wenn ich Projekt alleine umsetze, bleibt mir nichts anderes &#xFC;brig, aber ich mach es einfach nicht so gerne. Bei CSS fehlt mir irgendwie der logische Teil.</p>
<p>Naja, wie aich immer. Ich hoffe nat&#xFC;rlich dir hat dieser Beitrag irgendwie weitergeholfen. Falls du Fragen oder Anregungen hast, kannst du dich gerne &#xFC;ber Instagram oder per Mail bei mir melden.</p>
<hr>
<p>michster</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Wie werde ich eigentlich Webentwickler?]]></title><description><![CDATA[Was ist der Unterschied zwischen Frontend und Backend. Was muss ein Backend-Developer alles wissen und wie erstellt man seine eigene Webseite?]]></description><link>https://michster.de/wie-werde-ich-eigentlich-webentwickler/</link><guid isPermaLink="false">64ff6f129774e2baa26e219b</guid><category><![CDATA[HelloWorld]]></category><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Tue, 12 Nov 2019 18:50:09 GMT</pubDate><media:content url="https://michster.de/content/images/2019/11/wie_werde_ich_eigentlich_webdeveloper_michster.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://michster.de/content/images/2019/11/wie_werde_ich_eigentlich_webdeveloper_michster.jpg" alt="Wie werde ich eigentlich Webentwickler?"><p>Du fragst dich gerade wahrscheinlich, mit was soll ich &#xFC;berhaupt anfangen? PHP, JavaScript, NodeJS oder Go? Es gibt so viele verschiedenen Themen!</p>
<p>HILFE!</p>
<p>Keine Problem! Du musst f&#xFC;r dich nur folgende Frage beantworten und du wirst wissen, mit welchen Bereich du am besten starten sollst / kannst.</p>
<p>Die Frage aller Fragen:<br>
Was m&#xF6;chte ich erreichen?</p>
<ol>
<li>Webdesign? Also das optische und visuelle Design.</li>
<li>Backend? Also Logik f&#xFC;r Server und die Schnittstelle zur Oberfl&#xE4;che?</li>
<li>Ich m&#xF6;chte nur eine ganz normale Webseite erstellen.</li>
</ol>
<h2 id="1wasistwebdesignundwofangeichan">1. Was ist Webdesign und wo fange ich an?</h2>
<p>Webdesign ist relativ simple, hat aber wenig mit programmieren am Hut. Die Basics die du als angehender Webdesigner ben&#xF6;tigst sind:</p>
<ul>
<li>Kreativit&#xE4;t</li>
<li>HTML, CSS, JavaScript</li>
<li>UI / UX Erfahrung</li>
<li>Evtl. ein Tool f&#xFC;r ein <a href="https://michster.de/was-ist-ein-mock-up-design/">Mock-Up</a></li>
</ul>
<p>Den Punkt mit der Kreativit&#xE4;t &#xFC;berspringe ich mal. HTML, CSS und JavaScript werde ich aufsplitten.<br>
HTML brauchst du f&#xFC;r die Struktur und die eigentlichen Inhalte auf der Website. CSS ist f&#xFC;r das optische Aussehen zust&#xE4;ndig. Also Farben, Schriftarten, Layout, Positionierung, usw. werden dort festgelegt. Falls du deiner Seite auch noch Funktionen und/oder Animationen verpassen m&#xF6;chtest, brauchst du auch noch ein paar JavaScript Kenntnisse.</p>
<h2 id="2wasistbackendwassollichdamit">2. Was ist Backend? Was soll ich damit?</h2>
<p>Backend ist quasi der Teil einer Website, den deine Benutzer nicht sehen. Angenommen du hast ein Blog und kannst dort im Adminbereich deine Beitr&#xE4;ge verfassen und verwalten. Dieser Bereich ist nur f&#xFC;r Admins zug&#xE4;nglich. Da beim Erstellen von Posts mehrer Funktionen ausgef&#xFC;hrt werden und diese meistens von einem Server validiert und in einen Datenbank gespeichert werden, spricht man hier von Backend.</p>
<p>Bei der Backend-Programmierung kommt es nat&#xFC;rlich immer darauf an, welche Programmiersprache du f&#xFC;r den Server verwenden m&#xF6;chtest. Es gibt PHP, NodeJS, Java, Ruby und viele weitere. F&#xFC;r den Einstieg w&#xFC;rde ich dir NodeJS empfehlen, da du damit relativ schnell starten kannst und es von vielen Hostern direkt unterst&#xFC;tzt wird.</p>
<p>HTML kann dir hier auch nicht schaden. Generell solltest du als Webentwickler Ahnung von HTML haben und ungef&#xE4;hr wissen, wie man damit umgeht. ;)</p>
<p>Auch mit Datenbank-Anbindungen musst du dich vertraut machen, irgendwo m&#xFC;ssen ja die Daten gespeichert werden. Egal ob NoSQL, SQL oder wo auch immer. NoSQL hat den Vorteil, dass die Daten bereits im Webdeveloper-freundlichen Format vorliegen.</p>
<p>Das Ganze wird dann meistens noch gekapselt in einer API. Das hei&#xDF;t so viel, wie ich rufe diese Adresse auf: <a href="https://localhost:8000/api/user/login?ref=michster.de">https://localhost:8000/api/user/login</a>, gebe die ben&#xF6;tigten Daten im JSON Format mit ({ user: &quot;test&quot;, password: &quot;test&quot; }) und als Antwort bekomme ich dann entweder einen Fehler oder werde direkt weitergeleitet.</p>
<p>Hinter diesem API-Call versteckt sich nat&#xFC;rlich auch wieder ein Abfrage der Datenbank. Irgenwo muss ja gegengecheckt werden.</p>
<p>Ich k&#xF6;nnte jetzt noch 500 Seiten davon vollschreiben, was wie und warum Backend. Aber das soll hier nur ein kleiner Einblick f&#xFC;r dich sein. Anfangs erscheint das f&#xFC;r dich vielleicht etwas bedr&#xFC;ckend, weil es sehr viele Dinge sind, die du lernen musst. Wenn du jedoch Spa&#xDF; daran hast, mit Datenbanken und Server und API und Validierungen usw. zu arbeiten, dann go for it!</p>
<h2 id="3wieerstelleicheinestandardwebseite">3. Wie erstelle ich eine Standard Webseite?</h2>
<p>Nichts einfach als das!</p>
<p>Hier mal eine kurze Step-by-Step Richtlinie, an der du dich ungef&#xE4;hr orientieren kannst.</p>
<h3 id="statischewebseiteleitfaden">Statische Webseite Leitfaden</h3>
<ol>
<li>Design erstellen<br>
1.1 Inspiraton von anderen Webseiten holen<br>
1.2 Design / Layout skizzieren<br>
1.3 (optional) Mock-Up erstellen</li>
<li>Projektorder mit Struktur anlegen (images, styles, index.html)</li>
<li>Layout in der index.html-Datei festlegen und die n&#xF6;tigen Dateien Verkn&#xFC;pfen</li>
<li>Styles in der CSS-Datei festlegen</li>
<li>Fertig</li>
</ol>
<p>Wie gesagt, es handelt sich hier nur um einen groben Leitfaden. In sp&#xE4;teren Posts oder in einem meiner Youtube Videos werde ich genauer die einzelnen Stichpunkte eingehen.</p>
<!--kg-card-end: markdown--><hr><!--kg-card-begin: markdown--><p>Ich hoffe dir hat auch dieser kurze Blog-Post, in dem ich etwas genauer auf die einzelnen Punkte von Frontend und Backend-Developeren eingegangen bin, gefallen. Bei fragen kannst du dich sehr gerne an mich per Mail, DM auf Instagram oder bei Youtube wenden. Ich werde dir so schnell wie m&#xF6;glich bei verschiedensten Themen eine Antwort geben. Bis dahin w&#xFC;nsche ich dir noch ein fr&#xF6;hliches Webseiten erstellen!</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[MongoDB.local in München - Erfahrungsbericht]]></title><description><![CDATA[Am 22.10.2019 habe ich mich auf den Weg nach München gemacht. Dort fand nämlich die MongoDB local Konferenz statt...]]></description><link>https://michster.de/mongodb-local-in-muenchen-erfahrungsbericht/</link><guid isPermaLink="false">64ff6f129774e2baa26e219a</guid><category><![CDATA[Storys]]></category><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Thu, 24 Oct 2019 15:53:37 GMT</pubDate><media:content url="https://michster.de/content/images/2019/10/MongoDB-Local-Muenchen-Loot-Michster-2019.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://michster.de/content/images/2019/10/MongoDB-Local-Muenchen-Loot-Michster-2019.jpg" alt="MongoDB.local in M&#xFC;nchen - Erfahrungsbericht"><p>Am 22.1o.2019 fand in M&#xFC;nchen im Paulaner am Nockherberg die MongoDB.local Konferenz statt. </p><!--kg-card-begin: markdown--><h2 id="meinewissensstandvordermesse">Meine Wissensstand vor der Messe</h2>
<p>Mein Wissen rund um MongoDB war eigentlich ziemlich begrenzt. Hauptberuflich verwende ich die MongoDB quasi nur als &quot;Daten-Cache&quot;. Somit ist der Aufbau recht simpel und es finden auch nur h&#xF6;chstens 5-20k Schreibvorg&#xE4;nge am Tag statt. Auch verwenden wir bis jetzt noch eine &#xE4;ltere Version (Irgendwas mit 3.2.x).</p>
<h2 id="wasgibtesneuewaswurdevorgestellt">Was gibt es neue? Was wurde vorgestellt?</h2>
<p>Wow! :O</p>
<p>Was MongoDB alles bietet ist ja wirklich krass. Wenn man sich mal den ganzen Tag Zeit nimmt und sich damit besch&#xE4;ftigt, bekommt man erstmal die vielen verschiedenen Funktionen und M&#xF6;glichkeiten mit. Ich bin wirklich positiv &#xFC;berrascht.</p>
<p>Hier nur mal ein paar Beispiele:</p>
<h3 id="mongodbshards">MongoDB Shards:</h3>
<p>Shards ist eine neue Technologie, die praktisch bei Internationalem Einsatz ist. Shards sind Server an verschiedenen Standorten auf der ganzen Welt. Dadurch wird die Latenz verringert und die Geschwindigkeit verbessert. Synchronisitation findet im Hintergrund statt. Wenn ich das alles richtig verstanden habe. War alles auf Englisch, ging aber wirklich klar.</p>
<h3 id="datamodelingmitmongodb">Data Modeling mit MongoDB</h3>
<p>Kurz und Knapp, hau alles in eine Tabelle und mach so wenige Verweise wie m&#xF6;glich. Keep it simple!</p>
<p>So oder so &#xE4;hnlich war auch der Vortrag, aber richtig stark. Sch&#xF6;ne Slides mit Homer Simpson ausgeschm&#xFC;ckt.</p>
<p>Auch das freie Schema Design ohne feste Struktur ist eine nur mega. Ich pers&#xF6;nliche finde diese Art der Datenspeicherung wesentlich komfortabler.</p>
<h3 id="mongodbbiconnector">MongoDB BI Connector</h3>
<p>Soweit ich das verstanden habe, kann man damit Daten aus dem typischen JSON Format in SQL Tables transformieren. Alles on the fly, also die Daten aus der Collection gehen nicht verloren. Die Tables k&#xF6;nnen dann z.B. mittels EXCEL direkt aus der Datenbank mit Hilfe von SQL Queries abgefragt werden.</p>
<h3 id="mongodbsnapshotsbackup">MongoDB Snapshots / Backup</h3>
<p>Auch eine cooles Feature. Daten aus Snapshots oder Backups k&#xF6;nnen in Realtimne abfragt werden. Das hei&#xDF;t die Dumps m&#xFC;ssen nicht erst zeitaufwendig wiederhergestellt werden, sondern sind sofort verf&#xFC;gbar.</p>
<h3 id="keynotesmiteliothorowitz">Keynotes mit Eliot Horowitz</h3>
<p>Der Co-Founder und CTA von MongoDB hat die Neuerung mit etwas Unterst&#xFC;tzung seiner Kollegen vorgestellt. Unteranderem war dort auch realm dabei, welches gerade f&#xFC;r die mobilen Apps und WebApp perfekt ist und noch wird. Keyword ist hier die Offline und Online synchronisation. Wenn das so funktioniert, wie es pr&#xE4;sentiert wurde, w&#xE4;re es mega.</p>
<h3 id="mongodbuniversity">MongoDB University</h3>
<p>Die University ist eine Online Lern Plattform. Du kannst dort MongoDB von 0 auf 100 Prozent lernen und dich sogar entsprechend Zertifizieren lassen. Ich bin auch am &#xFC;berlegen, ob ich das machen werde. Schreibt mir diesbez&#xFC;glich gerne auf Instagram @michster.</p>
<h2 id="verpflegungessen">Verpflegung / Essen</h2>
<p>Im Paulaner am Nockerherberg gab es auf jeden Fall gen&#xFC;gend zum Essen. Angefangen beim Fr&#xFC;hst&#xFC;ck mit M&#xFC;sli, Geb&#xE4;ck, Brezenstangen, Smoothies und so weiter bis hin zum Mittagessen. Dort gab es Reh mit Kartoffelgratin und noch etwas Gem&#xFC;se. War wirklich sehr schmackhaft.</p>
<h2 id="giveaways">Giveaways</h2>
<p>Sticker, Kugelschreiber, T-Shirt, Schal und einen anscheinend limitierten Thermobecher. Alles wirklich sehr cool und gratis. :)</p>
<h2 id="fazit">Fazit</h2>
<p>Rund um bin ich mit der Reise nach M&#xFC;nchen, von mir aus sind das ja nur 80km, mehr als zufrieden gewesen. Falls die Konferenz n&#xE4;chstes Jahr wieder stattfinden sollte, werde ich auch jeden Fall wieder vorort sein und mit die Vortr&#xE4;ge anschauen und mich mit den Experten unterhalten. Vielleicht ist meine Englisch bis dahin auch etwas besser. ;)</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Bin ich jetzt ein echter Softwareentwickler / Programmierer?]]></title><description><![CDATA[Ich kann ein Hello World Programm in Java schreiben - jetzt bin ich ein richtiger Software-Entwickler! Das stimmt leider nur zum Teil, bis eigentlich übe...]]></description><link>https://michster.de/bin-ich-jetzt-ein-echter-softwareentwickler-programmierer/</link><guid isPermaLink="false">64ff6f129774e2baa26e2193</guid><category><![CDATA[Storys]]></category><dc:creator><![CDATA[michster]]></dc:creator><pubDate>Thu, 05 Sep 2019 19:45:23 GMT</pubDate><media:content url="https://michster.de/content/images/2019/09/michster_bin_ich_ein_echter_softwareentwickler_programmierer.JPG" medium="image"/><content:encoded><![CDATA[<img src="https://michster.de/content/images/2019/09/michster_bin_ich_ein_echter_softwareentwickler_programmierer.JPG" alt="Bin ich jetzt ein echter Softwareentwickler / Programmierer?"><p>Die Frage, die ich mir ab und zu immer noch Stelle. Schau mal hier, ich kann ein Hello-World-Programm schreiben, jetzt muss ich doch ein Softwareentwickler sein. </p><p>Ja und nein.</p><p>Wenn du zum ersten Mal ein Fu&#xDF;ball ins Tor schie&#xDF;t, bist du immer noch kein Fu&#xDF;baller. Zumindest kein besonders guter, da du aktuell nur wei&#xDF;t, wie du den Ball ins Tor bekommst. </p><p>Du bist also mit deinem Hello-World-Programm auf einem guten Weg, aber noch Lichtjahre vom Entwickler-Da-Sein entfernt, oder? </p><p>Sagtest du nicht, du stellst dir ab und zu immer noch die Frage, ob du denn ein echter Developer bist?</p><p>Ja, weil ich meistens, bzw. sehr oft nicht zufrieden mit dem Code bin, den ich schreibe. Meiner Meinung nach ist das aber auch nicht verkehrt so zu denken. Denn wenn du immer zu 100 % zufrieden mit deiner Arbeit bist, kannst du dich nicht mehr steigern. Ich muss jedoch auch anmerken, dass das nicht ganz so einfach ist. Ab und zu musst du es einfach gut sein lassen und den Code nicht weiter optimieren. Wenn dein Tool funktioniert, ist doch alles im Lot.</p><p>F&#xFC;r alle Anf&#xE4;nger unter euch. Mach dir keinen Stress bez&#xFC;glich Performance oder so einen Quatsch. Rechenleistung haben wir aktuell mehr als genug. Ob das Tool jetzt 2 min oder 3 Minuten f&#xFC;r die Berechnung von X ben&#xF6;tigt, davon geht die Welt auch nicht unter. Was z&#xE4;hlt, ist das Ergebnis. Das muss nat&#xFC;rlich stimmen. Sonst ist ja deine Arbeit sinnlos.</p><h3 id="entwickle-eine-leidenschaft">Entwickle eine Leidenschaft</h3><p>Als Entwickler musst du eine Leidenschaft entwickeln. Das h&#xF6;rt sich jetzt zwar etwas paradox an, ist es aber nicht. Wenn du noch am Beginn deiner Programmierer-Karriere stehst, solltest du dir gewisse Sachen abgew&#xF6;hnen und gewisse andere Angewohnheiten annehmen. Im Laufe der Zeit wird dich auch deine Denkweise oder sagen wir dein Mindset um gef&#xFC;hlt 180&#xB0; drehen. Deine Sichtweise von dem, wie Sachen funktionieren nimmt dabei Stark zu. Teilweise frage ich mich bei Software, wie denn diese eine Funktion programmiert wurde und stelle mir das dann gedanklich vor. Vollkommen irre, aber auch mega nice. Das Problem ist nur, man denkt einfach viel zu viel &#xFC;ber sinnlose Themen nach. Das kann jedoch auch nur bei mir so sein. </p><h3 id="setze-den-fokus-richtig">Setze den Fokus richtig</h3><p>Fokussieren ist bei Softwareentwicklern sehr wichtig. Falls beim durch scrollen deiner ToDo-Liste das Mausrad feuer f&#xE4;ngt, dr&#xFC;ck einfach ESC. Nein, such dir ein Punkt aus und setz deinen Fokus nur darauf. Ich kenne das selber, immer an 10 verschiedenen Sachen arbeiten und am Ende funktioniert davon vielleicht 1 ohne Fehler. Nach einer gewissen Zeit ist das wirklich sehr frustrierend. </p><h3 id="bleib-dran">Bleib dran</h3><p>Ehrgeizig und wissbegierig. Wieder zwei Eigenschaften die du unbedingt mitbringen solltest. Es gibt Fehler bzw. Bugs die du nicht innerhalb von 2 - 3 Stunden l&#xF6;sen kannst. Manchmal brauchst du auch &#xFC;ber eine Woche daf&#xFC;r. Irgendwann kommt dann der entscheidende Gedanke und BAM - Everything is awesome! </p><p>Softwareentwicklung ist einer der am schnellsten wandelnden Bereiche. Neue Technologien werden erfunden und sind nach 3 Wochen State of the Art. So schlimm ist es zwar noch nicht, jedoch solltest du nicht abgeneigt davon sein, neue Sprachen zu lernen und st&#xE4;ndig auf dem aktuellsten Stand zu sein. Gerade in der Webentwicklung gibt es so viele Frameworks, Programmiersprachen, Konzepte und Best-Practice Anleitungen. Gerade als Neuling ist es unfassbar schwierig irgendwie auch nur ansatzweise irgendwas richtigzumachen. Man programmiert etwas in JavaScript und 3 User schreiben, warum man das denn nicht mit PHP und dem ach so tollen Laravel Framework umsetzt. Damit holt man nochmal 3 % mehr an Performance aus deinem verdammten Kontaktformular! Sorry, kurz mal eskaliert! </p><p>Was ist damit sagen will, such dir ein Thema und eine Programmiersprache aus und bleib dabei, solange du das Projekt abgeschlossen hast. Ein Tipp, lies nicht so viel aus der Community. Die meisten sind nicht anders als du. Hate gibt es nat&#xFC;rlich auch. Boah ey, wie kannst du denn mit JavaScript arbeiten, ist doch viel zu unsicher, Bro! Zieh dir mal mein PHP Programm rein, ist mega krass und Safety First! Oder so ein Schwachfug halt. Am Ende kannst du nur der offizielen Doku vertrauen. Oder mir :P</p><p>Falls du also Fragen hast, schreib mir eine Mail oder eine DM bei Instagram @michster. Konkretisiere deine Anfragen bitte und halte den Smalltalk so kurz wie m&#xF6;glich. Ich hab nichts dagegen. Nur m&#xF6;chte ich so wenig Zeit wie m&#xF6;glich mit Anfragen beantworten verbringen, die keinen Sinn haben.</p><p>Vorab:</p><p>F: Wie gehts dir?<br>A: Alles klar!</p><p>F: Was geht ab?<br>A: Jop!</p><p>F: Kannst du mir helfen?<br>A: Dir ist nicht mehr zu helfen!</p><p>F: Ich hab ein Problem!<br>A: ...</p>]]></content:encoded></item></channel></rss>