Lerne Coding
Welche Programmiersprache lerne ich für welchen Zweck?

Du willst Programmieren - Welche Sprache du verwenden sollst?

Inhaltsverzeichnis
[[TABLE OF CONTENTS]]
access_timeGeschätzte Lesezeit ca. Minuten

Viele Programmieranfänger:innen wissen am Anfang nicht, mit welcher Sprache Sie starten sollen, auch du weißt es vielleicht nicht, hast aber schon eine Idee, was du programmieren möchtest. So geht es nicht nur dir, so geht es vielen zu Anfang. Sie irren durch die Welt zwischen Dart, Go, JavaScript, PHP, Java oder sogar Assembler und Brainfuck. In diesem Guide möchte ich dir eine Orientierung an die Hand geben, woran du erkennen kannst, welche Programmiersprache für dich die Richtige sein könnte.

Tipp für Anfänger:innen 💡

Egal was du Programmieren möchtest, egal welche Programmiersprache du verwenden willst, beachte, dass du dein erstes Projekt nicht zu groß machst. Versuch lieber 1-2 kleinere Projekte vorher zu machen bevor du mit dem richtigen Projekt startest, je nachdem was du dir ausgedacht hast, kann dich die Komplexität sehr schnell fordern oder auch überfordern. Bei den meisten Personen die ich begleitet habe, hat sich schnell herausgestellt, dass die Schritte zu groß genommen werden und dann wichtige Basis-Informationen fehlen.

Du willst Webseiten oder Webanwendungen erstellen?

HTML Quelltext einer Webseite
HTML Quelltext einer Webseite

Du willst eine Webseite programmieren, dann hast du sehr viel Möglichkeiten diese zu realisieren. Später, wenn du richtig eingestiegen bist, kannst du zwischen verschiedenen Umsetzungsvarianten wählen. Seien es verschiede JavaScript Frameworks oder Content-Management-Systeme. Der Anfang, wenn du lernen willst mit Webseiten umzugehen, ist allerdings immer derselbe, am besten erst einmal die Auszeichnungssprache HTML lernen, dann mit CSS zum Stylen der Webseite weiter machen.

Als Erstes möchte ich dir hier Podcast Episode 02 von unserem HelloCoding Podcast empfehlen, dort sprechen wir grob zusammengefasst, einmal den gesamten Prozess einer Webseiten-Erstellung durch.

Lernquellen für HTML & CSS findest du hier:

Anschließend, wenn du mit HTML & CSS gute Erfahrungen hast, kannst du loslegen, mit einer Programmiersprache deine Webseite “aufzumischen”. Viele wählen als nächsten logischen Schritt dann JavaScript, da so die Webseite deutlich dynamischer gestaltet werden kann.

Lernquellen für JavaScript findest du hier:

Zusätzlich wenn du diese drei Bereiche, also HTML, CSS und JavaScript für dich auf ein gutes Level gebracht hast, sodass du sagst, du kannst das meiste selbständig für dich lösen, kannst du dir darüber Gedanken machen welche Backendsprachen du lernen willst, also eine die auf dem Server lauffähig ist.

Hier hast du nun verschiedenste Programmiersprachen zur Auswahl. Theoretisch geht hier jede Programmiersprache, die ein HTTP Request handeln kann. Beliebte Sprachen sind hier zum Beispiel Node.js, PHP, Go oder auch Python.

Node.js als Backendsprachen für Webanwendungen

Node.js hat als ersten Schritt zum Backend eine deutlich geringere Hemmschwelle als die nachfolgenden Programmiersprachen, wenn man bereits wie empfohlen vorher JavaScript gelernt hat. Denn die Syntax ist exakt die gleiche. Der größte Unterschied liegt darin, dass es andere Standardpakete und Funktionen gibt. So ist das Einsteigen in Node.js für die meisten deutlich einfacher als in PHP, Python oder GO weiterzumachen.

Lernquellen für Node.js:

PHP, das Urgestein der Backendsprachen für Webanwendungen

PHP ist hier einer der klassischsten Sprachen, so war die Abkürzung für PHP ursprünglich Personal Homepage, hat sich aber etwas später dann zu dem rekursiven Akronym PHP Hypertext Preproccessor geändert. Der Haupteinsatz von PHP ist eben nach wie vor das Web. So ist das größte CMS auf dem Markt, mit einem Anteil von ca. 65 % eben auch in PHP geschrieben, und zwar WordPress. Vorteil von PHP ist, dass es sehr einfach funktional verwendet werden kann, aber auch die Paradigmen der Objekt orientierten Programmierung (OOP) unterstützt. So kann das zum Einstieg ein sehr interessanter Ansatz sein. Vorteil liegt hier definitiv noch im Hosting, da jeder 08/15 Hoster das Ausführen von PHP Dateien unterstützt.

Um PHP zu lernen, kann ich dir die folgenden Lernquellen empfehlen:

Go, die moderne Lösung für Microservices

Go ist eine Programmiersprache aus dem Hause Google, erste Veröffentlichung war 2009 und die erste stabile Version ist von 2012, somit ist Go noch eine Junge-Sprache, aber eine die sich schon über große Beliebtheit freut. So war Go schon 2x (2016, 2009) im Tiobe-Index „Programming Language of the Year“. Grade im Cloud und Microservices Bereich wird Go gerne eingesetzt. Als Ziel hat sich Go vorgenommen eine moderne Alternative zu C und C++ zu sein und mehr auf die Probleme und Situation in der heutigen Zeit einzugehen.

Interessante Quellen und Informationen zu Go:

Python für Webanwendungen

Python wird für extrem viele Zwecke eingesetzt, so wird es uns in diesem Artikel noch häufiger begegnen. So gibt es CMS und verschiedene Router für Python. FastAPI, Django oder Flask sind so die bekanntesten HTTP Router. Django CMS, Wagtail CMS oder auch Plone sind die bekanntesten CMS für Python.

Persönlich finde ich bei Python sehr schön für Anfänger:innen, dass vieles Verschiedenes damit umgesetzt werden kann ohne großartig viel mehr Aufwand Python auch außerhalb des Webs verwendet werden.

Um Python zu lernen, kann ich dir die folgenden Lernquellen empfehlen:

Du willst Apps Programmieren?

Um Apps zu programmieren, gibt es verschiedene Ansätze. Als Erstes solltest du dich fragen, ob du für Android oder iOS entwickeln willst oder sogar direkt Cross Plattform, bedeutet parallel für Android und iOS, mit demselben Source Code mit dem man das APK-File für Android und das IPA-File für iOS erzeugen kann.

Bild eines iPhone Homescreens mit verschiedensten Apps
Bild eines iPhone Homescreens mit verschiedensten Apps

Wenn du nativ für Android entwickeln willst, solltest du dich für Java oder Kotlin entscheiden, da diese native Sprachen für die Entwicklung sind. Falls du für iOS entwickeln willst, empfiehlt es sich, mit Swift oder Objective-C zu arbeiten. Wobei die Verwendung von Objective-C durch die Veröffentlichung von Swift in 2014 deutlich zurückgegangen ist. Weshalb heute eher üblich ist, entsprechende Swift zu verwenden. Besonderheit bei der Entwicklung von Apple egal, ob man ein Cross Plattform Entwicklungsmethode nimmt oder Swift es wird immer ein macOS System für den Build Prozess benötigt.

Neben den nativen Möglichkeiten der Entwicklung gibt es noch weitere wie zum Beispiel React Native, die eben auf React basiert, weshalb der Einstieg hier für einen erfahrenden Webentwickler deutlich einfacher ist. Eine weitere Alternative wäre zum Beispiel die Sprache Dart mit dem Framework Flutter aus dem Hause Google. Die Sprache Dart basiert nicht auf einer bestehenden, sondern wurde extra für die Entwicklung von Anwendungen entworfen. Falls du bereits Erfahrung mit einem JS Framework hast, wird dir der Umstieg aber auch nicht sonderlich schwerfallen. Meine erste größere App habe ich ebenfalls mit Dart programmiert und bin dort sehr schnell hereingekommen. Zusätzlich gibt es noch das Ionic Framework. Diese arbeitet mit JS, CSS und HTML und unterstützt verschiedenste JS Frameworks wie Angular, Vue und React.

Java in der App Entwicklungs Geschichte

Java ist definitiv die älteste Sprache für Apps, die hier aufgeführt ist. Die Sprache eignet sich ausschließlich für die Entwicklung von Android Apps und ist ein Urgestein im Vergleich zu den nachfolgenden Sprachen und Frameworks, sie stammt aus dem Jahr 1996. Gerade was die Entwicklung angeht, hat man mit Android Studio eine gute IDE an der Seite um mit Java zu arbeiten.

Java Lernen - App Entwicklung:

Kotlin die moderne Alternative zu Java in der App Entwicklung

Kotlin ist eine moderne Alternative zu Java in der App Entwicklung. Den großen Vorteil gegenüber Java sehe ich vor allem darin, dass Kotlin eine vereinfachte Syntax hat aber auch auf Java Pakete zugreifen kann und so noch stark mit der Sprache verknüpft ist. Mit Kotlin Multiplatform Mobile SDK können iOS und Android Apps erstellt werden. KMM wirbt vor allem damit, dass es die Vorteile von Cross Plattform und Native miteinander Verknüpfen kann, persönlich bin ich leider noch nicht dazu gekommen das einmal in der Praxis auszuprobieren.

Resourcen und Empfehlungen zum Lernen von Kotlin:

Swift für die Entwicklung unter iOS

Swift wurde von Apple im Jahr 2014 auf den Markt gebracht als Alternative für die Entwicklung in Objective-C für Apple Systeme. So kann Swift für iOS, iPadOS, macOS, tvOS, watchOS verwendet werden. Im Jahr 2015 wurde eine Portierung für Linux mit Swift 2 eingeführt. Im Jahr 2020 wurde auch eine Portierung für Windows eingeführt. So kann inzwischen Swift in einem sehr großen Umfeld theoretisch eingesetzt werden, aber der Kernbereich ist natürlich auch weiterhin der Einsatz im Apple Eco System. Persönlich kann ich mir auch schwer vorstellen, dass es eines Tages größere Linux oder Windows Anwendungen gibt, die in Swift entwickelt wurden.

Swift Playgrounds überzeugt mit einem sehr ästhetischen Interface.
Swift Playgrounds überzeugt mit einem sehr ästhetischen Interface.

Falls du aber primäre im Apple Eco System unterwegs bist, könnte zum Beispiel Swift Playgrounds eine tolle Möglichkeit sein in die Welt von Swift und Programmieren einzusteigen. Swift Playgrounds ist sehr visuell aufgebaut, aber gleichzeitig schon mit echtem Programmcode, sodass man nicht nur etwas Logik lernen kann, sondern auch die ersten Ansätze von professioneller Programmierung. Also nicht wie zum Beispiel bei Scratch, wo man nie echten Programmcode sieht, sage ich mal. Dort hat man eben alles immer auf einem grafischen Interface aufbauend.

Ressourcen und Empfehlungen zum Lernen von Swift:

React Native für die React Liebhaber:innen

React Native ist ein Open Source UI Framework für die Cross Plattform Entwicklung mittels JavaScript Code ähnlich zum React Framework für den Browser. Entwickelt wurde React bzw. React Native ursprünglich von Facebook/Meta Platforms wird aber natürlich auch von der React Community weiter entwickelt.

React Native
React Native

Viele Mobile Apps arbeiten mit React Native. Dazu gehören zum Beispiel eben die Größen von Meta wie Facebook und Instagram. Aber auch Anwendungen wie Discord, Skype, Shopify oder auch die Tesla App arbeiten mit React Native. Also definitiv eine gute Variante für die Entwicklung von Apps. Anfänger:innen würde ich empfehlen, falls ihr mit React Native arbeiten wollt, erst einmal JavaScript und CSS und HTML zu lernen, da so der Einstieg in React Native deutlich einfacher ausfällt.

Flutter / Dart für die Cross Plattform Entwicklung

Flutter - Beispiel Apps
Flutter - Beispiel Apps

Flutter ist ein Open-Source UI-Entwicklungs-Kit geschrieben in Dart und entwickelt von Google. Es ist geeignet für verschiedenste Cross Plattform Entwicklungen sei es Android, iOS, Linux, Windows, macOS oder Google Fuchsia. Der Vorteil liegt definitiv in der guten Cross Plattform Kompatibilität und der guten Performance auf verschiedenen Endgeräten. Nachteil ist, es kann nicht auf Fähigkeiten in CSS oder JavaScript zurückgegriffen werden, wie zum Beispiel beim Ionic Framework oder bei React Native. Da Flutter auf der Programmiersprache Dart basiert, die primäre nur für diesen Zweck entworfen wurde bzw. als moderne Alternative zu JavaScript ist der Syntax-Unterschied zu JavaScript nicht allzu groß und kann zügig gelernt werden.

Migrating an app with 250M+ players to Flutter

Auf der Webseite von Flutter findet man einige Beispiele von größeren Apps, die mit Flutter programmiert wurden, wie zum Beispiel die BMW App, eBay oder auch die beliebte "4 Bilder 1 Wort"-App von den Entwicklern bei Lotum.

Lernquellen für Flutter:

Du willst Desktop Anwendungen Programmieren?

Inzwischen gibt es sehr viele verschiedene Möglichkeiten, eine Desktopanwendung zu erstellen. Theoretisch geht diese auch wieder in sehr vielen verschiedenen Programmiersprachen wie auch die App Entwicklung oder die Spiel-Programmierung und wird heutzutage mit der nahezu grenzenlosen Performance von Geräten immer mehr zur Philosophiefrage und weniger eine Performancefrage. Für Webentwickler ist zum Beispiel der Ansatz mittels Electron sehr interessant, viele bekannte Programme setzen inzwischen auf diesen Weg, Discord, Notion, Facebook Messenger, Figma, Slack, WhatsApp, diese Liste könnte man noch deutlich weiter führen. Für Python Fanatiker gibt es zum Beispiel PyQt5 oder Tkinter. Für die Java Entwickler unter euch ist Java Swing ein interessanter Ansatz. So gibt es für viele Sprachen Ansätze. Eine Variante, die ich persönlich sehr interessant finde, da ich ein Fan von Flutter bin, ist eben damit seine Entwicklung für Desktop Anwendungen zu beginnen, mit der letzten Version kam auch der Support für Windows Anwendungen hinzu. Mehr Details zu Flutter findest du auch noch im vorherigen Abschnitt.

Electron - für Webentwickler:innen ein wahr gewordener Traum

Electron ist das worauf Webentwickler:innen insgeheim seit Jahren gewartet haben, ohne es überhaupt zu wissen! Mittels Electron können Desktop Anwendungen mit JavaScript, CSS und HTML erstellt werden. Es ist keine Erfahrung in anderen Technologien notwendig. Denn Electron läuft mittels Chromium. Und stellt sehr viele APIs bereit, mit dem man alle wichtigen Schnittstellen des Betriebssystems ansteuern kann, egal ob es Windows, macOS oder Linux ist. Es gibt viele bekannte Anwendungen die mit Electron arbeiten wie Figma, Discord oder auch Notion. Unter https://www.electronjs.org/de/docs/latest/api/app findest du eine Auflistung aller möglichen APIs, die unterstützt werden.

PyQT5 - für die Python Entwickler:innen

PyQT5 ist eine gute Möglichkeit für die Erstellung von GUI’s mittels Python. Wobei man hier vom Design nicht so flexible ist wie zum Beispiel bei Flutter oder Electron. Da die GUI Programmierung in Python häufig eher stiefmütterlich behandelt wird. Als ich für diesen Artikel recherchiert habe, habe ich nur eine Anwendung gefunden, die mit PyQT5 in einem größeren Umfeld verwendet wird, und zwar Ultimaker Cura als 3D Slicer-Software für 3D Drucker.

Kommentar zum Thema Desktop Anwendungen

Ein Gedanke zu dem Thema, den ich noch äußern möchte: Brauchen wir wirklich noch Desktop Anwendungen? Electron beispielsweise wie oben beschrieben ist nichts anderes als ein Chrome Browser unter der Haube, der ein erweiterten API-Zugriff hat. So gibt es Figma und Discord 1:1 wie in der Software auch im Browser, bis auf das zusätzliche Fenster, das man dort anklicken kann, sehe ich bei der Desktop Anwendung keine Vorteile mehr. Gerade bei Figma als komplexes Design-Programm, das ich in letzter Zeit vermehrt getestet habe, muss ich sagen, die Desktop Anwendung ist absolut nicht notwendig. Den größten Nutzen sehe ich, wenn es globale Shortcuts gibt, wenn das Programm nicht im Vordergrund ist, dies ist nicht einfach mit einem Browser zu realisieren bzw. eigentlich gar nicht. Beispiel hier für wäre zum Beispiel eine To-do-Software wo mit CMD + ALT + T eine kleines Overview geöffnet wird, wo ein neuer To-do-Eintrag angelegt werden kann.

Du willst deine Prozesse Automatisieren?

Automatisierung ist mein Lieblingsbereich in der Programmierung, meine erste EXE Anwendung die ich mit ca. 12 Jahren entwickelt habe, war in AutoIT geschrieben - eine Skriptsprache die ich keinem empfehlen kann, weil sie häufig von Normen und Standards in der Software-Entwicklung abweicht. Durch Automatisierungen kann man sich häufig viele Prozesse einfacher machen und besser gestalten. Auch hier kann man wieder viele verschiedene Programmiersprachen zur Rate ziehen. Persönlich verwende ich hier gerne Python, wenn es schnell gehen muss.

Theoretisch eigenen sich hier auch wieder viele andere Sprachen wie zum Beispiel Node.js oder auch Go. Es kommt eben darauf an, was für Prozesse automatisiert werden sollen und welche Schnittstellen benötigt werden.

Zum Beispiel gibt es Selenium, das dazu da ist Browser via. Programm Code zu steuern. Selenium gibt es zum Beispiel für Java, C#, Python, Ruby, JavaScript und Kotlin, dann sollte sich für eine dieser Sprachen entschieden werden.

Gerade im Bereich der Automatisierung ist man häufig von APIs abhängig die verwendet werden sollen, dann ergibt es immer Sinn vorher zu prüfen welche API verwendet werden soll und zu prüfen, ob es schon eine passende Implementierung für die gewünschte Sprache gibt.

Du willst Datenanalyse betreiben (Data Science)?

Du willst richtig gut in Datenanalyse werden, sei es für wirtschaftliche oder wissenschaftliche Zwecke. Dort gibt es zwei Sprachen die sich in den letzten Jahren sehr für die Statistik und Datenanalyse herauskristallisiert haben, das eine ist R (aus dem Jahr 1993) die andere Sprache ist unser alt bekannter Freund Python (aus dem Jahr 1991) diese Sprache bietet viel Erweiterungen wie NumPy und Pandas um mit Daten gut umgehen zu können. Eine weitere Sprache, die etwas moderner ist, aber viel von bestehenden Konzepten verwendet und auch stark auf den Lisp-Dialekten basiert ist Julia. Die Sprache wurde mit dem Ziel erschaffen so einfach wie R für Statistiken zu sein. Und ist vor allem wie R auch eine Programmiersprache für wissenschaftliche Zwecke. Gerade in der Performance ist Julia sehr gut aufgestellt.

R - Data Sciene das Wissenschaftliche Urgestein

Kleines Beispiel von R in RStudio dargestellt. "The Sine Function"
Kleines Beispiel von R in RStudio dargestellt. "The Sine Function"

R ist eine Sprache, die primäre auf die Analyse von statistischen Daten ausgelegt ist. Dementsprechende bietet R auch entsprechende Möglichkeiten an. Mit dem RStudio gibt es eine IDE, die direkt auf R ausgelegt ist. Falls du dich mit R beschäftigen willst, empfehle ich dir dieses Programm dafür! Gerade bei statistischen Auswertungen und der Visualisierung von verschiedensten Daten zeigt R seine Stärken.

Quellen für R:

Julia - für Datenanalyse

Julia ist noch eine neue Sprache auf dem Markt, die erste Version stammt aus dem Jahr 2012 und sie wurde vor allem für wissenschaftliches Rechnen entwickelt. Und wird häufig als Konkurrent zu Python und R im Datenanalyse Bereich immer wieder erwähnt. Julia ist zum Beispiel deutlich schneller als Python. Und kommt in vielen Bereichen fast an C heran. Dieses zeigt zum Beispiel der Performance-Vergleich im folgenden Beitrag: https://towardsdatascience.com/r-vs-python-vs-julia-90456a2bcbab

Julia Terminal
Julia Terminal

Allerdings muss man auch sagen, dass die Verbreitung von Julia was Lernquellen angeht zum Beispiel nicht so umfassend ist als Python. Julia beschränkt sich zurzeit eben noch sehr auf den wissenschaftlichen Bereich, weshalb es in der breiten Masse noch nicht wirklich angekommen ist. Dadurch findet man im Internet auch nur eingeschränkt Ressourcen.

Wenn du an einer Uni als Student zum Beispiel tätig bist oder allgemein vor allem in dem wissenschaftlichen Bereich unterwegs bist, ist Julia sicherlich ein Blick wert.

Lernquellen auf Englisch zu Julia:

Python - auch wieder am Start!

Python ist tatsächlich eine Sprache, die eigentlich in allen Bereichen ihre Anwendung findet.

So gibt es auch Pakete für Python, mit dem es zu einer starken Sprache für den Bereich der Datenanalyse wird. Als Anfänger:in kann ich dir Python auch hier wieder ans Herz legen, da es gerade hier auch viel im professionellen Umfeld eine starke Verbreitung genießt.

Mit den Optionen von Jupyter Notebooks, Pandas, Matplotlib und NumPy habe ich zu Anfang der Covid-19 Pandemie einmal eine kleine Auswertung in Python geschrieben, sicherlich ein Blick wert: Wie Data Science funktioniert - Mit COVID-19 Daten!

Weitere Pakete, die für die Datenanalyse/Maschinelles Lernen in Python interessant sein könnte, sind:

  • SciPy
  • Scikit-learn
  • Keras
  • Theano
  • TensorFlow
  • Caffe
  • PyTorch
  • Seaborn

Du willst ein Betriebssystem programmieren?

Du bist verrückt geworden, na gut hier zu auch ein paar kleine Tipps! Das was hier im Ansatz beschrieben wird, ist definitiv nichts mehr für Einsteiger:innen. Hier ist ein gewisses Basiswissen definitiv notwendig.

Es gibt unter anderem die nachfolgende Github Repository. Diese geht auf den gesamten Prozess der Programmierung eines Betriebssystems ein, angefangen beim Booten, über ein 32-Bit Mode bis hin zum Handling von Files und der Erstellung einer Shell ist alles dabei. Das ganze System arbeitet mit C und Assembler. Mehr zu den Abläufen findest du in dem Repository.

Github Logocfenollosa/os-tutorial
26.331 119 3.205

How to create an OS from scratch

Fazit

Es gibt sehr viele Programmiersprachen, Frameworks, die alle ganz viele tolle Funktionen und Möglichkeiten haben. Wichtig ist es gerade am Anfang sich auf ein Ziel fest zulegen und dann nicht allzu sehr davon abzuweichen, um seinen Fokus zu behalten und sich nicht zu sehr in Details zu verlieren.

Bildquellen - Vielen Dank an alle Ersteller:innen für die Bilder
Kommentare zum Artikel

Es sind noch keine Kommentare vorhanden? Sei der/die Erste und verfasse einen Kommentar zum Artikel "Welche Programmiersprache lerne ich für welchen Zweck?"!

Kommentar schreiben

Verwante Beiträge
close