Welche Programmiersprache als Anfänger?

GamingAddiction

Cadet 3rd Year
Registriert
Nov. 2012
Beiträge
39
Hallo,

gibt zwar viele Internetseiten zu diesem Thema, ich möchte mir aber trotzdem nochmals von Leuten die sich auskennen eine Meinung auf genau meine Frage einholen.

Ich bin von der Auswahl an Programmiersprachen etwas erschlagen worden als ich mich zum ersten Mal damit befasst habe.

Allerdings weiß ich, was ich später mit der Programmiersprache machen möchte:

- erst einmal einfache und kleine, aber funktionierende Anwendungen und Programme für Mac.

- Apps und Spiele entwickeln (wenn ich dann mal soweit bin), speziell mit xCode für Mac und iOS. Basiert diese Sprache auf C/C++/Objektive-C oder bin ich da falsch informiert? Oder ist das eine komplett eigene Programmiersprache?

- und Mikrocontroller/mit Arduino programmieren. Habe auch gehört, dass die Sprache von Arduino auf C/C++ basiert, oder nicht?

Ist dann also C für mich die richtige Sprache? Zu Anfang, und dann mit C++ und Objektive-C weitermachen?

Sollte man diese Sprache erst lernen und dann seine Kenntnisse in xCode/Arduino anwenden? Oder geht das auch andersrum, man beschäftigt sich mit xCode/Arduino und lernt dadurch die Programmiersprachen?

Sorry falls ich hier einige falsche Sachen reingeschrieben habe weil ich falsch informiert bin, aber ihr wisst jetzt ja, was ich später mal machen möchte und könnt mir hoffentlich einen guten Rat geben.

MfG

GamingAddiction
 
Dem pflichte ich bei. Kann Java bzw. C# ausdrücklich empfehlen.
Das sind meiner Meinung nach starke und vor allem schöne Programmiersprachen.

Ups, da hat Marguth seinen Kommentar wieder entfernt.

Generell ist es auch nicht verkehrt, direkt mit C++ anzufangen, gerade auch im Bezug auf Deine späteren Vorhaben. Weil C++ quasi immer noch das A und O in der Softwareprogrammierung darstellt, ist es auf keinen Fall verkehrt, sich darin direkt zu spezialisieren. Alle anderen objektorientierten Sprachen sind - vorsichtig ausgedrückt - Weiterentwicklungen davon. Damit will ich auch nur sagen: Kennst und kannst Du C++, so wirst Du Dich prima in Java und C# usw. einarbeiten können.

Das reine C würde ich nicht mehr empfehlen.
 
Zuletzt bearbeitet:
Erstmal eine Plattform Unabhängige Programmiersprache wie Java.
Eventuell Visual Basic einfach mal reintasten...bei Visual Basic gibt es so ein tolles Game zum reinprogrammieren, nennt sich Antme. Sowas gibt es aber bei Java auch und nennt sich Robocode.

Mit sowas würde ich Anfangen. :-)
 
Ganz klar C. Es gibt kaum eine kompaktere Sprache und die grundlegende Herangehensweise ist halbwegs intuitiv. Das Konzept der Objektorientierung (Java, C++, C#, you-name-it) brauch, so finde ich wenigstens, mehr Zeit.
 
Bei uns wurde Java in der Uni als erste Programmiersprache angeboten, kurze Zeit später habe ich Objective-C benutzt und muss sagen: Es ist deutlich einfacher und komfortabler (Xcode vs. Eclipse). Ich würde stark zu Objective-C tendieren. C# wäre nur etwas wenn du Visual Studio und Windows nutzt.

Objective-C ist ein Aufsatz von C sozusagen, trotzdem ist es etwas komplett anderes da Objective-C wie der Name schon Objektorientiert ist. Aber wenn du mal weisst was das bedeutet dann fällt dir der Umstieg auf Java, C# oder sogar C++ sehr leicht (Umlerndauer wenige Tage).

Mit C würde ich nicht direkt anfangen, aber ja deinen Arduino kannst du in C programmieren. Du kannst auch nativen C Code in deine Xcode Projekte schreiben - bei iOS musst du das manchmal sogar. Z.b. wenn du Physik in deinen Spielen haben willst und eine Physik Library benutzt wie box2d (C++) oder chipmunk (C).

Warum ist Objective-C einfacher als Java? Zum einen weil die Coding Guidelines strenger sind und die Entwickler sie besser befolgen als in Java. Was dass für dich bedeutet? Methoden und Variablen haben einfach zu erkennende Namen. Es ist klar was eine Methode mit den Parametern macht.

Dann kommt noch hinzu das es bei Java wirklich unglaublich viele Bibliotheken (also externe Programme sag ich mal) gibt, die sich unglaublich schnell weiter entwickeln. Für ein Problem gibt es Millionen Lösungen, aber die Hälfte davon ist schon veraltet und funktioniert nicht mehr, oder benötigt von Bibliothek X Version Y - das ist für einen Anfänger schon oft kompliziert. Java an sich ist das nicht, aber wenn du mehr damit machen willst als nur Text auf der Konsole ausgeben dann kann es das schnell werden.

Ich habe 2009 damit begonnen: http://www.amazon.de/Cocoa-Programm...IWI_1_1?s=books&ie=UTF8&qid=1381849458&sr=1-1
Aber das war noch für Xcode 3 - kann sein das bessere Bücher gibt die sich mit Xcode 4 beschäftigen. Die Screenshots da sind sicher veraltet.
Für iOS wird es auch schwierig etwas zu finden da sich einiges getan hat in den letzten Versionen. Gerade iOS 5 hat sehr viel geändert (Stichwort Interface Builder, ViewController).

Ich würde mich mal bei http://www.raywenderlich.com/ umschauen - die haben extreme viele und gute Tutorials (meistens für Spiele unter iOS) - es gibt aber auch ein paar kostenpflichtige Tutorials - ich denke das ist sogar sinnvoller als ein Buch.
 
Zuletzt bearbeitet:
Ohne eine Konkrete Antwort zu geben, möchte Ich davor warnen, dass jeder seine liebste Programmiersprache hat und die natürlich die allerbeste ist.

Eine Freundin bekam einmal ein IPhone von ihrer Mutter geschenkt, nachdem diese im Laden fragte welches ist das beste Handy. Vielleicht verdeutlicht das die Sinnlosigkeit dieser Frage. Das beste für den einen ist mist für den nächsten.

Welches Auto ist das beste für den Fahranfänger? Undsoweiter.

Für einen Anfänger ist nicht das Werkzeug wichtig, sondern zu lernen, was Programmieren bedeutet. Deshalb:

Such dir ein Buch, das das Thema an sich verständlich behandelt und ignoriere erstmal die Sprache. Eine neue Sprache zu lernen ist nicht mehr schwer, wenn man die Grundlagen erst einmal kennt.

Ich mag als Lehrbuch für Einsteiger SICP. Kostenlos zu lesen im Link in meiner Sig. Andere Bücher gibt es zuhauf. Lies, was andere Käufer zu Büchern zu sagen haben und basiere darauf deine Kaufentscheidung.
 
Das sehe ich etwas anders wie asdfman. Es kommt drauf an. Bist du jemand der wirklich Programmierer werden will, also ein Student oder kurz davor? Dann ist sein Ansatz richtig.

Willst du dir selber Programmieren beibringen und dann mal schauen? Dann brauchst du vor allem eines: Motivation. Wie hält man die Motivation? In dem man Spaß bei der Sache hat und schnell Erfolge hat.

Aus Erfahrung kann ich dir sagen das es unglaublich langweilig ist sich mit einem Buch oder Online Tutorial hinzusetzen, 300 Zeilen einzutippen und dann bekommt man ein blaues Fenster welches mit DirectX initialisiert worden ist. Da kommt kein Spaß auf und man ist schnell de-motiviert.

Da sind simple Tutorials mit einem Arduino, oder z.B. einer Game Engine wie Unity3D (für Javascript oder besser C#) viel besser da du da sehr schnell Erfolgserlebnisse hast und somit auch Spaß und Motivation. Dann fällt es dir auch leichter in die Tiefe zu gehen und dir allgemeine Programmiererfahrung anzueignen.

asdfman sagt: Als Fahranfänger gibt es nicht das richtige Auto also baust du es dir selbst und wenn du das geschafft hast darfst du einsteigen.
Ich sage: Als Fahranfänger nimmst du dir ein Auto mit dem zu sofort losfahren kannst und wenn du Spaß hast und das fahren beherrscht dann nimm das Auto auseinander und bau es neu zusammen.

Da du schon geschrieben hast das du Spiele machen willst (das macht auch mehr Spass als Textausgabe Programme) dann nimm dir entweder eine fertige Game Engine (Unity3D = C#, Crytek SDK oder wie das heisst = C++), eine Arduino mit ein paar elektronischen Bauteilen = C oder eine Game Engine wie cocos2d = iOS bzw. XNA = PC/Xbox360 (aber wohl tot jetzt).
 
Ich glaube, du hast mich völlig missverstanden. Ich gebe dir eigentlich sogar weitgehend Recht. Von Auto selbst bauen habe Ich nie gesprochen.

Wenn man durch Übungen in einem Buch gelangweilt ist, ist es das falsche. Deshalb sagte Ich ja, er möge beachten, was andere Leser denken.

Ich stimme auch zu: Als Anfänger ist es sehr wichtig, schnell Erfolgserlebnisse zu haben. Aber die Sprache ist in dem Fall einfach zweitrangig. Wichtig ist, dass derjenige, der das Wissen vermittelt darin kompetent ist. Moderne Sprachen sind meiner Meinung nach für jemanden der einsteigt größtenteils austauschbar.
 
Du kannst auch mal hier vorbei schauen http://www.codecademy.com/de/learn
Die Seite wurde irgendwo in nem anderen Thread mal vorgeschlagen und ich finde sie super. Da werden einem Schritt für Schritt mit einem hohen praktischen Anteil die Grundlagen diverser Sprachen beigebracht. Wenn du Python komplett durchgearbeitet hast bist du schonmal einen großen Schritt weiter. Du kannst natürlich auch PHP oder JS nehmen, wenn dir das besser gefällt. Ich denke für die ersten Schritte ist die Seite perfekt, da man sehr schnell kleine Erfolge erzielt und das ist wie Falc richtig gesagt hat gerade am Anfang sehr wichtig um die Motivation zu behalten.
 
@asdfman: Ok dann habe ich dich falsch verstanden. Ich dachte du meinst er soll erst einmal die ganze Technik und Konzepte lernen, ala so funktioniert ein Computer und das macht der Compiler, das ist ein Pointer etc. Ist zwar alles wichtig um zu verstehen was da abgeht aber eben für den Anfang auch de-motivierend.
 
Um mal ein ganz anderes Paradigma anzusprechen:
Wie wäre es mit Haskell, bzw. Scala
oder gar eine logische Sprache wie Prolog?

Ja, ich weiß, ich lebe fernab der Realität. Aber mal ganz ehrlich, wer sehr mathematisch denkt, der könnte sich sehr schnell in Haskell wiederfinden.

Zu dem oben gestellten Problem/Anforderungen passt es hingegen nicht.

PS: Dieser Beitrag ist hingegen für jene, die sich evtl. überlegen das Programmieren anzufangen.
 
Freezedevil schrieb:
Du kannst auch mal hier vorbei schauen http://www.codecademy.com/de/learn
Die Seite wurde irgendwo in nem anderen Thread mal vorgeschlagen und ich finde sie super. Da werden einem Schritt für Schritt mit einem hohen praktischen Anteil die Grundlagen diverser Sprachen beigebracht. Wenn du Python komplett durchgearbeitet hast bist du schonmal einen großen Schritt weiter. Du kannst natürlich auch PHP oder JS nehmen, wenn dir das besser gefällt. Ich denke für die ersten Schritte ist die Seite perfekt, da man sehr schnell kleine Erfolge erzielt und das ist wie Falc richtig gesagt hat gerade am Anfang sehr wichtig um die Motivation zu behalten.

Also du meinst, z. B. Python hilft mir am Anfang, die Systematik zu verstehen und dann finde ich mich auch in andere Sprachen leichter rein?
 
Also ich bin kein Python Experte, habe noch nichts grösseres damit geschrieben bis auf eine TLS Implementierung aber ob du von Python aus einfacher in andere Sprachen reinkommst wage ich zu bezweifeln da Python ganz andere Programmierparadigmen hat wie Java z.B.

Zum erlernen ist es sicher ganz gut da es auch einen Interpreter gibt (sprich du kannst Zeile für Zeile eintippen und direkt ausführen) und du dich nicht in eine Entwicklungsumgebung (IDE) wie Xcode oder Visual Studio oder Eclipse einarbeiten musst.

Du kannst dir ja mal die Code Beispiele bei Wikipedia anschauen: http://de.wikipedia.org/wiki/Python_(Programmiersprache)
Ansonsten ist CodeAcademy sicher auch eine nette Anlaufstelle aber (zumindest als ich das letzte Mal geschaut habe) ist es wirklich nur für den absoluten Einstieg gedacht und du solltest vielleicht doch ein Buch kaufen. Gibt auch einiges kostenlos wie "Java ist auch eine Insel" von Galileo (wobei das jetzt nicht unbedingt für den absoluten Einsteiger ist aber gut zum Nachlesen von bestimmten Sachen).
 
Wenn man innerhalb der imperativen Programmierung bleibt, ist die Sprache relativ egal. Wirklich gravierende Unterschiede spürt man erst, wenn man mal eine deklarative Sprache wie LISP, Haskell, Prolog,... zum Vergleich heran zieht:

Imperativ: Du erklärst, was genau wann getan werden muss, um das Problem zu lösen.
Deklarativ: Du erklärst das Problem möglichst genau, der Interpreter sucht eine Lösung.

Die Unterschiede zwischen C, PHP, Java, Python,... scheinen groß zu sein, aber am Ende nehmen sie sich alle nichts. Du schreibt dieselben Kontrollstrukturen. Du überlegst dir ähnliche Datenstrukturen. Du kannst dieselben Algorithmen in all diesen imperativen Sprachen umsetzen.

Deshalb: Scheiß drauf, nimm was dir gefällt. Bei der Wahl zwischen C und Objective-C oder C++ würde ich aber zu C++ oder OC tendieren. Lern direkt mit Objektorientierung umzugehen. Gewöhn dich von Anfang an daran, das hilft langfristig.
 
Deshalb: Scheiß drauf, nimm was dir gefällt. Bei der Wahl zwischen C und Objective-C oder C++ würde ich aber zu C++ oder OC tendieren. Lern direkt mit Objektorientierung umzugehen. Gewöhn dich von Anfang an daran, das hilft langfristig.
Dem stimme ich einfach mal zu. Allerdings schadet es auch nicht, sich einmal darüber Gedanken zu machen, wie einige Konstrukte, die C++ gegenüber C bietet, mit C implementiert werden können (zum Beispiel sowas wie virtuelle/abstrakte Methoden) - das hilft dann ggf. beim Verständnis, was diese Sachen eigentlich machen.
 
aphex.matze schrieb:
Ganz klar C. Es gibt kaum eine kompaktere Sprache und die grundlegende Herangehensweise ist halbwegs intuitiv. Das Konzept der Objektorientierung (Java, C++, C#, you-name-it) brauch, so finde ich wenigstens, mehr Zeit.
Wer frisch einsteigt, der sollte unbedingt mit einer OO Sprache anfangen. Man tut sich äußerst schwer (u.U. über Jahre hinweg), halbwegs annehmbaren Code zu produzieren, wenn man mit einer prozeduralen Sprache wie C angefangen hat.
 
Ich würde dir C# mit Visual Studio empfehlen und dich dann erst einmal in die Konsolenanwendungen einarbeiten. Im Internet findest du dazu viele Hilfreichen Anleitungen. Es ist zu beginn wirklich einfach und man kann schnell kleinere Projekte erstellen.
 
Wobei ich ja winForms/Wpf anfangs leichter als konsole fand ;) ist wohl geschmackssache^^
 

Ähnliche Themen

Zurück
Oben