Inhaltsverzeichnis

Wenn du Programmieren kannst, stehen dir sehr viele Türen offen. Du kannst dir dein Leben vereinfachen, deine Aufgaben automatisieren, deine eigene Kreativität entfalten oder sogar einen neuen, gut bezahlten Job finden.

Aber wie fängt man mit dem Programmieren an? Hier habe ich eine Guideline für dich, die dir alle Fragen rund ums programmieren Lernen beantwortet!

Kann jeder Programmierer werden?

Jeder kann Coding lernen. Kannst du gut googlen, wirst du gut im Coden sein. Aber nicht jeder kann ein guter Programmierer sein. 

Das zeigt die Studie von Vivian, Falkner & Szabo (2014): In ihrer Umfrage fanden sie heraus, dass die meisten Befragten (überwiegend ITler) der Meinung sind, dass jeder grundlegend Coding-Konzepte erlernen kann. Problematisch soll es aber bei fortgeschrittenem Programmieren werden, da hier mathematische Logik, Fähigkeiten in Problemlösungen und abstraktes Denken erforderlich sind.

Und das deckt sich auch mit meiner persönlichen Meinung und Erfahrung. Es ist nicht allzu kompliziert zu verstehen, was eine Klasse, eine Schleife oder eine Bedingung ist. Damit kann man schon sehr viele Programme schreiben. 

Du denkst dir fehlen die Fähigkeiten, um ein wirklich guter Programmierer zu sein? Das kann sein, heißt aber nicht, dass Programmieren nichts für dich ist. Es dauert dann einfach länger. Oder du spezialisierst dich auf einen bestimmten Bereich, der dir eher liegt. Gamer werden in der Mustererkennung in der Spieleentwicklung besser sein, als bei mathematischen Konzepten im Machine Learning. 

Jeder muss seine Talente nutzen. Ich habe als Jugendlicher versucht Plugins für Minecraft zu programmieren und bin kläglich gescheitert. Nachdem ich aber in der Uni ziemlich viel Spaß in Statistik hatte, fiel mir Programmieren lernen viel leichter, weil mir die mathematischen Konzepte eher lagen als das abstrakte Denken bei der Spieleentwicklung. 

Braucht man Mathematik zum Programmieren?

Programmieren lernen Mathematik

Du musst absolut kein Mathe-Genie sein. Ich hatte selbst etliche 4en in Mathe. Es gibt viele Bereiche beim Programmieren, in denen Mathe absolut nicht notwendig ist. 

Ein Minecraft-Plugin-Entwickler wird weniger mit Mathematik zu tun haben, als ein Machine Learning Engineer. 

 

Häufig sind es sehr einfache Berechnungen wie z.B. Kilogramm in Gramm umwandeln. Ich habe in der regulären Software-Entwicklung genau ein Mal „kompliziertere“ Mathematik gebraucht: Den Satz des Pythagoras. Und danach nie wieder. 

Warum ist Mathematik also immer so ein großes Thema?

  1. Es gibt Bereiche wie z.B. im Machine Learning, bei denen man Formeln verstehen und anpassen muss.
  2. Code ist im Hintergrund reine Mathematik. Allerdings ist das für 99% der Coder absolut irrelevant – Wir arbeiten im Vordergrund.
  3. Die Konzepte ähneln sich einfach. Wer Variablen in der Mathematik versteht, versteht sie auch im Coding.

Wie man NICHT anfangen sollte

Es gibt nicht nur einen Weg um Programmieren zu lernen. Trotzdem sehe ich häufig die selben Probleme, weshalb Einsteiger aufgeben.

Die folgenden Punkte sind absolut legitime Möglichkeiten, um Coding zu lernen. Ich möchte dabei aber auch die resultierenden Nachteile zeigen.

Alles verstehen wollen

In meiner Recherche habe ich viele Tipps gefunden, die vorschlagen erst einmal Computer Hardware, das Internet, die Command Prompt etc. von A bis Z zu verstehen. Sobald es mit dem Programmieren losgeht, soll man jeden Befehl bis auf die letzten Nullen und Einsen im Hintergrund erklären kann.

Diese Strategie führt zur sogenannten Tutorial Hell. Man liest oder schaut Tutorials und Tutorials und Tutorials… Aber man wird nicht besser im Programmieren.

Du solltest nicht versuchen erst alles zu verstehen und erst danach anzufangen. Daher solltest du nur das notwendigste lernen und sofort an die Praxis gehen.

Häufig hört man „Ich schaue solange Tutorials, bis ich mich bereit fürs Programmieren fühle“. Das wird nie geschehen. Ich fühle mich auch nach Jahren im Beruf nicht „bereit“. Wenn man aber genug kann, kann man fehlendes Wissen googlen, wenn man es braucht.

Lerne also nicht, um zu lernen. Lerne, wenn du Probleme lösen musst. 

Daher mein Ratschlag: Nimm dir nicht mehr als einen Monat Zeit für die reine Theorie

Sobald du praktisch an Projekten arbeitest, wirst du recherchieren müssen. Und genau in solchen Situationen brennt sich das Wissen viel besser in deinen Kopf ein.

Videokurse

Programmieren Lernen Theorie Praxis

YouTube ist voll mit kostenlosen Videotutorials, wie man programmieren lernt. Leider beobachtet man meistens ein Muster: Part 1 hat 1.000.000 Clicks, Part 2 hat 500.000 Clicks und Part 37 hat nur noch 1.000 Clicks. Die Aufmerksamkeitsspanne bricht irgendwann einfach ab.

Bei Videokurs-Anbietern wie Udemy oder Coursera hat man das selbe Problem: Die Informationen, die man erhält sind grundsätzlich absolut super, nur ist die menschliche Aufmerksamkeitsspanne nicht so lang. 

Programmieren ist letztlich sehr anstrengende Kopfarbeit, die sehr erschöpfend ist. 8 Stunden pro Tag konzentriert vor Kursen zu sitzen ist einfach nicht möglich.

Als Gegenargument kann man aber sagen, dass kürzere Zeitspannen ausreichen sollten. Ja, aber das führt zu zwei Problemen:

  1. Wir haben beim bloßen Anschauen von Videos wenig Prozesse, die die Informationen vom Kurzzeit- in das Langzeitgedächtnis führen.
  2. Das Ziel von ausführlichen Videokursen ist es, alles über die Programmiersprache zu verstehen. Wir möchten aber programmieren lernen. Programmieren ist die Fähigkeit vom Lösen von Problemen, die man noch nie zuvor gesehen hat. Man lernt in den Tutorials also eine Menge Werkzeuge kennen, hat aber zu wenig Gelegenheit sie selbst anzuwenden und miteinander zu vergleichen. 

Welche Programmiersprache du lernen solltest

Welche Programmiersprache auswählen

Du solltest auf keinen Fall zu viel Zeit hier rein investieren. Alle Programmiersprachen haben die selben Konzepte. Es ist einfach nur eine unterschiedliche Schreibweise.

Je nach Ziel und Nische haben manche Programmiersprachen kleine Vorteile

Solltest du dich auf bestimmte Firmen bewerben wollen, kannst du hier alle Technologien entdecken, die die großen Firmen verwenden. Du wirst sehen, dass vieles davon keine Programmiersprachen sind, sondern Erweiterungen von bestehenden Sprachen. Das geht aber zu tief ins Detail, weshalb du bei den Grundlagen bleiben solltest.

Daher findest du hier eine Auflistung der üblichsten Tech-Stacks in verschiedenen Programmierbereichen:

Gaming

Hier ist der Tech-Stack abhängig von deinem Ziel. Möchtest du ein AAA Spieleentwickler werden und gigantische Open-World Projekte mitgestalten oder lieber als Indie-Entwickler kleine, eigene Games aufziehen? Möchtest du Spiele für Konsolen oder für Smartphones entwickeln? Sobald du diese Fragen für dich beantwortet hast, kannst du genauer recherchieren, was welche Vorteile hat.

Du musst rein technisch nur eine Game Engine und eine Programmiersprache beherrschen. Um dir die Auswahl zu erleichtern: Starte mit Unity als Game Engine und C# als Programmiersprache.

Für bessere Performance und Konsolen kannst du später noch zu C++ wechseln. Da C# deutlich anfängerfreundlicher ist, kann das deine Motivation länger aufrecht erhalten.

Weitere beliebte Game Engines die du verwenden kannst, sind:

  • Unreal Engine
  • Godot

Apps

Bei Apps muss man zwischen Android und iOS Entwicklung unterscheiden.

Kotlin, Java und C++ sind beliebte Programmiersprachen für Android Apps. In 2019 hat Google veröffentlicht, dass Kotlin ihre präferierte Programmiersprache für Android Entwicklung ist.

Für iOS Geräte hat man eine etwas kleinere Auswahl: Swift und Objective C. Swift ist eine relativ neue Sprache von Apple, während Objective C seit den 80ern verwendet wird. Swift ist laut Apple aber 2,6x schneller als Objective C. Die Firma Lyft hat ihre iOS App von Objective C auf Swift umgeschrieben und konnte den Code um über 60% reduzieren. Durch Apple’s modernen Ansatz lässt sich also in den meisten Fällen zu Swift raten

Websites

Für Web-Entwicklung ist es immer der selbe Stack: HTML, CSS und JavaScript. Daran kommt man nicht vorbei.

Du wirst aber noch viel von anderen Technologien wie z.B. React, Angular, Vue.js etc. hören. Das sind Frameworks, kurz gesagt vereinfachen sie dir das Arbeiten in JavaScript. Das sind fortgeschrittene Themen, auf die du auf deiner Reise zwangsweise stoßen wirst.

Data

Der Data Bereich ist recht breit gefächert. Ob Data Scientist, Data Analyst oder Data Engineer – an SQL kommt man nicht vorbei. Das ist keine Programmiersprache, sondern eine Datenbanksprache. Damit kannst du Tabellen nach bestimmten Informationen abfragen.

Zum Programmieren benutzt man häufig im Berufsleben Python und in der wissenschaftlichen Forschung R. Beide haben den Vorteil, dass ihre Performance mit Daten sehr hoch ist. Solltest du nicht in die Forschung gehen wollen, rate ich eindeutig zu Python. Du kannst darin sowohl statistische Analysen vornehmen, als auch ganze Software schreiben, um Daten aus unterschiedlichen Quellen zu extrahieren.

Für Data Engineers sind tiefgehende Python-Kenntnisse sehr wichtig. 

Data Scientists hingehen sollten grundlegend damit arbeiten können. Häufig reichen tiefe Kenntnisse in Pythons Machine-Learning Paketen wie z.B. pandas, numpy, scikit-learn und matplotlib aus. 

Data Analysts können in einigen Rollen auch ganz ohne Python auskommen, da sie statistische Analysen mit Software wie Power BI, Tableau oder Qlik Sense einfach und visuell nachbauen können.

Robotik

Um Roboter zu programmieren, verwendet man in der Regel Python oder C++. Python ist viel anfängerfreundlicher, während C++ eine deutlich bessere Performance liefert.

7 Schritte um Programmieren zu lernen

1. Nur das nötigste an Syntax verstehen

Wie bereits beschrieben, solltest du nicht lernen, um zu lernen. Du solltest nur lernen, um Probleme zu lösen.

Dein erstes Problem wird es wahrscheinlich sein, fremden Code zu verstehen. Wenn du Python lernen möchtest, starte direkt mit diesem Projekt. Gehe Zeile für Zeile durch und versuche zu verstehen, was in der Zeile passiert.

Dabei solltest du z.B. lernen, was Module, Variablen, Bedingungen und Datentypen sind – direkt an einem Praxisbeispiel. In kurzer Zeit solltest du einen Punkt erreichen, bei dem dir fremder Code zumindest schon vom Schreibstil bekannt vorkommt. Wenn du auf den ersten Blick schon einen Bruchteil vom Code verstehst, bist du bereit.

2. Probleme lösen

Viel wichtiger als schönen Code zu schreiben, ist es guten Code zu schreiben. Meine Mathelehrerin sagte immer der Taschenrechner ist nur so gut wie der, der ihn benutzt. Das trifft auch beim Programmieren zu.

Du wirst häufig vor Problemen stehen, die ordentlich gelöst werden müssen. Dafür ist sowohl kreative als auch logische Problemlösung erforderlich. Und die logischen Problemlösungen zu üben macht sogar Spaß:

Lernspiele – Es gibt einige Lernspiele, in denen man Aufgaben mit vereinfachtem Code gestellt bekommt. Eines der bekanntesten Beispiele ist Karel.

Es gibt aber auch etliche Apps auf dem Handy. Meine liebste Android App ist Algorithm City. Das ist noch deutlich intuitiver als Karel, da nicht mit Code gearbeitet wird sondern mit Aktionen. Du sagst z.B. dass sich der Pinguin 3 Schritte nach vorne, dann einen Schritt nach rechts und darauf eine Münze aufsammeln soll. Das selbe könnte man auch in Code schreiben. Durch diese Vereinfachung kommt man schon in grundlegende Denkweisen von Funktionen und Algorithmen rein.

3. Baue ein kleines Skript

Jetzt hast du echten Code schon einmal gesehen und kannst schon denken wie ein Programmierer. Jetzt geht es an die Praxis mit einem kleinen Projekt. Schreibe ein kleines Skript, das dir deine ersten Challenges und Erfolgserlebnisse schenkt.

Falls dir nichts einfällt, ist das kein Problem. Hier eine Liste mit etlichen Ideen:

  • Schere-Stein-Papier
  • Würfel Simulator
  • Text-Basiertes Abenteuerspiel
  • Geigenmännchen
  • Zahlen raten
  • Passwort Generator

Wenn du möchtest, bau für den Anfang auch mehrere kleine Skripte. Du solltest erst einmal üben viel Code zu schreiben.

4. Erweitere dein kleines Skript

Schere-Stein-Papier? Ich kenne nur Schere-Stein-Papier-Echse-Spock. Erweitere deine Skripte mit neuen Features. Das ist das, was dich in der Realität erwartet. Programme sind nie fertig. Es gibt immer potentielle Erweiterungen.

Falls du Tic Tac Toe aber nicht auf drei Spieler erweitern möchtest, kannst du auch etwas kompliziertere Projekte schreiben:

  • Taschenrechner
  • Wecker, Timer und Stoppuhr
  • YouTube Video Downloader
  • Quiz
  • Webscraper

Suche dir eine Herausforderung. Je mehr du dir denkst, dass du das niemals lösen könntest, umso mehr lernst du aus diesem Projekt. Dein Ziel ist es ja nicht Marktführer mit so einer App zu werden. Das ist für dich ein reiner Lernprozess, weshalb du auch fehlschlagen darfst.

Kommst du gar nicht voran, arbeite an 5 anderen Projekten und schau dann wieder rein. Plötzlich ist die Lösung vom ersten Projekt doch so einfach!

5. Bekomme Feedback von erfahrenen Programmierern

Code Reviews haben meinen Lernprozess enorm beschleunigt. Kennst du jemanden, der als Programmierer arbeitet oder einfach gerne hobbymäßig programmiert? Die eigenen Freunde sind da häufig die besten Lehrer, weil sie sich eher Zeit für dich nehmen als es fremde im Internet tun würden.

Frag doch einfach mal in einer WhatsApp Story nach, ob es jemanden gibt, der dir für einen Döner beim Programmieren helfen könnte.

Sollte sich niemand melden, hast du auch online Möglichkeiten, um jemanden zu finden, der deinen Code bewertet. Hier gebe ich dir aber einen entscheidenden Tipp: Je präziser deine Frage, desto eher kriegst du eine Antwort.

„Gibt es einen schnelleren/saubereren Weg, um Problem X zu lösen?“ ist besser als „Hier ist mein Code, kann das jemand reviewen?“. Je mehr Arbeit, desto weniger Lust haben Fremde auf deinen Code.

Auf Stackexchange kannst du kurze Code Blöcke posten und Feedback bekommen. Alternativ kannst du auf Reddit nach Subreddits für deine Programmiersprache suchen, wo es erlaubt ist, nach Code Reviews zu fragen. Vielleicht auch bei einem Twitch-Streamer, der Coding Streams macht.

Meine letzte Idee: Vernetze dich mit Programmierern. Vielleicht lernst du eine nette Person auf LinkedIn kennen, die viele Tipps zu deiner Programmiersprache gibt und sich der Sache annehmen würde. Da diese Person dir einen Gefallen tut, kannst du dich im voraus erkenntlich zeigen. Vielleicht braucht die Person gerade Unterstützung bei einem Projekt, die du kostenlos bzw. gegen Coding Tipps anbieten würdest.

6. Lerne sauberen Code zu schreiben

Im vorherigen Schritt wurdest du wahrscheinlich von A bis Z geroastet. Dein Code ist einfach zu unsauber, um ihn zu lesen.

Es gibt tatsächlich Guidelines für sauberen Code, um die Verständlichkeit für Leser zu optimieren. Mein Ziel beim Coding ist es, dass selbst ein Nicht-ITler im groben verstehen würde, was im Code passiert.

Such einfach nach deiner Programmiersprache + „Clean Code“.

7. Programmiere ein Großprojekt

Auch hier gilt, es soll eine Lernerfahrung sein. Du sollst nicht der nächste Jeff Bezos werden. Und falls doch, würde ich mich sehr über ein Haus auf den Philippinen freuen.

Baue etwas Gigantisches. Wovon auch immer du träumst, bau es. Es kann eine künstliche Intelligenz für Schach sein, oder das nächste Amazon. Vielleicht doch eine Dating App? Ein Bot, der dir eine Playstation 5 kauft, sobald sie erhältlich ist. Eine Sportanalyse Software. Ein besseres DataMines. Es gibt keine Grenzen. Bau, was du möchtest.

Überleg dir, was dich oder eine Community, die du magst, interessiert. Starte mit einem Skelett, bau eine extrem vereinfachte Form. Dann erweitere nach und nach die Features. Du wirst dir an diesem Projekt die Zähne ausbeißen und genau das wird dich zu einem grandiosen Programmierer machen.

Das ist die wichtigste Praxis beim Programmieren. Hier realisierst du auch, dass die kleinen Skript im Vergleich nur Warm-Up sind. So etwas wird in der Praxis kaum angewendet.

Vielleicht wächst das Projekt ja wirklich zu etwas Großem. Dann connecte dich mit anderen Programmierern über Reddit, YouTube oder sonstigen Social Media Plattformen und baut zusammen etwas Großes auf!

Was du tun kannst, wenn dein Code nicht funktioniert

Das täglich Brot des Programmierers sind Fehlermeldungen. Manchmal fehlt ein Semikolon am Ende. Manchmal ist dein ganzer Code einfach Müll.

Du erhältst aber keine Fehlermeldung, die dir sagt „Dein Code ist scheiße“, sondern hinweise auf die genaue Zeile, die den Fehler verursacht und die Art des Fehlers. Du gibst in einem Formular bei deinem Vornamen „42“ ein und erhältst eine Fehlermeldung, dass dein Programm keine Zahlen erwartet. Das ist genug Information, um dein Problem zu lösen. Es ist leider nicht immer so eindeutig, weshalb man die Standard-Fehlermeldungen seiner Programmiersprache gut kennenlernen sollte.

Die Kunst des Programmierens ist es, diese Fehler zu lösen. Dafür gibt es etliche Ansätze

 

  • Konkretisiere das Problem – Skizziere dir das Problem so, dass es visuell verständlich ist. 
  • Notiere genau, was du machen möchtest – Schreibe dir jeden Schritt auf, den du im Code hast und daneben was deine Zielvorstellung ist.
  • Verändere den Input – Wenn du bspw. eine Excel Tabelle mit Telefonnummern einliest, teste lieber eine einzelne Nummer, die du manuell als Input eingibst.
  • Löse ein großes Problem in mehrere kleinere Probleme auf – Manchmal hast du mehrere Fehler auf einmal. Versuche alle zu identifizieren und arbeite jeden Schritt für Schritt ab.
  • Schlafen – Nach einer Nacht hat man oftmals wieder einen klaren Kopf und eine direkte Lösung.

Weitermachen, wo andere aufgeben

Du bist nicht dumm, du lernst nur auf dem falschen Level.

Stell dir vor, wir wären in der 3. Klasse im Matheunterricht. Unsere Lehrerin Frau Schmidt stellt uns den Satz des Pythagoras vor. Wir haben aber noch nie mit Variablen gearbeitet, wissen weder was Quadratzahlen und Wurzeln sind, noch wie man Formeln umstellt. Das Problem ist also nicht der Satz des Pythagoras, sondern die Vorkenntnisse.

Frau Schmidt erklärt uns jetzt diese ganzen Konzepte im Schnelldurchlauf und nun wo wir es erklärt bekommen haben, können wir doch den Satz des Pythagoras anwenden, oder? Nein. Die Vorkenntnisse sitzen einfach noch nicht tief genug. Das braucht einfach Zeit und Übung.

Genau das ist der Ansatz zum Lernen: Je mehr und je länger du dich mit einem Problem herumschlägst, desto besser wirst du im Programmieren.

Genau diese Struggles sind es, die einen zum guten Programmierer machen. Leider hören hier viele auf. Sie können den Fehler nicht auf externen Quellen finden, verstehen es auch so nicht und geben auf.

Bonus-Tipp: Lass dich beim Lernen bezahlen

Mit einem Job oder einem Praktikum kannst du dafür bezahlt werden, programmieren zu lernen. Wie bereits beschrieben, lernst du das meiste beim Programmieren. 

Wenn du also grundlegende Fähigkeiten hast, erstell dir ein Portfolio mit zwei komplizierteren Projekten. Schreibe den Code am besten noch einmal neu und versuche ihn so sauber wie möglich zu halten. Passe deine Fähigkeiten im Lebenslauf so an, dass sie zum Job passen und schick etliche Bewerbungen raus. 

Gerade zur heutigen Zeit ist es sehr schwierig gute Programmierer zu finden. Und durch Remote-Work hast du viel mehr Möglichkeiten, bei denen du dich bewerben kannst. 

Alternativ kannst du es mit Freelancing versuchen. Auf Seiten wie Fiverr oder Upwork kannst du Programmier-Aufträge bekommen. Durch den Druck, dass du am Ende ein gutes Resultat abliefern musst, gerätst du unwahrscheinlicher in die Situation, dass du aufgibst, falls du nicht weiterkommst. 

Falls du dir hier denkst, dass du dich nicht dafür bereit fühlst: Das tut keiner. Das nennt sich Imposter-Syndrom. Man vergleicht sich mit anderen und denkt, man hätte die Position nicht verdient, weil die eigenen Fähigkeiten nicht so gut sind wie die der anderen.

Ich kann dich aber beruhigen, uns allen geht es so. Vergiss nicht, wir alle haben die selben 24 Stunden. So viele Wunderkinder gibt es nicht, dass man die Fähigkeiten nicht auf deren Level bringen kann. Die wenigsten haben mit 8 Jahren angefangen zu programmieren. Lass dich also nicht entmutigen und werde zum besten Programmierer, der du werden kannst.

Zusammenfassung

Wenn du gut googlen kannst, kannst du gut programmieren. Vermeide also „alles“ verstehen zu wollen, dafür hast du Google.

Wenn du mit dem Programmieren startest, lerne die gröbsten Grundlagen und schau dir fremden Code an. Hier werden Fragen aufkommen, die du googlest und so löst. Wenn dir die Sprache etwas vertrauter ist, baust du ein sehr einfaches Skript, dann ein etwas komplizierteres. Versuche Feedback von anderen Programmierern zu bekommen, damit du einen Blick auf bessere Lösungen kriegst. Zuletzt arbeite an einem Großprojekt und lerne auf dem Weg dahin alles, was du brauchst.

Ich hoffe, dieser Artikel konnte dir helfen. Solltest du Denkanstöße oder Fragen haben, kommentiere es sehr gerne hierunter!

ARTIKEL TEILEN

Hast du Fragen? Hinterlasse einen Kommentar!