Du bist nicht angemeldet.

Werbeanzeige

1

06.03.2014, 13:52

Auswahl der richtigen Programmiersprache (Anfänger)

Hallo liebe Leute,

ich würde gerne in das hobbymäßige Programmieren einsteigen, bin also Anfänger. Mein Ziel ist es, einen kleinen Simulator zu programmieren. Dabei soll sich ein "Objekt" zufällig und zugweise innerhalb eines Rasters bewegen (in dem angehängten Bild das rote Kreuz). Dabei soll es auf seinem Weg die grünen Kreise aufsammeln. Später möchte ich das ganze dann gerne erweitern (das ganze soll grob gesagt wie ein zufällig agierender Ameisenhaufen auf Nahrungssuche sein, daher vermutlich viele IF-Abfragen). Idealerweise sollte das ganze auch auf einem Grid grafisch darstellbar sein --> ganz einfache Grafik im Sinne von DwarfenFortress, wem das etwas sagt.

Da ich wie gesagt Anfänger bin, müsste ich erstmal eine passende Programmiersprache finden. Ein bekannter hat mir dazu JAVA empfohlen zwecks Einsteigerfreundlichkeit.

Kann mir dazu jemand vielleicht ein paar Grundlegende Hinweise oder Ratschläge geben, in welcher Reihenfolge man am besten startet (Spielfeld, Bewegungsbefehle, Datenbank notwendig?)? Ich wäre da um jede Hilfe dankbar :)

Vielen Dank schonmal

Fivo
»fivo« hat folgendes Bild angehängt:
  • Schema.jpg

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »fivo« (06.03.2014, 15:59)


2

06.03.2014, 15:58

Ein kleiner Zusatz noch:

Ich habe mich schon mit dem "Hamsterprogramm" beschäftigt. So in diese Richtung habe ich mir das vorgestellt. Allerdings schrecken mich noch die vordefinierten Befehle alâ vorwärts() usw. ab, da mir das doch sehr den Spielraum einzuschränken scheint. Ich müsste ja quasi zunächst das "Spielfeld" programmieren und die genannten Befehle selber definieren.

http://www-is.informatik.uni-oldenburg.d…ter/index2.html

Über entsprechende Literatur wäre ich natürlich auch sehr dankbar :)

LG

Fivo

DeKugelschieber

Community-Fossil

Beiträge: 2 664

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

3

06.03.2014, 16:40

Gefährliche Frage hier im Forum :D
Jetzt fangen wieder alle an rumzubashen ODER dir zu so hilfreiches zu sagen wie "kommt drauf an".

Möchtest du allgemein langfristig programmieren oder interessiert dich im Moment konkret dieses Projekt?

Empfehlenswerte Sprachen gibt es eigentlich nicht. Was man dort lernt kann man mit Übung und Erfahrung dann schnell auf andere Probleme und Sprachen übertragen.
Konkret würde ich dir aber empfehlen dir verschiedene anzusehen, und dann zu wählen. Das "Gefühl" sollte dabei auch stimmen, zumindest war es bei mir so.
Hier eine Liste von Sprachen bei denen es quasi egal ist welche du wählst, mit jeder davon wirst du dein Ziel (dein Simulator) erreichen können:

- Java
- Python
- C#
- C++
- JavaScript/HTML5

Die Reihenfolge hat jetzt keine Bedeutung.
Wichtig finde ich nur dass die Sprache modern und verbreitet ist (-> besserer Support). "Anfängerfreundlich" kann man nicht so verallgemeinert sagen.
Wenn du dir diese Sprachen dann jetzt anguckst versuch am besten Code Beispiele zu finden, irgendwas einfaches das man auch so versteht (Zahlenraten, Konsolen TikTakToe, ...).

Übrigens haben wir glaube ich einen Wiki Artikel dazu, such einfach mal.
Und schon mal viel Spaß, lass dich nicht entmutigen und fang einfach mal an :)

4

06.03.2014, 18:19

Ich denke, DeKugelschieber hat hier schon das wichtigste gesagt. Vor allem den folgenden Satz möchte ich nochmal herausheben:
Was man [in einer Sprache] lernt kann man mit Übung und Erfahrung dann schnell auf andere Probleme und Sprachen übertragen.

Ansonsten würde ich Java oder C# empfehlen für den Einstieg. Ich finde, dass insbesondere das wegabstrahierte Memory Management (sowie auch eine sinnvolle Typisierung) diese Sprachen recht einsteigerfreundlich macht. Java wird ja auch gerne mal in Universitäten oder im Schulunterricht zur Einführung in die Programmierung benutzt, aber das mag auch noch andere Gründe haben.
Zudem gibt es für die absoluten Anfänger ja auch noch diese interessanten Trainingsprogramme, wie den bereits erwähnten Java-Hamster oder auch JavaKara, etc. Diese erlauben in sowas wie einer Sandbox-Umgebung die ersten Schritte zu machen und direkt auch Ergebnisse zu sehen, was vielleicht ein Vorteil ist. Aber wesentliches werden sie nicht vermitteln.
C++ finde ich für den Einstieg recht kompliziert. Ist natürlich machbar, aber da kann man, wenn man wenig Ahnung hat, schnell Fehler machen, durch die man sich total verwirrt.

Letztlich hängt es aber, wie von DeKugelschieber schon gesagt, vom persönlichen Geschmack ab. Es ist ja auch ein subjektive Beurteilung, wenn man sagt, Sprache A ist angenehmer oder einfacher als Sprache B. Von daher ist es wohl tatsächlich das Beste, du guckst dir ein paar Sprachen an und entscheidest dich für die, die dir am besten gefällt. Es hält dich ja auch niemand davon ab, einfach mit einer Sprache anzufangen um dann im Laufe der Zeit auf eine andere Sprache zu wechseln, falls du deine Meinung änderst. Das ist nicht das Problem (siehe Zitat).

5

06.03.2014, 19:01

Hallo und danke schonmal für die schnellen Antworten!

Zitat

Möchtest du allgemein langfristig programmieren oder interessiert dich im Moment konkret dieses Projekt?
Ich würde schon gerne an diesem Projekt arbeiten, allerdings habe ich da schon sehr sehr viele Ideen für, daher ist ein längerfristiges Arbeiten nicht ausgeschlossen :) Mir ist auch grundsätzlich Programmieren nicht Fremd (komme aus der Verfahrenstechnik und schreibe dort quasi auch Modelle mit IF/FOR usw), nur bei Grafikoberflächen/Datenbanken und Ähnlichem wird es dann dünn.

Heute Abend werde ich mich dann erstmal mit Java auseinandersetzen. Eine wichtige Frage meinerseits wäre bezogen auf die genannten Datenbanken...
Wenn wir uns bei diesen "Hamsterprogrammen" vorstellen würden, dass jeder spezielle Hamster nur spezielle Nahrung aufnehmen könnte, würde ich das Intuitiv über eine Datenbank machen (ich bin Laie, daher bitte nicht hauen ;) ). Jeder Hamstertyp hat quasi bestimmte Eigenschaften alâ "kann nur rote Nahrung aufnehmen" oder "kann rote und blaue Nahrung aufnehmen". Dazu müsste ich dann vermutlich dem Hamster XY zunächst einen "Typ" zuweisen und dessen Eigenschaften dann über die Datenbank abfragen? Das wäre zumindest das, was ich mir unter einer Datenbank vorstellen würde. Geht sowas unter Java? Und ist das nur etwas für Profis?

Zur Zeit laufen bei mir hohe Motivation und Ratlosigkeit ziemlich parallel :D

Danke!

Fivo

DeKugelschieber

Community-Fossil

Beiträge: 2 664

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

6

06.03.2014, 19:23

Hmm für dein gewünschtes Projekt würde Java ohne weiteres (heißt ohne externe Bibliotheken usw.) vollkommen ausreichen.
Auch die grafische Ausgabe sollte kein Problem sein.

Datenbanken sind mal so salopp gesagt dazu da Daten persistent (= beständig, dauerhaft, langfristiger) zu speichern. Für dein Simulationsprogramm ist das eher etwas "over the top".
Fang dann mit Java einfach mal an, dann siehst du recht bald (je nachdem wie schnell du bist) was sich hier für einen "Hamster" anbieten würde.

Kleiner Vorgeschmack:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Hamster{
    public enum Nahrung{
        ROTE_NAHRUNG,
        BLAUE_NAHRUNG,
        GELBE_NAHRUNG
    }

    private int frisstNahrung;
    
    public Hamster(final Nahrung frisst){
        frisstNahrung = frisst;
    }
    
    public void fressen(final Nahrung essen){
        if(essen == frisstNahrung){
            System.out.println("Das mag ich! :)");
        }
        else{
            System.out.println("Das mag ich nicht :(");
        }
    }
}


Nötige Schritte um mit Java anzufangen:

1. Java SDK installieren
2. gutes Buch (oder vorläufig Webseite) suchen
3. lesen
4. im Texteditor schreiben und testen
5. sobald es etwas fortgeschrittener wird und dir die Sprache gefällt: IDE suchen (z.B. eclipse)
6. loslegen

7

06.03.2014, 19:43

http://www.galileocomputing.de/openbook?GPP=nlch

Dort findest du zum Beispiel 2 Bücher über Java, nur so als Tip.

8

06.03.2014, 20:07

Datenbanken sind ein eigenes Gebiet, genau so wie Grafikoberflächen, das hängt weniger mit der Programmiersprache zusammen !

Es ist die frage was du willst !
Ich würde eine C ähnliche Sprache empfehlen, weil das meiste in Sachen Grafik auf C auf baut ^^
Doch da gibt es immer noch 3 C/C++, C#, Java.
Vom der Syntax sind diese Sprachen verdammt ähnlich, doch C# und Java sind leichter wegen automatischer Speicherverwaltung.
Im Gegensatz zu C/C++ wird man bei C# auch zu seinem Glück gezwungen, den Objektorientierung ist dort Pflicht !
Java ist zu dem eine Interpretierte Sprache, das heißt das dein Programm nicht direkt vom Computer verstanden wird, sondern vorher noch ein Übersetzer braucht, der dem Computer klar macht was er machen soll und zwar live und nicht bei der Erstellung des Programms (Compilieren) ;)
C/C++ ist sehr Hardwearnahes programmieren, deshalb musst du eben auch selbst für das bereitstellen von Speicher sorgen, was es leicht komplexer macht !
Es schützt dich auch weniger vor Fehlern, diese Punkte machen das Programm jedoch auch schneller (was heute kaum erwähnenswert ist) und vor allem sehr flexibel (in C/C++ darf man fast alles machen, Fluch und Segen).

Phyton ist die Sprache die Blender verwendet (ein 3D Editor, der zur gleichen Zeit Spiele-Engine ist (Grafik, Physik ... ist dort ohne viel Programmierung leicht nutzbar)).

Wenn du Spiele für das Web machen willst sind die genannten Sprachen jedoch nicht optimal !

Dann empfiehlt sich
JavaScript/HTML5/php

Grafikoberflächen gibt es eigentlich nur 2 Alternativen :
OpenGL (Plattform unabhängig (Windows, Linux, Mac))
DirectX (Nur für Windows)
oder halt eine Spiele-Engine die aber mit Sicherheit auch auf einem der beiden oder auch beidem auf baut !

Edit :
Das mit dem schnell umsteigeigen können stimmt, doch aus Erfahrung gebe ich zu bedenken, das man sich an das fest krallt was man schon kennt ;)
Daher nimm dir lieber einige Zeit um dir die Richtigen Werkzeuge aus zu suchen, du wirst sie sehr lange nutzen !

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »OOTD« (06.03.2014, 20:32)


ExCluSiv3

Frischling

Beiträge: 61

Wohnort: Düsseldorf

Beruf: Fachinformatiker - Ausbildung

  • Private Nachricht senden

9

06.03.2014, 20:48

Nur um das Gesagte meine Vorredners zu ergänzen, C# ist ebenfalls eine Interpreter Sprache wie Java ;)

10

06.03.2014, 21:48

Ich kann dir Java für den Anfang empfehlen. Ich hab damit angefangen, war damit glücklich und der Umstieg auf z.B. C++ fällt auch nicht unglaublich schwer.
Meine verfügbaren Spiele:


GodMode(Android)


Spiele/Apps in Planung:


PixelClicker(Android)

Werbeanzeige