Ich halte mich ja für gewöhnlich raus aus solchen Diskussionen, weil das immer sehr subjektiv ist und man im Internet schon 1000 solche Threads findet...
Aber sobald jemand mit Halbwissen anfängt falsche Tatsachen zu verbreiten, klingeln bei mir alle Alarmglocken.
NEIN, NEIN, NEIN!
1. "C++ ist schlecht dokumentiert"
NEIN! C++ ist mit die bestdokumentierteste Sprache, die es gibt. Schon alleine die Tatsache, dass du bei GNU G++ den Parser einsehen kannst dokumentiert die Sprache schon so genau wie nur möglich. Schon einmal versucht bei AutoIt oder PHP herauszufinden welche Syntax es exakt erlaubt und welche nicht? Klar ausprobieren ist möglich, aber ausprobieren deutet immer auf "nicht genau genug dokumentiert". Bei C++ reicht ein Blick in den Standard oder zum Notfall in den Source-Code.
Selbst die Standard-Libraries sind wirklich gut dokumentiert, zwar nicht mit so viel "Blümchenzeugs" wie bei AutoIt/PHP, aber ziemlich genau und auf den Punkt gebracht in wenigen Worten. So wie eine Dokumentation eben aussehen soll...
2. "C# läuft hauptsächlich auf Windows"
NEIN! Ich zitiere dazu einmal Wikipedia:
"Mono (vom griechischen monos für „allein“ oder „einzig“ sowie spanisch für „Affe“) ist eine quelloffene Implementierung von Microsofts .NET Framework, die der Entwicklung von plattformunabhängiger Software dient und auf den Standards der Common Language Infrastructure und der Programmiersprache C# basiert. Als Integrierte Entwicklungsumgebung für Mono-Projekte gibt es MonoDevelop. Vorangetrieben wurde das Mono-Projekt primär durch Mitarbeiter des Softwareunternehmens Novell, später dann durch Xamarin."
Momentan läuft Mono stabil und ohne große Probleme auf: Windows, GNU/Linux, Unix/BSD-Derivate, Mac OS X und Solaris 8
Ich bin zwar auch kein Fan von C#, aber dass es mittlerweile auf etlichen Platformen läuft ist nicht abstreitbar.
3. "falls du noch keine grundlagen beherrschst im programmieren, fang am besten mit C an."
NEIN! C ist mit die komplizierteste low-level Sprache, die heute noch benutzt wird. Kein Mensch schreibt freiwillig C, wenn er die Auswahl hat zwischen C++, Java und C#.
C ansich wird nicht so komplex durch die Befehle, die es gibt (sind ja relativ wenige) sondern dadurch, dass man praktisch alles selbst implementieren muss und das dann meist mit zig Pointern.
Als Beispiel eine vorwärtsverkettete Liste in C
Das ist noch mit einer der einfacheren Implementierungen. Ich mein versteht mich nicht falsch, das kann man schon machen, aber ist halt scheiße...
Dazu im Vergleich eine LinkedList in C++11:
Oder in Java:
Oder in C#:
Wer auf Schmerzen steht, dem kann ich C als Einsteigersprache auch empfehlen, aber für alle normalen Menschen ist C einfach zu unnötig veraltet.
4. "P.S: falls du noch nicht programmieren kannst, vergiss dieses App-programmieren bzw. GUI-basierte programmieren erstmal wieder"
NEIN! Besonders bei Leuten deren Selbstdisziplin nur mittelmäßig ist, ist es wichtig sie aus psychologischer Sicht regelmäßig mit Erfolgserlebnissen zu füttern. Und dafür sind GUI-Sachen perfekt geeignet.
Man kann vielleicht nicht direkt in die GUI-Programmierung springen, aber so nach 2-3 Wochen Grundlagen kann man sich schon einmal daran wagen und basierend darauf lernen...
5. Noch ein paar letzte Worte von mir, die aber immer wieder umstritten sind und nur meine Meinung widerspiegeln:
Wenn man Selbstdisziplinmäßig eher schlecht unterwegs ist, ist der "sicherste" Weg eine Programmiersprache/Skriptsprache zu nehmen, die viel abstrahiert, vereinfacht und zu der es 1000 Beispiele für das leichteste Zeugs im Internet gibt (z.B. PHP, AutoIt).
Daher wäre meine Empfehlung wenn du eher nicht soooo motiviert bist, fang mit PHP oder AutoIt, wenn es dir wichtig ist direkt Apps zu entwickeln, dann schau dir einmal HTML+JS+CSS an (oder eben PHP). Diese Sprachen werden zwar nicht offiziell unterstützt von Android und Co aber es gibt im Internet jede Menge Converter, die aus deinem JS/PHP-Code Java/o.ä. Code machen.
Wenn du denkst du hälst auch "längere Durststrecken" bezogen auf Erfolgserlebnisse aus, dann fang direkt mit Java oder C++ an, auch wenn ich persönlich Java nicht mag, aber für Android ist es halt einfach die "Ursprache", weswegen es da wohl genug Beispiele im Internet gibt.
Aber sobald jemand mit Halbwissen anfängt falsche Tatsachen zu verbreiten, klingeln bei mir alle Alarmglocken.
Wenn ich aufgefordert werden würde deinen Beitrag mit einem Wort zu beschreiben, würde es das Folgende wohl am besten treffen:Quote:
von c++ würde ich abraten, da es relativ schlecht dokumentiert ist und dazu auch relativ schwer zu verstehen.
c# kenne ich selbst nicht und meide es auch, da es nur auf .net-platformen läuft(hauptsächlich windows).
java dürfte für dich ziemlich gut sein, da oracle alles dokumentiert hat, was java und die mitgelieferten bibliotheken angeht, wirst du auch selten fälle finden in denen es an mangelnder dokumentation liegt, dass du etwas nicht verstehst(eher an eigener "dummheit", spreche aus eigener erfahrung).
zudem solltest du bevor du mit java anfängst, oder c++ bzw. c#, erstmal OOP verstehen. objektorientierte Programmierung. es könnte dafür hilfreich sein die grundlagen in C zu lernen, falls du noch keine programmiersprache beherrschst(von da an könnte man auf c++ umsteigen, ich fand die umstellung von c auf java relativ einfach).
TL;DR: falls du noch keine grundlagen beherrschst im programmieren, fang am besten mit C an. Setz dir eine Linux VM auf, installier dir java & Eclipse(Eclipse wurde in java installiert) und schon kannst du mit dem GCC(Linux eigener C-compiler, Windows bietet keinen compiler nativ) anfangen C zu programmieren.
falls du schon weißt, was OOP ist und grundlagen beherrschst, kannst du dich direkt an java oder gar c++ versuchen.
P.S: falls du noch nicht programmieren kannst, vergiss dieses App-programmieren bzw. GUI-basierte programmieren erstmal wieder, je nach anstrengung deinerseits kann es gut 3-6monate dauern bevor du überhaupt konsolen-anwendungen schreiben kannst die etwas umfangreicher sind.
NEIN, NEIN, NEIN!
1. "C++ ist schlecht dokumentiert"
NEIN! C++ ist mit die bestdokumentierteste Sprache, die es gibt. Schon alleine die Tatsache, dass du bei GNU G++ den Parser einsehen kannst dokumentiert die Sprache schon so genau wie nur möglich. Schon einmal versucht bei AutoIt oder PHP herauszufinden welche Syntax es exakt erlaubt und welche nicht? Klar ausprobieren ist möglich, aber ausprobieren deutet immer auf "nicht genau genug dokumentiert". Bei C++ reicht ein Blick in den Standard oder zum Notfall in den Source-Code.
Selbst die Standard-Libraries sind wirklich gut dokumentiert, zwar nicht mit so viel "Blümchenzeugs" wie bei AutoIt/PHP, aber ziemlich genau und auf den Punkt gebracht in wenigen Worten. So wie eine Dokumentation eben aussehen soll...
2. "C# läuft hauptsächlich auf Windows"
NEIN! Ich zitiere dazu einmal Wikipedia:
"Mono (vom griechischen monos für „allein“ oder „einzig“ sowie spanisch für „Affe“) ist eine quelloffene Implementierung von Microsofts .NET Framework, die der Entwicklung von plattformunabhängiger Software dient und auf den Standards der Common Language Infrastructure und der Programmiersprache C# basiert. Als Integrierte Entwicklungsumgebung für Mono-Projekte gibt es MonoDevelop. Vorangetrieben wurde das Mono-Projekt primär durch Mitarbeiter des Softwareunternehmens Novell, später dann durch Xamarin."
Momentan läuft Mono stabil und ohne große Probleme auf: Windows, GNU/Linux, Unix/BSD-Derivate, Mac OS X und Solaris 8
Ich bin zwar auch kein Fan von C#, aber dass es mittlerweile auf etlichen Platformen läuft ist nicht abstreitbar.
3. "falls du noch keine grundlagen beherrschst im programmieren, fang am besten mit C an."
NEIN! C ist mit die komplizierteste low-level Sprache, die heute noch benutzt wird. Kein Mensch schreibt freiwillig C, wenn er die Auswahl hat zwischen C++, Java und C#.
C ansich wird nicht so komplex durch die Befehle, die es gibt (sind ja relativ wenige) sondern dadurch, dass man praktisch alles selbst implementieren muss und das dann meist mit zig Pointern.
Als Beispiel eine vorwärtsverkettete Liste in C
Das ist noch mit einer der einfacheren Implementierungen. Ich mein versteht mich nicht falsch, das kann man schon machen, aber ist halt scheiße...
Dazu im Vergleich eine LinkedList in C++11:
Code:
std::forward_list<int> list;
Code:
LinkedList list = new LinkedList();
Code:
LinkedList<int> list = new LinkedList<int>();
4. "P.S: falls du noch nicht programmieren kannst, vergiss dieses App-programmieren bzw. GUI-basierte programmieren erstmal wieder"
NEIN! Besonders bei Leuten deren Selbstdisziplin nur mittelmäßig ist, ist es wichtig sie aus psychologischer Sicht regelmäßig mit Erfolgserlebnissen zu füttern. Und dafür sind GUI-Sachen perfekt geeignet.
Man kann vielleicht nicht direkt in die GUI-Programmierung springen, aber so nach 2-3 Wochen Grundlagen kann man sich schon einmal daran wagen und basierend darauf lernen...
5. Noch ein paar letzte Worte von mir, die aber immer wieder umstritten sind und nur meine Meinung widerspiegeln:
Wenn man Selbstdisziplinmäßig eher schlecht unterwegs ist, ist der "sicherste" Weg eine Programmiersprache/Skriptsprache zu nehmen, die viel abstrahiert, vereinfacht und zu der es 1000 Beispiele für das leichteste Zeugs im Internet gibt (z.B. PHP, AutoIt).
Daher wäre meine Empfehlung wenn du eher nicht soooo motiviert bist, fang mit PHP oder AutoIt, wenn es dir wichtig ist direkt Apps zu entwickeln, dann schau dir einmal HTML+JS+CSS an (oder eben PHP). Diese Sprachen werden zwar nicht offiziell unterstützt von Android und Co aber es gibt im Internet jede Menge Converter, die aus deinem JS/PHP-Code Java/o.ä. Code machen.
Wenn du denkst du hälst auch "längere Durststrecken" bezogen auf Erfolgserlebnisse aus, dann fang direkt mit Java oder C++ an, auch wenn ich persönlich Java nicht mag, aber für Android ist es halt einfach die "Ursprache", weswegen es da wohl genug Beispiele im Internet gibt.