Wie beginnt man am besten programmieren zu lernen?

Guten Morgen,

als erstes ein paar Worte zu mir:
Ich bin 16 Jahre alt, besuche die 11. Klasse eines Gymnasiums und spiele mit dem Gedanken, nach meinem Abitur Informatik im Bereich der Applikationsentwicklung zu studieren. Da es demnach sicher nicht schadet, schon ein gutes Vorwissen in der Programmierung zu besitzen, fing ich also vor kurzem an, Java zu programmieren, da es bei vielen Forenthreads als die beste Programmiersprache für Anfänger hervorgekommen ist.

Nun zu meinem Problem: Java ist ja eine Sprache, die zur Programmierung für Android geeignet ist. Da ich aber aus einer Apple Familie komme, gibt es bei uns keinerlei Android-Geräte. Eine Sprache für iOS ist glaube ich unter anderem Swift.

Soll ich nun weiter Java lernen oder doch das wenige Wissen, das ich mir angelernt habe, links liegen lassen und mit einer anderen Programmiersprache weiter machen, weil ich sowieso umsteigen werden muss?

Hoffe, dass ihr mir helfen könnt.
LG

Es kommt ein wenig darauf an, was für ein Lerntyp du bist.

Wenn es Dir leicht fällt, Gemeinsamkeiten in verschiedenen Dingen zu erkennen und Analogien in Konzepten zu erkennen ist es ziemlich egal, mit welcher Programmiersprache Du anfängst. Im Prinzip sind nämlich alle gleich: Es gibt Schlüsselwörter und Symbole sowie Regeln, nach denen die Schlüsselwörter mit anderen “freien” Bezeichnern zu ausführbaren Blöcken kombiniert werden. Die Regeln unterscheiden sich etwas je nach dem welchen Programmierparadigma die Sprache folgt (also ob sie prozedural, objektorientiert oder funktional ist).

Wenn Du ehr der Detail-Lerner bist solltest Du Dir tatsächlich Überlegen, welche Programmiersprache für Dich wichtig ist. Dabei würde ich aber weniger Gewicht auf das persönliche Umfeld legen. Informiere Dich besser an dem potenziellen Hochschulen, welche Sprache die bevorzugen.

bye
TT

Danke für deine Antwort :slight_smile:
Ersters trifft eigentlich schon auf mich zu, ich denke aber, dass ich mir Xcode hole und mich ein bisschen mit Objective-C vertraut mache. Dann kann ich mich ja immernoch entscheiden, was mich mehr anspricht^^
Und noch eine kurze Frage, die auch auf Java zutrifft: Sind Tutorials auf Youtube gut zum lernen oder sollte man doch lieber auf Literatur zurückgreifen und was gäbe es da gutes für Java bzw. Objective-C?

LG

Die Frage, welches Tutorial am “besten” für jemanden geeignet ist, hängt noch stärker vom “Lerntyp” bzw. den persönlichen Präferenzen ab. Ich könnte mir z.B. nicht vorstellen, aus einem YouTube-Video etwas zu lernen (das ist wohl eine Generationenfrage) - ich bevorzuge eher Snippets, die man am besten mit Copy+Paste mal schnell ausprobieren kann, und die entweder aufeinander aufbauen, oder jedes für sich einen kleinen, bestimmten, zu vermittelnden Punkt erklären, so dass man etwas hat, womit man ein bißchen rumprobieren kann. Aber das muss jeder für sich selbst rausfinden.

Um nochmal auf die ursprüngliche Frage zu kommen: Auch das hängt, wie TT schon sagte, vom Typ und den Zielen ab. Wenn du das konkrete Ziel hast, eine App für ein Apple-Gerät zu entwickeln, macht es wohl schlicht keinen Sinn, sich ein Java/Android-Tutorial reinzuziehen, und dann frustriert festzustellen, dass “das bei Apple ja alles ganz anders ist” (das ist ja auch das Firmenmotto…?!). Wenn es nur um “Programmieren Lernen” im weiteren Sinn geht, kann man die Proritäten anders setzen. Dann macht man sich vielleicht weniger Gedanken um Syntax-Details oder andere Spezifika, sondern fokussiert sich eber auf das, was sprachübergreifend gleich ist, und schon lange Bestand hat (und auch noch haben wird): Allgemeine Objektorientierung wie SOLID, Prinzipien objektorientierten Designs, Technologisches (Netzwerkprotokolle etwa), und natürlich Mathematik (Ist node.js noch “in”, oder wirkt man wie ein altmodischer Id!ot von 2014, wenn man das verwendet? Egal, Hauptsache man kann damit einen 2300 Jahre alten Algorithmus implementieren :D).

Aber wichtig: Egal, auf welche Sprache oder welches Framework die Entscheidung dann fällt, man muss es machen. Mit dem Gedanken: “Ja, ich habe jetzt theoretisch viel (über Java oder Swift) gelernt, jetzt muss ich das ‘nur noch runterschreiben’” lügt man sich selbst was in die Tasche.

Ich kann da zwar nur für mich sprechen, aber ich habe Programmieren ausschließlich über Fachliteratur (und unter Zuhilfenahme von Foren) gelernt.
Dabei habe ich nach ein, zwei Fehlkäufen von deutschen Übersetzungen von englischsprachigen Fachbüchern entschieden, nur noch Bücher in Originalsprache zu kaufen.

Videotutorials finde ich prinzipiell zum lernen ungeeignet, weil die Lerngeschwindigkeit fest vorgegeben ist und man schlechter mal kurz anhalten kann oder zurückblättern um etwas nachzusehen.

[quote=Apfel3D]und mich ein bisschen mit Objective-C vertraut mache[/quote]AFAIR ist Objective-C ein C+±Ableger und IMHO für Anfänger dann doch nicht so geeignet, weil man sich bei C++ und dessen Derivaten zu oft mit Problemen der Programmiersprache selbst herumschlagen muss. In Kombination mit den schlechten Fehlermeldungen der Compiler ist das nicht gerade zielführend für Lernende. C++ ist tatsächlich die einzige Programmiersprache von der ich direkt abraten würden, und das nicht nur Anfängern…

[quote=Apfel3D;127785]Sind Tutorials auf Youtube gut zum lernen oder sollte man doch lieber auf Literatur zurückgreifen und was gäbe es da gutes für Java[/quote]Ich würde auf jeden Fall die Onlinetutorials von Oracle empfehlen:
The Java™ Tutorials

bye
TT

… es sei denn man hat vor mit Maschinen zu arbeiten. Denn dort ist es zwingend erforderlich sich mit der Hardware direkt auseinanderzusetzen.
In solchen Fällen sind Java, C# und Co komplett fehl am Platz.

Aber ansonsten stimme ich da vollkommen zu. Bei C++ muss man sich mit der Sprache auseinandersetzen, bei Java/C# (zwei identische Sprachen) geht es darum sich mit dem eigentlichen Projekt auseinander zu setzen.

[quote=TMII]… es sei denn man hat vor mit Maschinen zu arbeiten. Denn dort ist es zwingend erforderlich sich mit der Hardware direkt auseinanderzusetzen.
In solchen Fällen sind Java, C# und Co komplett fehl am Platz.[/quote]Da ist man dann aber mit C besser bedient als mit C++.

bye
TT

Ähm, nein? C++ kann C und reines C ist nicht zwingend notwendig, aber es kommt natürlich darauf an inwieweit man in die Hardware einsteigt. Wer Microprozessoren mit Assembler programmieren will :wink:
Aber im Mechatroniker/Maschinenbau/Mechaniker-Bereich ist C++ sehr stark vertreten und das auch zurecht.

*Edit: na gut, wenn man C in einer C++ Umgebung verwendet, verwendet man C und nicht C++ aber zumindest ist es kein Umstand und die Unterschiede sind auch gering.

[quote=TMII]na gut, wenn man C in einer C++ Umgebung verwendet, verwendet man C und nicht C++[/quote] Ja.

[quote=TMII;127811] aber zumindest ist es kein Umstand und die Unterschiede sind auch gering.[/quote]Ja, solange man genau weiß, was man tut.

Leider ist es in einer C+±Umgebung zu leicht C+±Elemente zu nutzen und bei einigen kann es richtig eklig werden, wenn man mischt.
Aber dass ist für den TO wohl noch zu weit weg und daher schon OT…

bye
TT

Also “Java links liegen lassen” würde ich auf keinen Fall. Mit Java kommst du sehr gut voran in der Programmierwelt, auch wenn es keine IOS Sprache ist.

Was ich dir empfehlen würde ist folgendes:

Lern weiter Java und bringe es auf ein Level, mit dem du bei einem zukunftigen Bewerbungsgespräch punkten kannst.
Eine Liste guter Bücher findest du hier Java Books oder hier

Meiner Meinung nach lernt man am Besten wenn man ein gutes Buch durcharbeitet.

Wenn Java einmal sitzt kannst du das gleiche für eine neue Programmiersprache machen usw.

Eine Liste für gute IOS-Bücher findest du hier.

Es gibt leider zu viele die alles einmal angekratzt haben, aber dann am Ende doch nichts können und wenn du sowieso planst in die Applikationsentwicklung zu gehen gehen kann es nicht schaden mehrere Sprachen zu können.
Java ist da durchaus sehr gefragt !!

Ich hoffe deine Frage ist noch aktuell und ich konnte helfen !!

Grüße und viel Erfolg

Apple hat Objective C durch Swift abgelöst, und zwar aus gutem Grund. Swift ist keine revolutionäre, aber eine solide und moderne Sprache. Objective C hat dagegen definitiv keine Zukunft.

Von den Mainstream-Sprachen sind falst alle geeignet, je nach Anwendungsgebiet, persönlichen Interessen und Geschmack. Java, C#, Swift, Python und in der neusten Version (ECMA 6) Javascript kommen alle in Betracht. Systemnahe Programmierung finde ich persönlich nicht so toll, C und C++ haben so ihre Schwierigkeiten, aber es gibt auch Go, Rust, D u.s.w.