Welche Programmiersprache lernen (was ist die mächtigste)?

17 Antworten

Die beste Programmiersprache für Anfänger?

Die "beste" Programmiersprache

Die Frage nach der besten Programmiersprache (ob für Anfänger oder generell) lässt sich nicht beantworten. Jede hat ihre Vor- und Nachteile, was es unmöglich macht, die "beste" zu bestimmen.

Sprachen für bestimmte Einsatzgebiete

Die erste Entscheidung, die Programmier-Anfänger treffen müssen, ist, mit welcher Programmiersprache sie anfangen sollen. Die Wahl der Sprache hängt von dem ab, was man damit vor hat. Wer programmieren lernen will, hat in der Regel ein konkretes Ziel vor Augen. Eine eierlegende Wollmilchsau gibt es nicht wirklich, Programmiersprachen sind für einzelne Aufgabenbereiche gut:

  • Für Web Development (Websites schreiben) im Frontend (das, was der Nutzer sieht) ist die Skriptsprache JavaScript naheliegend, da sie von den meisten Browsern nativ unterstützt wird und sehr weit verbreitet ist. Auf GitHub ist sie die meistgenutzte Sprache ( http://githut.info/ ). Hier sollten aber Vorkenntnisse in HTML & CSS vorhanden sein.
  • Serverseitig, also im Backend (das, was der Nutzer nicht direkt sieht), sind PHP, JavaScript (mit Nodejs), Python, Java und Ruby vorne mit dabei.
  • Für Desktop Apps bieten sich z. B. Java, Python, C-Sprachen (C, C++, C#), aber auch die oben genannten Web-Technologien an.
  • Bei der Entwicklung von Mobile Apps sind Java/Kotlin (Android), Swift, Objective-C (beide iOS) und auch wieder die oben genannten oft genutzte Sprachen.
  • (diese Liste lässt sich noch weiter fortführen)

Wenn es dir nur um das Programmieren an sich (ohne konkretes Ziel) geht, dann bringe ich dir hier mal meine Meinung näher. Grundsätzlich ist es so, dass es leichter ist neue Sprachen zu lernen, je mehr man schon kann. So lassen sich Erfahrungen und Fähigkeiten aus verschiedenen Einsatzgebieten und Sprachen auch auf andere übertragen.

General Purpose

Die erste Programmiersprache sollte meiner Meinung eine Sprache sein, die für Vieles verwendet werden kann, da man sich so einen großen Überblick über die Einsatzgebiete verschaffen kann. Eine Sprache wie PHP, die sich fast nur auf das Erzeugen von HTML-Code fokusiert, ist daher eher ungeeignet.

Imperativ vs. deklarativ

Außerdem sollte sie imperativ sein. In imperativen Sprachen schreibst du konkrete Anweisungen, die nacheinander ausgeführt werden sollen. Das gibt dir ein besseres Verständnis über Algorithmik.

Beispiel: Ausgabe der Quadrate ungerader Zahlen von 3 bis 11

Imperativ in C:

for (int i = 3; i < 12; i += 2) {
printf("%d\n", i * i);
}

Deklarativ in Haskell:

mapM_ print [ i^2 | i <- [3,5..11] ]

Popularität

Warum sollte sie populär sein? Weil man dann - gerade als Anfänger - einfacher Hilfe bekommt. Je größer und bekannter eine Sprache ist, desto mehr Material findet man auch bei Recherchen und desto schneller und öfter bekommt man in Foren Antworten. Und diese Hilfestellungen sind für Anfänger Gold wert.

Meine Meinung: Python

https://www.python.org/

Ich halte Python für die am besten geeignete Programmiersprache für Anfänger:

  • Sie erfüllt meine drei Kriterien.
  • Der Interpreter (das Programm, das du zum Ausführen brauchst) ist für alle gängigen Betriebssystem frei erhältlich: https://www.python.org/downloads/
  • Die Hürden bis zum ersten Programm sind minimal: Nachdem der Interpreter heruntergeladen ist, kann direkt eine Textdatei mit Python-Code praktisch aufwandslos ausgeführt werden.
  • In die IDLE kann man Anweisungen eintippen und bekommt sofort Rückmeldung.
  • Python vereinfacht sehr viel (z. B. dynamische Typisierung), sodass der Anfänger nicht gleich mit allen möglichen Konzepten erschlagen wird.
  • Es werden mehrere Paradigmen benutzt (u. a. funktionale Programmierung).
  • Die auf Einrückung basierende Syntax erspart verwirrende Klammern.
  • Der Quellcode ist auch für Nicht-Programmierer leicht verständlich
  • Mit pip lassen sich Pakete aus einem riesigen Repertoire installieren, die dir alle möglichen Funktionen bieten.

Java

https://en.wikipedia.org/wiki/Java_(programming_language)

Java ist wohl die Sprache, die den meisten Anfängern empfohlen wird. Diese Empfehlungen kommen oft von Programmieren, die selbst noch Anfänger sind und damit nur ein sehr eingeschränktes Sichtfeld haben (das ist nicht abwertend gegenüber Anfängern gemeint). Von Java rate ich dir jedenfalls ausdrücklich ab!

Es handelt sich dabei zwar um eine relativ leichte Sprache, dafür ist sie aber sehr komplex und hat viel Boilerplate Code.

Beispiel: Ausgabe von "Hello World"

In Python:

print("Hello World")

In Java:

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

Oft wird als Argument pro Java angeführt, man würde damit die objektorientiete Programmierung lernen. Fakt ist, dass Java nicht vollständig das Paradigma der OOP erfüllt. So gibt es z. B. primitive Datentypen und die Kommunikation über Messaging funktioniert nicht so, wie sie es soll. Java ist defintiv keine pure objektorientierte Sprache. Wenn es dir wirklich darum gehen sollte, OOP zu lernen, dann lerne Smalltalk, aber nicht Java!

Des Weiteren braucht man für Java, wenn man damit richtig programmieren will, eine IDE und diese sind meistens so überladen, das Anfänger davon erschlagen werden.

Es gibt noch sehr viele weitere Gründe, die gegen Java (als Einsteigersprache) sprechen, die möchte ich hier gar nicht aufzählen.

JavaScript

https://en.wikipedia.org/wiki/JavaScript

Um Missverständnissen vorzubeugen: JavaScript hat (fast) nichts mit Java zu tun.

Diese Sprache ist sehr vielfältig. Man kann sie zur Entwicklung von Desktop Apps, Mobile Apps, Serveranwendungen und dynamischen Websites (das ursprünglichen Einsatzgebiet) nutzen.

Ich persönlich programmiere sehr gerne und häufig mit JavaScript , allerdings hat die Sprache sehr viele Designfehler, eher unleserlichen Code und ist schwer zu debuggen. Das kann erst recht für Anfänger sehr abschreckend sein.

Etoys / Scratch

https://en.wikipedia.org/wiki/Etoys_(programming_language)

https://en.wikipedia.org/wiki/Scratch_(programming_language)

Etoys und die Billigkopie Scratch sind Sprachen, deren Code visuell (nicht mit Text) geschrieben wird. Sie sind beide dafür gedacht, Kindern das Programmieren näher zu bringen. Für mehr sind sie aber auch nicht nutzbar.

C / C++

https://en.wikipedia.org/wiki/C_(programming_language)

https://en.wikipedia.org/wiki/C%2B%2B

C und C++ sind sehr hadwarenahe Sprachen und deshalb sehr schwierig. Daher sind auch sie für Anfänger ungeeignet.

Wie lerne ich am besten eine Sprache?

Es gibt verschiedene Möglichkeiten, Sprachen zu lernen:

  • Die offizielle Dokumenation der jeweiligen Sprache ist meist die vollständigste und fehlerfreiste Anlaufstelle. Allerdings findet man sich als Anfänger dort eher weniger zurecht, da es keine roten Faden gibt.
  • Ich bin ein Fan von Fachliteratur. Bücher sind oft gut durchdacht und detailliert. Auch das sprachliche und fachliche Niveau sind im Vergleich zu z. B. Videos deutlich höher. Ich würde dir in jedem Fall englische Literatur empfehlen. Abschreckend ist hier leider oft der Preis.
  • Tutorials auf YouTube sind kostenfrei, leicht zugänglich und leider sehr oft Müll. Gute Videos zu bestimmten Themen sucht man meist lange. Außerden ist das Überfliegen bei langen Videos praktisch nicht möglich, ein großer Nachteil gegenüber der Literatur. Ich möchte aber nicht Videos generell schlecht reden, es gibt definitiv auch gute.
  • Bezahlte Video-Kurse bilden ein Hybrid aus gut durchdachter Literatur und ... Videos.
  • Interaktive Lernprogramme, wie z. B. SoloLearn. Ich halte nicht wirklich viel davon, nach meiner Erfahrung lässt die Qualität sehr zu wünschen übrig.

Wichtig ist immer, dass du selbst programmierst (Learning by doing) und nicht einfach nur abtippst. Im Internet oder in den Fachbüchern gibt es viele Programmieraufgaben, die auch versuchen solltest zu lösen. Ansonsten kommst du nicht voran. Diese Gefahr besteht vor allem bei Youtube-Videos.

Ich kann dir diese Youtube-Playlist empfehlen, in der grundsätzliche Konzepte des Programmierens erklärt werden ohne eine bestimmte Sprache zu benutzen. Das Risiko, dazu verleitet zu werden, nur abzutippen, ist damit gleich null. Nichtsdestotrotz würde ich dir raten, gleichzeitg eine Programmiersprache zu lernen, in der du diese Konzepte dann umsetzt.

https://youtube.com/watch?v=nVMlDghNcHg

Wenn du eine Seite wie YouTube programmieren möchtest, reicht nicht nur eine Sprache aus.

Für's Web brauchst du HTML um die Struktur festzulegen, und CSS für das ganze Styling.

Zudem nutzt YouTube das JavaScript Framework Polymer. Hierfür ist JavaScript erforderlich. Das Back-End (hier laufen Scripte Serverseitig ab und liefern nur das Ergebnis. Das ist auch die sogenannte Geschäftslogik) läuft über ich denke mal Java.

Zudem muss auch alles in eine Datenbank gespeichert werden. YouTube verwendet höchstwahrscheinlich MySQL.

Wie du siehst, reicht für eine dynamische Webseite niemals eine Programmiersprache aus.

Kurzgesagt brauchst du für eine Webseite wie YouTube oder Facebook folgende Programmiersprachen / Auszeichnungssprachen:

Für's Front-End:

  • HTML
  • CSS, optional SASS oder Less
  • JavaScript
  • optional ein Framework wie Polymer, Angular, React, Vue.js etc.
  • optional eine JavaScript Bibliothek wie jQuery

Für's Back-End:

  • Für die Logik je nach Wahl wie PHP, Java, Node.js, Python
  • Zum Speichern der Daten MySQL, MariaDB, MongoDB

Beherrscht du davon von jeder Kategorie min. eine Sprache, kannst du Webseiten wie YouTube oder Facebook programmieren.

Es ist aber ein langer Weg.

5

Konnte Mark Zuckerberg wirklich alle Sprachen die an Facebook beteiligt sind?

1
38
@thefy6

Ein erfahrener Programmierer kommt in seinem Berufsleben sicherlich mit 40, 50 oder mehr Sprachen in Berührung. Zumindest ist das bei mir - bis jetzt - so. Als ich das letzte mal gezählt habe, waren es 55 Sprachen. Das klingt jetzt viel, aber wenn man sich als Entwickler mal hinsetzt und in Ruhe überlegt, mit wie vielen Sprachen man bisher so zu tun hatte, fällt einem evtl. noch JScript und DHTML aus den 90ern, Lisp und Haskell aus dem Studium oder gefühlt eine Million Basic-Dialekte aus Kindertagen ein. :)

Und das, was Zuckerberg anfangs für Facebook benötigte (im Groben: PHP, JS, CSS, HTML, SQL, RegEx, htaccess-Kram, Shell, usw.) können viele 12jährige in ausreichendem Maß um irgendetwas zusammen zu frickeln, auch wenn viele der genannten keine Programmiersprachen im eigentlichen Sinne sind. (Anfangs war Facebook aus programmiertechnischer Sicht nämlich ebenfalls grausam zusammen gepfuscht!)

Allerdings dauert es Jahre (!) um halbwegs gut zu werden und Code schreiben zu können, der nicht mehr "ganz so übel" ist. :)

Mark Zuckerberg hat Facebook als Student entwickelt, und von einem IT-Studenten darf man Kenntnisse in den oben genannten Sprachen durchaus erwarten. Wer ohne einen blassen Schimmer davon ein IT-Studium anfängt, hat vermutlich das falsche Fach gewählt. :)

0
10
@TeeTier

Wow, 55 Sprachen. Echt beeindruckend.

Ich habe mal für mich gezählt, und ich komme erst auf 14 Sprachen. Ich programmiere aber auch erst seit ca. 3 Jahren. Von daher sind hier selbst bis zu 60 Sprachen sehr realistisch, wenn man dran bleibt.

3

Die von Dir gesuchte "eierlegende Wollmilchsau der Programmiersprachen" gibt es leider nicht. In der Tat ist es so, dass man mit verschiedenen sprachen verschiedene Dinge besser oder schlechter umsetzten kann. Also kann man sagen, es gibt Sprachen, die besser geeignet sind für Grafikanwendungen und welche für Steuerungen...

Eine recht einfache und weit verbreitete Programmiersprache ist natürlich der Klassiker BASIC. Diese gibt es in so vielen Dialekten und ist auch relativ leicht im Selbststudium zu erlernen. Allerdings ist das dann besten Falls ein Einstieg um mal ein paar grundlegende Dinge beim Programmieren zu verstehen... Im wie weit BASIC heute außerhalb des Lernsektors noch ein wesentliche Rolle spielt kann ich nicht sagen.

Aktuell ist sicherlich C++ in den verschiedensten Abarten und Dialekten. Hiermit lassen sich Programme für den PC aber auch für einfache Mikrokontroller schreiben. Natürlich musst Du immer den passenden Compiler bzw. die Entwicklungsumgebung für die Zielplattform haben...

Speziell im Bereich des Internets spielen solche Dinge wie HTML, Flash, PHP und Java eine Rolle. Allerdings sind dass eben schon alles Sparchen, die sehr auf die Bedürfnisse im Web zugeschnitten sind - sprich die Darstellung und Funktionen auf Internetseiten betreffen.

Also als erstes würde ich die raten, mal zu überlegen wo Du genau hin willst und was Du vorhast. Wenn es um Web-Seiten geht, solltest Du vielleicht mit einem entsprechenden Editor anfangen und Dich so in die Materie einarbeiten. Anwendungen für Windows oder auch Android sind dann sicher mehr im Bereich der Hochsprachen wie z.B. C++ angesiedelt. Aber auch hierfür gibt es Entwicklungspakete, mit denen man sicherlich einen guten Einstieg findet.

Ich hoffe Dir mit dieser Antwort schon mal einen Hinweis gegeben zu haben, wohin der weg führen kann. Deine Frage ist aber so allgemein gehalten, dass sie eben nicht einfach und knapp zu beantworten wäre.

Wie sollte ich programmieren lernen?

Ich bin ein totaler Anfänger und möchte die Programmierlogik verstehen können und eine Programmiersprache lernen.

Aber wie sollte ich damit anfangen?

Sollte ich zum Beispiel erst mit Snap die Programmierlogik lernen oder sollte ich direkt mit einer richtigen Programmiersprache anfangen?

(Ich würde gerne C++ oder Java lernen)

...zur Frage

Programmiersprache für Mikrocontroller gesucht!

Hallo,

ich interessiere mich zur Zeit sehr fürs Programmieren, vor allem für die Programmierung von Mikrocontrollern und Embedded-Systemen.

Ich bin leider ziemlicher Anfänger und habe lediglich Grundkenntnisse in Java.

Ich wollte nun eine neue Programmiersprache lernen, die eher in das oben genannte Aufgabenfeld passt, da Java hier eher ungeeignet ist und mir im Moment eh nicht zusagt.

Ich hatte überlegt C oder C++ zu lernen.

In welchen anderen Sprachen kann man Mikrocontroller und Embedded-Systeme programmieren ? Welche der Sprache ist am sinnvollsten zu lernen ? Gibt es ein gutes "Anfänger-Set" um in die Controller-Programmierung einzusteigen ?

Vielen Dank für alle (hilfreichen) Antworten :-)

...zur Frage

Betriebssystem Selber Programmieren PC/Smartphone

Liebe Community,

ich möchte ein Betriebssystem Programmieren erstmal für PC oder Smartphone und habe ein Paar Fragen

  1. Welche Programmiersprache wären die besten?

  2. Welche Programme/Tools brauch man dafür?

  3. Wie lange würde es dauern damit fertig zu werden?

  4. Brauch man wirklich einen Bootloader/Bootmenü?

  5. Was wäre leichter, besser und schneller ein PC oder ein Smartphone Betriebssystem zu Programmieren?

  6. womit sollte ich anfangen?

und

  1. Gibt es ein Buch/Website wo man die Programmierer Sprache findet um ein Betriebssystem zu Programmieren (Titel und Verlag/Link der Website)
...zur Frage

Welche Programmiersprache ist für den Einstieg gut?

Ich wollte mit den Programmieren anfangen, weiß nur nicht mit welcher Sprache ich anfangen sollte.

...zur Frage

Welche Programmiersprache lernen als kompletter Anfänger?

Hallo,

möchte mir gerne selber das Programmieren mit Büchern und Übungen beibringen.

Welche Programmiersprache ist da am Einstiegsfreundlichsten? Vor- und Nachteile? Mit was habt ihr begonnen und wie habt ihr es gelernt?

...zur Frage

Beste Programmiersprache um Spiele zu programmieren?

Guten Tag Leute, ich wollte euch, nach eurer Meinung fragen

Welche Programmiersprache, ist meint ihr, am besten um Spiele zu programmieren

...zur Frage

Was möchtest Du wissen?