Welche Programmiersprache?

4 Antworten

Zum python lernen empfehle ich: Tigerjython.

Oder halt unity falls du C# lernen willst

Für tigerjython: gib tigerjython auf Google ein,klick auf den ersten link und lad es dir herunter. Dann öffnest du es. Falls du Hilfe brauchst:msg me.

LG Lolmops

Woher ich das weiß:Berufserfahrung

C# und .NET

Alternativ gibt's noch Java, ich bin kein Fan davon, aber es ist einfach und kann nicht so viel (manche sagen zu viel), wie C#. Man muss also nicht so viel lernen/verstehen, hat dafür aber auch nicht so viele Möglichkeiten.

Oder C++, das ist ziemlich schwer und sehr komplex, aber dafür ist praktisch alles möglich.

Für Web wirst Du natürlich nicht um HTML/CSS und JavaScript herum kommen, egal was Du zusätzlich lernen willst.
Und für die meisten Projekte wirst Du auch SQL brauchen, wenn Du Daten performant speichern willst, aber da gibt's meistens Frameworks (bei .NET Entity Framework Core), was das fast vollständig weg abstrahiert und automatisiert.

Technologien mit C# und .NET:

  • Xamarin (veraltet, abgekündigt, aber stabil und "erprobt") für iOS-, Android- und Windows-Phone Apps
  • MAUI (relativ neu, viele Kinderkrankheiten) für iOS-, Android-, Windows-Phone und Windows-Desktop-Apps
  • ASP.NET Core (Microsofts Flaggschiff, das merkt man) für alles im Web
  • Blazor mit ASP.NET Core für Websites
  • MAUI Hybrid (MAUI mit Blazor-Frontend, aber ohne die vielen Kinderkrankheiten) für iOS-, Android-, Windows-Phone und Windows-Desktop-Apps
  • Razor (quasi Vorgänger von Blazor) mit ASP.NET Core für Websites
  • WPF (alt, sehr erprobt, sehr stabil, sehr flexibel) für Windows-Desktop
  • WinForms (sehr alt, sehr erprobt, sehr stabil, sehr unflexibel) für Windows-Desktop
  • Unity für Videospiele, ggf. noch weitere Umgebungen, dazu weiß ich nichts
  • WinUI3 (neu, quasi Nachfolger von WPF?, wird von MAUI genutzt) für Windows-Desktop

Effektiv kann man damit alles machen, was man will, AUSSER sehr hardwarenahe Komponenten, da muss man auf C++ ausweichen. Man kann die C++-DLL dann aber aus C# heraus nutzen, sofern sie richtig vorbereitet wurde - was ich auch immer einem reinen C++-Projekt vorziehen würde.

Ich persönlich bin mit Blazor zufrieden, damit entwickle ich Web-Anwendungen, muss mich nicht mehr als nötig mit JavaScript herum streiten und wenn's eine Desktop-Anwendung werden soll, entwickle ich mit Blazor eben eine Desktop-Anwendung. Mit MAUI Hybrid funktioniert das auch ganz easy, leichtgewichtiger ist das Community-Projekt Photino.NET, aber das läuft derzeit nicht auf Mobile und braucht etwas Einrichtung.
Der vermutlich wesentlichste Vorteil von Blazor in dem Kontext ist, dass man die selbe Anwendung mit wenig Aufwand für Web, Mobile und Desktop anbieten kann, während der Großteil des Codes gleich bleibt. Das ist nicht ganz einfach, weil man mehrere Frameworks (min. MAUI Hybrid und ASP.NET Core mit Blazor) verheiraten muss, aber es geht und es gibt nur wenig Code, der sich unterscheidet.

Generell gibt's noch alles mögliche aus der Community, Electron, Uno, Avalonia (WPF-"Klon" für alle Plattformen), viele viele kleinere Frameworks, etc. Erstaunlich ist, dass das alles auch größtenteils homogon aufgebaut ist, man findet sich also relativ leicht zurecht.

Python [...], weil ich gelesen habe es soll sehr einfach sein

Ein Kollege arbeitet mit Python, weil er mit KI arbeitet, nach dem, was er erzählt hat, solltest Du Python nicht lernen ^^ Ja, für KI ist es quasi alternativlos, für alles andere aber nicht. Dann ist es nicht leichter zu lernen, als andere Sprachen (manche argumentieren mit der schwachen Typisierung und den fehlenden Klammern, was beides quatsch ist), dafür hat Python aber diverse Probleme (z.B. Multithreading), die dir später auf die Füße fallen. Ich weiß nicht, ob's irgendwelche Adaptionen gibt, die das besser lösen (ich kenne nur IronPython, was im Hintergrund .NET ist), aber dann muss man sich damit wieder auseinander setzen.

viele tausend Fragen

Das ist keine relevante Größenordnung, komm wieder, wenn Du ein paar Millionen Fragen speichern willst :D

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler

fang mit HTML CSS und JS an und geh dann nach Wunsch zu Python oder GO oder Rust. aber es ist wichtig das man die grobe logic versteht.

Das thema web ist ein Spezialfall, da hier JavaScript quasi ein Monopol hat. Es ist die einzige Sprache, die regulär in einem Browser ausgeführt werden kann, um interaktive Webseiten zu entwickeln.

Eine Webapp besteht in der Regel aus zwei Komponenten, dem Frontend und dem Backend. Das Frontend ist die eigentliche Webseite, die im Browser des Besuchers geladen wird. Das Backend ist das Serverseitige System, mit dem das Frontend kommuniziert, z.B. um Daten anzurufen.

Gutefrage.net ist da ein gutes Beispiel, wenn du die Webseite aufrufst, werden natürlich nicht alle Fragen, die jemals gestellt wurden samt aller Antworten und Kommentaren geladen, sondern nur das, was du gerade brauchst. Das Frontend fragt also beim Backend bestimmte Inhalte, wie zum Beispiel alle Antworten zu dieser Frage, an, und stellt diese dar.

Beim Backend ist man deutlich freier, welche Sprachen man benutzen möchte. JavaScript mit Node.js ist hier ebenfalls eine Möglichkeit, aber weitere, gängige Sprachen für Backends sind PHP, Python, Java und Go. Aber theoretisch kann man ein Backend in fast jeder Sprache schreiben.

Für Web-Apps ist es also auf jeden Fall erstmal sinnvoll, Javascript zu lernen. Vorteil von Webapps ist natürlich, dass sie auch direkt auf allen Geräten funktionieren. Unter bestimmten Bedingungen machen native Apps (also Apps, die man direkt installiert) Sinn, aber dafür braucht man dann wieder je nach System eventuell andere Programmiersprachen und Technologien.

Prinzipiell gibt es viele Lernressourcen online, insbesondere zu Javascript, einfach, weil es so viel verwendet wird. Ein eigenes Projekt im Kopf zu haben ist sehr gut, denn dann kannst du einfach mal versuchen, das umzusetzen. Die erste Version muss ja nicht direkt brauchbar oder perfekt sein, einfach mal die groben Funktionen umzusetzen ist eine sehr gute Übung. Ein guter (Web)entwickler wird man nicht in einem Monat. Ich mache das jetzt seit etwa 5 Jahren, und habe so langsam das Gefühl, solide Grundlagen zu haben, um einsatzfähige Webapps zu programmieren, und habe trotzdem noch das Gefühl, dass es noch so viel zu lernen gibt (was aber auch irgendwo schön ist, da man immer das Gefühl hat, sich weiter zu verbessern). Es gibt aber auch quasi unendlich viele Technologien, die auf Javascript, HTML und CSS aufsetzen.

Es gibt viele kostenlose Videokurse zu Javascript, sicherlich gibt es auch kostenpflichtige Ressourcen, die gut sein können. Aber ich denke, du kannst einfach mal mit einem kostenlosen Tutorial reinstarten. Gibt ja auch manchmal Kurse, wo die ersten Videos kostenlos sind, und der Rest dann kostenpflichtig. Du musst natürlich einen Kurs/Channel finden, der für dich persönlich passt. Ich würde nur empfehlen, sicherzustellen, dass es einigermaßen aktuell ist (sollte nicht älter als 3-5 Jahre sein) und dass nicht gleich ein Arsenal an Zusatztechnologien wie React etc. ausgepackt werden. Für den Anfang würde ich immer empfehlen, erstmal Standard HTML, CSS und Javascript zu lernen, und am besten in dieser Reihenfolge, wenn du in die Webentwicklung einsteigen willst.

Woher ich das weiß:Berufserfahrung – Tätigkeit als Webentwickler in einer Digitalagentur

Triathlon1509 
Beitragsersteller
 02.10.2024, 13:28

Vielen Dank für eure schnellen und hilfreichen Antworten. So wie ich es jetzt verstanden habe muss ich für Webseiten sowieso HTML, CSS und Javascript lernen was ich dann jetzt auch tun würde (und Python erstmal beiseite legen).

Beim Vorgehen würde ich dann erstmal ein paar Tutorials etc. anschauen und Grundlagen anlegen und parallel Stück für Stück üben. Mir ist klar, dass das ein sehr langer Weg ist, aber ich habe auch große Freude daran und freue mich drauf.

Aber würdet ihr empfehlen, die Sprachen parallel oder nacheinander zu lernen?

Danke schon mal im Voraus für die Antworten. Ich suche mir derweil schon mal Lernmaterial heraus.

Ireeb  02.10.2024, 14:20
@Triathlon1509

Es macht am meisten Sinn, sich der Reihe nach Grundlagen anzuschauen, erst HTML, dann CSS, dann JS, und dann alles zusammen zu vertiefen. Es sollte auch erwähnt werden, dass HTML und CSS keine Programmiersprachen sind, und daher an sich auch etwas "simpler" als z.B. Python oder Javascript. Es sind Sprachen, aber HTML ist eine Auszeichnungssprache und CSS eine Stylesheet-Sprache.

Kurzgefasst kann man sagen:

HTML definiert den Inhalt einer Webseite.

CSS definiert wie sie aussieht.

JS definiert wie sie funktioniert.

Bei den meisten Webseiten braucht man eben alle 3. Aber ohne zu wissen, wie der Inhalt einer Webseite aufgebaut ist, ist es schwierig zu verstehen, wie man diesen mit CSS stylen oder mit JS manipulieren kann. Du musst dich aber wie gesagt nicht erst ewig mit HTML beschäftigen und jedes Element und Detail kennen, bevor du dir die anderen Themen anschaust. Die Basics und Grundkonzepte sind das Wichtigste. Das gilt auch für CSS. CSS bietet tausende Möglichkeiten, um Webseiten schick aussehen zu lassen, damit könnte man sich ewig beschäftigen. Wichtiger ist aber auch hier, zu wissen, wie es grundsätzlich funktioniert. Denn dann kannst du besser verstehen, wie man mit Javascript z.B. das HTML verändern oder CSS-Klassen verwenden kann, um eine Webseite zu einer interaktiven Webapp zu machen.

Später gibt es noch Technologien, die diese Konzepte noch enger verknüpfen, das sind Frameworks wie Vue oder React (ich persönlich finde Vue einfacher und angenehmer als React, und würde sehr empfehlen, dir das mal anzuschauen, wenn du das Gefühl hast, HTML, CSS und JS grundsätzlich verstanden zu haben).