Ich hab mich extra ein wenig aus dem Thema hier mal rausgehalten, weil ich persönlich mal sehen wollte wie andere das bewerten und weil ich selbst keine Empfehlung zu C# oder Java direkt geben kann, noch kann ich in mühseliger Kleinstarbeit sagen, warum Java Java ist und weil ich selbst in einige Sachen programmieren kann, wenn aber auch nicht als Profi in irgendeiner Sprache zu finden bin.
Grundsätzlich sollte man vorher überlegen:
1) Was... will ich machen?
und
2) Wo.... (auf welcher Plattform) soll der Code am Ende laufen?
Will man, wie du jetzt, Android Apps schreiben, oder doch das iPhone (Mobile) oder Windows/Linux/macOS (Desktop Apps) oder doch eher für das Web programmieren (HTML, JS, CSS, PHP, Angular, Backbone, ......... (Frameworks et cetera), Ruby on Rails, und und weiteres), oder will ich Hardware(treiber) programmieren oder mein eigene Programmiersprache entwickeln oder gar nen eigenes Betriebssystem?
Ich glaube die Frage, was ist "performanter" oder "stabiler" oder "sicherer" oder "erweiterbarer", vergleicht man ja eher später.
Meiner Meinung nach hat Brother John nen guten Punkt aufgegriffen:
Wenn du noch gar keine Ahnung hast, beginne mit einer "traditionellen" Programmiersprache, die schon länger entwickelt wurde bzw. am Markt ist und auch eine Community und Foren hat - "Hipstersprachen" die gerade toll aussehen oder gerade "gehyped" werden, aber "Work in Progress" sind und sich von heute auf morgen evtl. ändern, sollte man Reifen lassen.
Damit meine ich nicht, man kann sich keine neuen Sprachen ansehen, aber da wird vermutlich die User-Base kleiner sein, weniger Tutorials für geben oder die veralten schnell weil sich etwas verändert womit keiner rechnet.... also sehr "flukativ" oder "instabil".
Was man noch sagen kann, grundsätzlich ist jede Sprache geeignet die gut dokumentiert ist. Lesen, lesen, lesen, ne Idee haben/bekommen, ausprobieren und lesen. Das ist das wichtigste.
Man kann sich jetzt über Syntax streiten oder ob es sinnvoll ist ein Zeilenende mit ";" oder "!" oder "#" zu beenden, oder gar nicht.
Oder ob eine Sprache interpretiert ist oder kompiliert oder es mehr oder weniger Entwicklungsumgebungen oder Tools gibt. (Fürs erste Lernen ist das relativ uninteressant, Grundlagen!).
Grundlegend sollte jede Sprache gewisse Datenstrukturen mitbringen und erst mal ist es egal ob du einer Zahl den Wert -1 oder 1 Milliarde siebenhundertvierzehn mit auf den Weg gibst oder ob ein Wert eine Zahl gerade ist und später ein Text oder ein Zeichen...., manche Sprachen machen da keinen Unterschied und das ist vielleicht auch ganz gut so, um sich nicht von solchen Details ablenken zu lassen, wenn man wirklich nicht Bits und Bytes auseinanderhalten kann (soll keine Unterstellung sein
). Jedenfalls, langer Satz, Grundlagen/Konzepte jeglicher Programmiersprache
sind wichtiger.
Wichtig sind Kontrollstrukturen kennen zu lernen...
Logische Abfragen (if, else, elseif), switch Statement, Schleifen (for, while, do loop until, do until.....), Variablen (evtl. mit/ohne Datentypen), Grundrechnen, und je nach Sprache auch Datenstrukturen/Container (je nach Sprache) - aber zumindest so was wie ein "Array" sollte schon da sein.... da man auch andere Konzepte mit letzterem beschreibt die Grundlegend sind (finde ich, ohne das studiert zu haben!
)
Es gibt vermutlich noch viel mehr, aber das sind grundlegende Sachen ohne die es nicht geht und was man ständig braucht. Dazu wird es auch gute Videos geben - aber Bücher müssen auch nicht schlecht sein. Ich bevorzugte lange Zeit etwas gedrucktes, fand ich immer einfacher zu lesen als am Bildschirm und auch zum lernen/nachschlagen von etwas.
Du könntest auch heutzutage noch mit "Basic" anfangen, rein theoretisch.
Einschlägige Lektüre gibt es wohl überall einiges, zu vielem.
Und neben "Lesen, lesen" und immer Lesen und auch schreiben, schreiben(!) + anwenden.
Was ich immer interessant fand, wenn man sich eine Sprache ausgesucht hat und es "CodeGolf"-Seiten gibt die gewisse Aufgaben in den Raum stellen, die es zu lösen gibt und an denen man sein Wissen evtl. testen kann (wobei das eher nach (noch) besserem, weniger ist mehr, Code-Stil geht), am besten noch wenn es Lösungen gibt dazu (je nach Plattform) - aber es geht ja nur um "Aufgaben" und "Learning by doing" - oder eben das sollte auch ein gutes Buch haben, Aufgaben und evtl. auch mindestens eine Beispiellösung wie man es machen könnte, zumindest im ideal, finde ich.
Das nur als Tip, falls du gleich in den Buchhandel rennst und dir das erstbeste Buch schnappst.
Und bevor man sich ein tolles Ebook/Videoreihe kauft, sollte man danach im Internet suchen und sich Rezensionen und oder Kommentare/Meinungen antun, nicht das man sich gleich von Anfang an schlechten Code Stil aneignet, weil ein Autor/Quelle "zu alte" oder "nicht die besten" Informationen rüberbringt. Wenn man online bestellt geht das natürlich auch für aktuelle gebundene Titel ebenfalls.
Ich würde dir aber empfehlen, kauf dir ein gebundenes Buch, du wirst damit evtl. etwas mehr Spaß haben und schau auch in Musterkapiteln, wenn du online kaufst, so fern vorhanden, ob Aufgaben dort enthalten sind, würde ich zumindest empfehlen. Mache (guten) Bücher bieten so was.
So, das wars eigentlich auch, mehr Hinweise kann ich auf die schnelle nicht geben bzw. ohne in einen Flame-War der Sprache
zu geraten.