Du willst das Programmieren lernen?
Eigene Apps schreiben und geniale Games coden? Dann bist Du bei diesem Tutorial genau richtig.
Steige ohne Vorwissen mit diesem Tutorial ein.
Beginnen wir!
- 1 Warum soll ich Coden lernen?
- 2 Die Grundlagen – Einstieg ohne Vorwissen
-
3
In 10 Schritten zum Software Eningeer
- 3.1 #1 Motivation aufsaugen
- 3.2 #2 Erstes Hello World schreiben
- 3.3 #3 Nach Anleitung schreiben
- 3.4 #4 Dokumentation lesen lernen
- 3.5 #5 Clean Code verfassen
- 3.6 #6 Im Team zusammenarbeiten
- 3.7 #7 Fortgeschrittene Techniken lernen
- 3.8 #8 Selbstvermarktung und Coding-Effektivität
- 3.9 #9 Neue Technologien in der Realität umsetzen
- 3.10 #10 Neuartiges schaffen und brauchbar machen
- 4 Weitere Fragen
Warum soll ich Coden lernen?
Programmieren ist die Schlüsselfähigkeit des 21. Jahrhunderts.
Eine Software kann wiederholende Arbeitsschritte automatisieren und diese regelbasiert erledigen. Wer coden kann, kann seine Aufgaben schneller erledigen. Wenn Du eine gute, fehlerfreie Automation schreibst, multipliziert sich Deine Arbeitskraft um das millionenfache Vielfache.
Du denkst jetzt „millionenfach“ ist übertrieben – aber früher haben Buchhalter Monate damit verbracht einen Jahresabschluss anzufertigen, indem diese Werte per Hand aufsummiert haben. Ein Computer kannst die gleiche Aufgabe in Sekunden erledigen!
Weitere Vorteile: Du verstehst, wie Software funktionieren und kannst Software an Deine Bedürfnisse anpassen. Du kannst Deine Computer-Probleme leichter beheben und hast mehr Verständnis für die Fehler in der Software anderer.
Brauche ich Vorwissen?
Wenn Du lesen und schreiben kannst, dann kannst Du diesen Skill erlernen.
Du kannst diesen Skill schneller lernen, wenn Du abstrakt denken kannst (kein Muss). Du musst keine 1,0 in Mathematik in der Schule haben oder Informatik studiert haben. Viele Profis haben ihre Fähigkeit über kostenlose Tutorials wie dieses erworben (und nicht in der Uni).
Lerne jede Sprache und -technik im Internet kostenlos. Entwickler stellen die Dokumentation und Tutorials in vielen Computersprachen frei zugänglich zur Verfügung.
Welcher PC / Welcher Laptop brauche ich?
Im Gegensatz zum Gaming brauchst Du beim Coden keinen schnellen und leistungsstarken Computer.
Du kannst auf einem 10 Jahre alten Notebook oder Desktop PC coden. Dir reicht für 95 % der Aufgaben ein Notebook oder Desktop PC mit Windows, Linux oder macOS aus, der mindestens 4 GB RAM verwendet. Als Anfänger brauchst Du keinen besseren Computer, weil Deine erste Software Deinen Computer kaum ans Limit bringen.
Wenn ein Browser auf Deinem Rechner läuft, steht Dir nichts mehr im Weg heute noch Dein erstes funktionierendes Programm zu schreiben.
Einfache Regel
Die Grundlagen – Einstieg ohne Vorwissen
Computer-Programme sind wie Kochrezepte.
Steffens Erklärung
Eingabe: Rohe, ungeschälte Kartoffeln
- Kartoffeln schälen
- Wasser auffüllen
- Salz hinzu
- Kochplatte 4 anschalten
Ausgabe: Gekochte Kartoffeln
Du bist der Kochbuchautor (Programmierer) und sagst, was wann der Gehilfe (Computer) machen soll, damit das Ergebnis am Ende stimmt.
Über fest definierte Koch-Anweisungen (Computer-Befehle) erklärst Du Deinem Gehilfen (Computer) den Ablauf, sodass ein gutes Gericht herauskommt.
Der dumme Gehilfe (Computer) arbeitet minutiös Deine Befehle ab. Wenn Du vergisst in Dein Kochrezept zu schreiben, dass der Gehilfe (Computer) die Kochplatte 4 anschalten soll (Befehl), wirst Du später mit rohen Kartoffeln abgestraft (Bug).
Als Kochbuchautor stellst Du oft dem Gast verschiedene Alternativen zur Verfügung. Entweder bevorzugt der Gast die Kartoffeln als Bratkartoffeln oder im Salzwasser gekocht. Der Gast sagt, welche Variante er bevorzugt (Input). Dein Rezept braucht eine Verzweigung:
Input: Garmethode: braten
- Kartoffeln schälen
- Wenn: braten –>
- In Scheiben schneiden
- Öl in den Topf
- Wenn: nicht braten –>
- Wasser auffüllen
- Salz hinzu
- Kochplatte 4 anschalten
Output: gekochte Kartoffeln oder Bratkartoffeln
Wenn Du mehr als eine Kartoffel essen möchtest, schreibst Du in Dein Kochrezept z.B. Bitte springe zu Schritt 1 (Schleifen):
- Kartoffeln schälen
- Wenn: braten –>
- In Scheiben schneiden
- Öl in den Topf
- Wenn: nicht braten –>
- Wasser auffüllen
- Salz hinzu
- Springe zu Schritt 1 bis Kartoffelanzahl = 5
- Kochplatte 4 anschalten
Output: gekochte Kartoffeln oder Bratkartoffeln
Die Kartoffelanzahl stellt für den Computer eine Variable dar. Eine Variable ist ein Speicherplatz, der Zahlen, Texte, Gruppe von Zahlen und Texten (Arrays) beinhalten kann. Wenn Du die „Kartoffelanzahl“ abrufst, erhältst Du den Wert, der abgespeichert ist. Du kannst den Wert überschreiben oder löschen.
Jetzt haben wir alles zusammen. Der Computer …
- … arbeitet nacheinander Befehle ab
- … nimmt Eingaben auf, verarbeitet diese und gibt Ausgaben aus
- … merkt sich Werte mit Variablen
- … und ist mit Verzweigungen und Schleifen steuerbar
In 10 Schritten zum Software Eningeer
Für Dich habe ich 10 Schritte zusammengestellt, wie Du von einem Anfänger (ohne Vorwissen) zu einem Geek wirst.
#1 Motivation aufsaugen
Bevor du beginnst, wild auf deiner Tastatur rum zu hacken, brauchst Du eine gute Portion Motivation für das Coden.
Hier sind die TOP 6 Vorzüge, wenn Du programmieren lernst:
- Reich werden: In der Softwareentwicklung sind Margen von 40 % bis 70 % realistisch. Du entwickelst einmal eine Software und die kostenlosen Kopien verkaufen sich Millionenfach im besten Fall.
- Schneller Fehler am Computer lösen: Statt zu verzweifeln, wenn der Computer spinnt, findest Du die Lösung zu Deinem Problem strukturiert und zügig.
- Kreatives Hobby für die Freizeit: Tobe Dich, wie bei Holz-DIY-Projekten in den Tools künstlerisch aus. Entwickle eigene Features und die Benutzeroberflächen von morgen.
- Hohe Gehälter in der IT-Branche: Als Software-Engineer verdienen selbst als Quereinsteiger oder mit Mittlerer Reife ein sehr gutes Gehalt. Die Spitzengehälter für Experten liegen bei 250.000+ Euro Jahres-Brutto ohne eine Personalverantwortlichkeit (mit genügend Skill).
- Nach Deinen Bedürfnissen Apps entwickeln: Dir gefällt etwas an Deiner Lieblings-App nicht? Ändere die App Deinen Skills, wenn diese Open-Source ist.
- Unabhängigkeit von Geeks: Der Telekom Techniker kommt nicht. Der Apple Support antwortet nicht. Dein Laptop hängt sich ständig auf. Du bist mit den neuen Fähigkeiten unabhängiger von den Informatikern, die mit dem Computer umgehen können.
Das Coden besitzt wie jede Tätigkeit eine Licht- und Schattenseite. Fehler, die Du nicht sofort lösen kannst, sind nicht immer angenehm. Wenn Du Dich vertippst oder einen Logik-Fehler in Dein Software einbaust, zeigt der Computer eine Fehlermeldung an.
Viele Anfänger schmeißen nach 10 Minuten das Handtuch und behaupten:
„Habe kein Talent dafür.“ – „Den Mathe-Kram versteh ich nicht.“ – „Ich bin einfach zu dumm.“
Der ungeduldige Anfänger
Motiviere Dich und suche Dir einen Motivations-Vorteil oben aus der Liste heraus. Frage andere um Hilfe, wenn Du nicht weiterkommst (Foren, StackOverflow). Gebe nicht nach 30 Minuten auf. Schaue Dir die Anleitung genauestens nochmal an und vergleiche diese mit Deinem Code!
Erfahrene Coder starren an vielen Tagen 60 Minuten auf Ihren Code, um zu bemerken, dass sie ein Semikolon vergessen haben (Anfänger-Fehler). Das ist menschlich, normal und gehört zum Coden dazu.
Die Realität spricht
#2 Erstes Hello World schreiben
Traditionell nennt sich das Einstiegsprojekt in die Codierung in jeder Sprache „Hello World“. Du versuchst, dass auf Deinem Bildschirm ein „Hello World“ erscheint, wenn Du Deine Software ausführst.
Wenn der Computer ein „Hello World“ anzeigt, kannst Du bereits die Tools installieren und kennst die Struktur, wie eine Software aufgebaut ist. Das Installieren der Umgebung ist oft schwerer als das eigentliche Coden des Hello-World-Projekts. Für Anfänger habe ich viele Schritt-für-Schrittinstallationsanleitungen für beliebte Sprachen und Frameworks zusammengestellt.
- TypeScript (JavaScript nur besser)
- Python
- Java
#3 Nach Anleitung schreiben
Du willst mehr als nur „Hello World“ coden?
Mehr Features! Mehr Buttons! Mehr Ausgaben!
Um Deine Wunsch-Features zu bauen, musst Du die Grundlagen und Datenstrukturen aus der Programmierung verstehen. Du musst Dir nicht alles aus den Fingern saugen. Ich habe für Dich Grundlagen-Tutorials geschrieben, mit den Du nützliche Anwendungen bauen kannst.
z.B.
- Andorid Apps und Apple iOS Apps mit Ionic
- PHP Laravel für Anfänger lernen
- Java lernen für Anfänger
- JavaScript / TypeScript für Anfänger
#4 Dokumentation lesen lernen
Nachdem Du die Grundlagen einer Sprache im Groben verstanden hast, solltest Du Stück für Stück die Dokumentation der Sprache lesen.
Jede Sprache und Framework sollte eine technische Dokumentation mit Fließtext-Kommentaren bieten. Diese Informationen kommen aus erster Hand von den Entwicklern und sind am aktuellsten. Viele Dokumentationen nutzen eine Versionierung für die Releases der Sprache oder des Frameworks. Viele Dokumentationen sind im Gegenzug nur schwer zu erfassen und zu verstehen.
Wenn Du nach einer Coding-Frage googelst, landest Du zu 80 % auf Stack Overflow. Stack Overflow ist eine Plattform, wo Unerfahrene Fragen stellen können und (hoffentlich) die Profis antworten.
Bedenke bei Stack Overflow: Viele Antwortende …
- … schreiben ineffizienten Code
- … glänzen nur mit Halbwissen
- … aktualisieren nicht ihre Antworten bei der Änderungen bei der Codierung
Ein schnelles Copy-Paste von einer Stack Overflow Lösung funktioniert in den meisten Fällen, aber …
- Du hast nicht verstanden, was der Code macht
- Die Benennungen sind oft grauenvoll (siehe Clean Code)
- Du kennst die Zusammenhänge nicht
Nutze Stack Overflow. Aber behalte meine Warnungen im Hinterkopf.
Steffen Lippke
#5 Clean Code verfassen
Was ist Clean Code? Sauberer Code? Ja, stimmt.
Du solltest Dir angewöhnen eine hohe Code-Qualität mit Deiner ersten Zeile Code zu produzieren:
- Benenne die Dateien, Variablen und Funktionen mit sprechenden Namen.
- Schreibe kurze und viele Funktionen
- Du nennst Ähnliches ähnlich und unterschiedliches unterschiedlich.
- Keep it stupid, simple: Je einfacher und kürzer der Code ist, desto besser ist die Qualität (Ausnahme Benennung der Variablen und Funktionen).
Warum soll ich den Aufwand für Clean Code betreiben?
Andere Personen wollen Deinen Code lesen. Wenn Du die Variablen mit x, y, z, k oder n benennst, dauert es deutlich länger bis eine andere Person den Code versteht (oder Du in 6 Monaten). Wenn Du die Textfeld-Variable für den Kontonummer txtfieldAccountNumber
nennst, dann findet sich der andere Kollege schneller zurecht.
Lese-Tipp: Meine Clean Code Guides mit vielen Praxisbeispielen
#6 Im Team zusammenarbeiten
Wenn Du alleine coden kannst, hast Du die Stufe 5 erreicht.
Die nächste Herausforderung ist die Entwicklung einer Software im Team. Ein Team besteht aus mehreren Codern, die einen unterschiedlichen
- Ausbildung
- Wissensstand
- Hintergrund
- und Präferenzen
… haben. Ihr müsst Regeln für den Clean Code aufstellen, euch Gedanken über die Strukturierung des Projekts und Architektur machen. Eine sinnvolle Aufgabenverteilung nach Stärken gehört dazu.
Jedes Team durchläuft Phasen der Zwietracht. Die Software zeigt viele unerwartete Fehler auf, die die Kollegen sich gegenseitig in die Schuhe schieben.
Die Zusammensetzung des Codes übernimmt ein Versionierung (z. B. Git). Die Software vergleicht Deine Änderungen am Code mit den Änderungen der anderen und fügt diese zu einem Projekt zusammen (merge).
Digitale Tools wie Todoist, Trello oder Jira nutzen viele Teams, um sich zu organisieren. Die Dokumentation des Projekts erfolgt in der Codebasis, die eine Software später heraus extrahiert (Swagger).
#7 Fortgeschrittene Techniken lernen
Wenn Du im Team codest, lernst Du schnell neue Techniken kennen. Andere Profis empfehlen Dir Tricks und Tipps, die Dich voranbringen.
Ein sogenannter „Code Review“ ist für die Anfänger Gold wert. Andere erfahrene Superprofis gehen mit Dir in einem Meeting Deinen Code durch. Sie suchen nach schlechten Code, Strukturen und geben Dir (hoffentlich) konstruktive Kritik und Verbesserungsvorschläge zum Code.
Fortgeschrittene Themen behandele ich auf diesem Blog:
#8 Selbstvermarktung und Coding-Effektivität
Der beste Coder fällt nie als der beste Coder auf, wenn er seine Leistungen nicht vermarktet. Ich meine nicht, dass Du wie ein Marktschreier herumbrüllen sollst, sondern in Deinen Meetings, Präsentationen und Code Reviews auf Deine gut erledigte Arbeit aufmerksam machen sollst.
Achtung: Versuche nicht die meisten Zeilen Code zu coden oder Todos zu erledigen, sondern eine hohe Coding-Effektivität zu schaffen.
- Effizient – eine Sache gut machen, z. B. konzentriert ein Feature schnell fertigstellen.
- Effektiv – die richtigen Sachen machen, z. B. überlegen, welches Feature der Kunde wirklich braucht und dieses umsetzen.
Suche Dir die Kernherausforderungen des Projekts heraus und erledige diese. Suche Dir die Schlüsselbausteine des Produkts heraus und erledige sie gut!
Beispiel Aufgabenliste: Die App soll zuverlässig die Aufgaben zwischen den Geräten synchronisieren. Ein schlechter Entwickler baut zuerst die Features wie den Dark Mode und die Internationalisierung ein. Ein guter Entwickler baut zuerst den Synchronisierungs-Algorithmus und achtet darauf, dass die App nie eine To-do frühzeitig löscht.
#9 Neue Technologien in der Realität umsetzen
Die Medien praktizieren im Zusammenhang mit Software und dem Silicon-Valley ein Buzzword-Bingo:
Die hoch-angepriesenen Technologien, die die Welt ändern sollen, funktionieren, nur die meisten Coder wenden sie nicht an. In der Universität lernen junge Coder die neusten Technologien kennen.
„Kann ich eine Blockchain für die Zuverlässigkeit unserer Lieferkette einprogrammieren?“
Frisch gebackener Kollege
„Gute Idee. Schreib es mal ganz hinten auf die Todo-Liste (und vergiss es gleich wieder)“
Chef (45 Jahre, zwei quengelnde Kinder)
Viele Unternehmen wollen keine Zeit und Geld für „unbekannte“ Technologien ausgeben, weil dies oft eine hohe Anfangsinvestition mit wenig Output mit sich bringen.
Versuche privat die Technologien in Deine Projekte einzubauen, zu verstehen, zu testen und damit zu spielen. Das Privat-Projekt ist ein gutes Argument, welches Dir hilft, Deinen Chef davon zu überzeugen.
#10 Neuartiges schaffen und brauchbar machen
Wenn Du die neusten Technologien in der Praxis anwenden konntest, überlege wie Du neuartige Implementierungen umsetzt. Verwende die neuesten abstrakten Konzepte und Probleme der Mathematik, Physik oder Naturwissenschaften, um diese mit Code zu lösen.
Gehe neue Wege. Teste aus und teile Deine Idee als Open-Source-Projekt.
Weitere Fragen
Wie lange brauche ich um eine App zu schreiben?
Knappe Antwort: Eine einfache Beispielsoftware oder eine App kannst Du ohne Vorwissen in 10 bis 40 Minuten erstellen.
Steffen Lippke
Für eine simple Taschenrechner-App braucht ein Anfänger im Schnitt 1 – 2 Stunden (unter Anleitung).
Die Zeit bis Deine App fertig ist, hängt ab von der …
- Gewählten Sprache
- Dauer der Installation der Umgebung
- Deine Anforderungen an die App
- Funktion – Was soll die App an Features aufweisen?
- Stabilität – Was passiert, wenn ein Depp die App bedient?
- Aussehen – 0815-Baukasten-Design oder kreatives Game?
- Anzahl der Codierungsfehler
Was ist besser fürs Coden? Mac vs. Windows?
Ist Mac, Windows oder Linux besser zum Coden geeignet? Diese Frage behandeln viele Profis und Amateure sehr subjektiv. In meinen Augen ist das eine Glaubensfrage und kein objektiver Vergleich.
Meine Antwort: egal!
Du kannst mit allen Betriebssystemen coden. Ich habe mit allen eine Zeit lang gearbeitet und habe alle getestet. Mit allen Betriebssystemen kannst Du die meiste Software gleich schnell und gleich aufwendig entwickeln, z. B. Java, Python oder PHP.
Mein Tipp: Nutze das Betriebssystem, welches Dir gefällt bzw. welches Du die meiste Zeit nutzt.
Steffen Lippke
Welche Sprache muss ich lernen, um X zu machen
Viele Anfänger fragen, was sie lernen müssen, um X zu coden, hier die Auflösung:
Ich möchte eine … coden | Du lernst Du … | mit der folgenden Software … |
Android App / Game | Kotlin / Java | Android Studio |
iPhone App / iPad App / Game | Swift / Objective-C | Xcode |
Windows Tool | C / C++ / .NET | Visual Studio Code |
Webseite | HTML, CSS, JavaScript | Visual Studio Code |
Game für Xbox / PlayStation / Computer | C / C++ | Gamestudio, Unreal Engine |
Apps für Apple und Android | Ionic | VSCodium |
Datenbanken | SQL | phpMyAdmin, postgress |
Künstliche Intelligenz | Python / R / TensorFlow | Jupiter Notebooks |
… |
Wenn Du nach dem Erwerb einer Sprache tendenziell mehr verdienen willst, lerne …
- Python mit numpy – Machine Learning usw.
- Cobolt – für Versicherungen und Banken
- GOlang – für Hacker bei Google (von Google entwickelt)
- ABAP – Business-Anwendungen in SAP