Programmieren für nen Anfänger

Scream275

Cadet 4th Year
Registriert
März 2007
Beiträge
74
Hi
erstmal vorweg: sry das ich das thema sicher schon zum 1000 mal aufgreife aber ich find einfach mal nichts was zu "meiner" situation passt...

also: Ich bin 11 klässler und würde gerne mal richtig programmieren lernen. Das heißt soviel wie: Ich würde gerne mal kleinere programme schreiben, welche unter windows laufen, oder überhaupt den code anderer programme verstehen. Wir hatten zwar schon in der Schule free Pascal aber wie man überall liest bringts die sprache ja nicht...
Ich hab dann mal versucht mit Java über ein pat tuts anzufangen, aber als ich mich dann mit begriffen wie carbage collecter, compiler oder so konfrontiert sah(waren nicht nur die zwei) konnt ich gleich wieder aufhören....(und nein die wurden nicht erklärt bzw. so das sie kein anfänger versteht)
Jetzt wollt ich mal fragen ob es ein tut für wirkl. anfänger gibt, in denen praktisch beim urschleim angefangen wird und die nicht vorraussetzten das man begriffe kennt....(in meiner schule wird info sehr vernachlässigt).

Und dann noch die hauptfrage: welche sprache sollte ich eigentlich lernen um das Ziel zu erreichen?

tausend dank für antworten!
(achso: rechtschreibung is nich so mein ding..)
 
Tja, alte Bücher sind eben doch besser als die ganzen "Tuts" ausm Internet. Falls du dich noch für Java interessiert, auf http://javabuch.de/ gibt es die Online-Version von einem sehr guten Java-Buch.

>> welche sprache sollte ich eigentlich lernen um das Ziel zu erreichen?

Nicht schon wieder -> SuFu
 
Free Pascal ist keine Sprache, Pascal ist eine Sprache, Free Pascal ist ein Compiler, und warum Pascal nichts taugen sollte ist mir auch etwas unklar, denn das wichtige ist nicht die Wahl der Sprache, sondern das Lernen des Programmierens. Mit welcher Sprache man das dann macht, ist sekundär.

Scream275 schrieb:
(achso: rechtschreibung is nich so mein ding..)
Dann ist Programmieren vielleicht auch nicht so dein Ding...
 
C++ von A bis Z kann ich dir empfehlen, wenn du C++ lernen willst. Wenn du auf gebrabbel stehst dann von Video to Brain Jetzt lerne ich C++ (isn Video deshalb "video 2 brain" und nicht " text[Buch] to brain")
 
also wenn du mit dem Programmieren gerade erst anfängst würde ich dir die sprache Python empfehlen.

Sie ist leicht zu lernen, übersichtlich und mächtig :king:
Die Befehle ähneln sich in allen Programiersprachen. Es ist daher nicht allzuschwer später noch umzulernen.

easy tuts gibt bei google allerlei (wenn du Englisch kannst)
http://www.daniweb.com/forums/thread27792.html
 
Iceman21 schrieb:
Sie ist leicht zu lernen, übersichtlich und mächtig[/url]

ganz ehrlich? pascal ist übersichtlicher und für anfänger wohl die sprache überhaupt. ich kenne persönlich viele die zuerst mit pascal/delphi angefangen haben und dann auf andere sprache "übergelaufen" sind.

was wäre für einen blutigen anfänger einfacher zu verstehen (rein von der übersicht her, egal was man damit machen würde):

Code:
#An example of a class
class Shape:
    def __init__(self,x,y):
        self.x = x
        self.y = y
    description = "This shape has not been described yet"
    author = "Nobody has claimed to make this shape yet"
    def area(self):
        return self.x * self.y
    def perimeter(self):
        return 2 * self.x + 2 * self.y
    def describe(self,text):
        self.description = text
    def authorName(self,text):
        self.author = text
    def scaleSize(self,scale):
        self.x = self.x * scale
    self.y = self.y * scale

Code:
  PROGRAM properties(OUTPUT);

  TYPE obj = CLASS
               PRIVATE
                 FUNCTION adder : INTEGER;
                 PROCEDURE z_set(z0: INTEGER);
               PUBLIC
                 x, y : INTEGER;
                 PROPERTY z : INTEGER READ adder WRITE z_set;
                 CONSTRUCTOR init(x0, y0: INTEGER);
             END;

  CONSTRUCTOR obj.init(x0, y0: INTEGER);
  BEGIN
    x := x0; y := y0;
  END;

  FUNCTION obj.adder : INTEGER;
  BEGIN
    adder := x + y;
  END;

  PROCEDURE obj.z_set(z0: INTEGER);
  BEGIN
    x := x + z0;  y := y + z0;
  END;

  VAR p : obj;

  BEGIN
    p := obj.init(1,2);
    WITH p DO BEGIN
      Writeln(x, ' ', y, ' ', z);
      z := 2;
      Writeln(x, ' ', y, ' ', z);
      z := z + 2;
      Writeln(x, ' ', y, ' ', z);
    END;
  END.
 
Ich habe auch Python in der Schule gelernt und glaube nicht, dass es zum Einsteigen so optimal ist. Was man auf jeden Fall versteht sind Verzweigungen, Schleifen und OOP. Was aber fehlt sind Datentypen und Hintergrundwissen _wie_ etwas funktioniert, weil Python sehr viel im Hintergrund allein macht.
War zumindest mein subjektiver Eindruck, als ich dann zu Java übergegangen bin. Ich finde Java schon sehr passend zum Einsteigen und auch zeitgemäßer als Pascal.
Der klare Vorteil an Python ist wohl, dass man sich einen sauberen (optischen) Stil angewöhnt, weil in Python jede Einrückung zählt :)
 
erstmal danke für die ganzen antworten(auch wenn mir nur 3 was gebracht haben^^)
ich denk mal ich les mal das javabuch an und seh mal ob das verständlich erklärt ist... wenn ja dann is mein problem schonmal gelöst.... sobald ich das dann kann dürfte ein umstieg(auf c# oder so) ja nichtmehr DAS große problem darstellen...

also: danke
ps: falls nochwer ein gutes(einfaches) tut kennt möge er es posten
 
claW3581 schrieb:
...was wäre für einen blutigen anfänger einfacher zu verstehen?

Beides garnicht. Einem Anfänger sagt, sofern er sich nicht schon an eine der beiden Sprachen rangesetzt hat, beides genau gleich wenig. Außerdem hilft einem eine ansprechende Syntax nicht automatisch beim Verständnis von Programmiertheorie.
Ein Beispiel(fiktiv):

Angenommen, der Code
Code:
Nachrichtenfenster Ausgabe ist "123"
gibt in einer imaginären Sprache eine Messagebox aus. Das mag schön und gut sein, solang der Anwender immer einen konstanten Text ausgeben will.

Hätte man jetzt z.B.
Code:
{
MessageBox(hWnd, "Text", "Titel", MB_OK)
}
Dann wäre das für den Lernenden sicherlich ersteinmal schwerer zu verstehen. Aber es ist keineswegs unbewältbar, auch ohne irgendwelche Vorkenntnisse (Lernmittel vorausgesetzt) Nachdem er verstanden hat, dass das ganze eine Funktion ist, das in den Klammern Funktionsparameter usw., dann erschließt sich das ganze >logisch<, man kann etwas verändern, was über das Vorgefertigte hinaus geht. Und das wichtigste, man lernt, wie Programme tatsächlich aufgebaut sind, warum und wie sie funktionieren so wie sie funktionieren.
Glaubst du, jemand der mit VB seine Fenster erstellt, lernt daraus, dass Windows ein Nachrichtenbasiertes System ist? Das zu wissen ist aber elementar wenn man irgendetwas programmieren will, was über den Baukasten-Tellerrand rausgeht.

Im übrigen finde ich eine Klasse in C++ weitaus übersichtlicher.
Code:
class cKlasse
{
private:[INDENT]int Zahl;
char Byte;
bool JaNein;
float Fliesskomma;

[/INDENT]public:[INDENT]void Funktion1();
void Funktion2();
[/INDENT]}

Klasse NeueKlassenInstanz;

NeueKlassenInstanz.Funktion1();
 
Zuletzt bearbeitet:
claW3581 schrieb:
ganz ehrlich? pascal ist übersichtlicher und für anfänger wohl die sprache überhaupt. ich kenne persönlich viele die zuerst mit pascal/delphi angefangen haben und dann auf andere sprache "übergelaufen" sind.

was wäre für einen blutigen anfänger einfacher zu verstehen (rein von der übersicht her, egal was man damit machen würde):
Ist die Frage ernst gemeint? Ich finde das Python-Beispiel wirklich sehr viel übersichtlicher als das Pascal-Beispiel(und hättest du zwischen den Funktionen noch Zeilenumbrüche gemacht, wäre es nochmal wesentlich übersichtlicher).

Ich zähle in deinem Pascal-Beispiel allein 13 verschiedene Schlüsselwörter. Python käme da mit 5 aus(__init__ und self mal mitgezählt). Dazu kommen noch ():;+= etc. Dies muss man alles erstmal lernen und verstehen bevor einem das Codestück irgendwas sagt. Zusätzlich muss man lernen an den ganzen Schlüsselwörtern vorbeizusehen, die überdecken in deinem Beispiel doch recht dominant das eigentliche Programm(noch verstärkt durch die Großschrift).

Und da ist der Einstieg bei Python imo wesentlich leichter. Wer aus dem Matheunterricht Funktionen und Variablen kennt der kommt damit schon recht weit. Mit Datentypen etc. muss man sich erstmal noch nicht so rumschlagen(zumal in Python 3 dann endlich die Integer-Division als Fallstrick wegfällt).
 
Zuletzt bearbeitet:
schlüsselwörter hin, schlüsselwörter her, worauf ich eingehen wollte war die strukturierung. wo fängt z.b. eine funktionsdefinition in python an und wo hört sie auf? in delphi sieht man es schön mit begin und end und in python siehst du nur def und einen doppeltpunkt. wo hört es also nun auf? bei der einrückung die dem def gleichgesetzt ist - oder wo? ich programmiere nun schon jahre lang und ich muss wirklich sagen, dass man auf den 1. blick keine _wirkliche_ struktur zu gesicht bekommt.

z.t. sieht es so aus wie wenn man das 1. mal mit regulären ausdrücken arbeitet (natürlich nicht ganz so schlimm, aber ein paar kleine sachen sind drin). ;)

@ spartaner:

Code:
Nachrichtenfenster Ausgabe ist "123"

finde ich persönlich nicht wirklich "schön", da es meiner ansicht nach irgendwie nix halbes und nix ganzes ist. zumal in der mathematik funktionen (z.b. das klassische f(x)) so auch gar nicht ausgedrückt werden.

Code:
MessageBox(hWnd, "Text", "Titel", MB_OK)

hier hingegen siehst du (wenn du die funktion gefunden hast), was du alles an parametern/veränderungen machen kannst. z.b. das handle auf ein anderes setzen, den text ändern, titel und die art, welche die messagebox ausdrückt. wo sieht man das oben? dort musst du eben wieder die eigentliche funktion raussuchen und nicht auf das kurze ausweichen. zumal man für die funktion ja auch eine neue schreiben kann, welche dann z.b. nur den text enthält und ShowMessage() oder so heißt. für einen nicht-anfänger mag das ja gut und gern komfortabel und schön sein. aber für einen wirklichen anfänger sieht er dort erst mal überhaupt nicht durch.



meine meinung dazu: zum eigentlichen lernen (wenn man jetzt ein anfänger ist versteht sich) der "funktionsweise" einer programmiersprache, finde ich ist diese sprache durchaus mit vielen eigenheiten verbunden. ich kenne zumindest keine andere wo man irgend solche analogien findet (z.b. einrückung und die funktionsdefinitionen mit : beginnen).

ps: ich habe noch nie in python etwas gemacht, die sprache schreckt mich irgendwie ab. ;) setze lieber auf das klassische c++ und php.
 
claW3581 schrieb:
schlüsselwörter hin, schlüsselwörter her, worauf ich eingehen wollte war die strukturierung. wo fängt z.b. eine funktionsdefinition in python an und wo hört sie auf? in delphi sieht man es schön mit begin und end und in python siehst du nur def und einen doppeltpunkt. wo hört es also nun auf? bei der einrückung die dem def gleichgesetzt ist - oder wo? ich programmiere nun schon jahre lang und ich muss wirklich sagen, dass man auf den 1. blick keine _wirkliche_ struktur zu gesicht bekommt.
Na die Funktionsdefinition fängt bei def an und hört bei der ersten nicht-Leerzeile auf der gleichen Höhe von def wieder auf. Es ist genau so, wie man überall sonst auch einrücken würde, damit es besser lesbar ist. Ich finde das wesentlich einfacher und eingängiger als immer zu gucken zu welchen begin jetzt gerade das end gehört. Und zig jeweils um ein Level weniger eingerückte ENDs hintereinander sind auch nicht gerade schön anzusehen. Genau das hat mich übrigens dazu getrieben mir mal Python anzugucken.

Und zu dem Doppelpunt an dem du dich gerade so hochziehst, den hast du da überall.
Code:
if … :
for … in … :
while … : 
usw.
Da gibts eigentlich nichts verwirrendes. Sieht für mich alles relativ ähnlich aus und ist auch nicht so schwer zu merken.
ps: ich habe noch nie in python etwas gemacht, die sprache schreckt mich irgendwie ab. ;) setze lieber auf das klassische c++ und php.
Versuchs ruhig mal. Ich hatte bei Python auch zuerst meine Vorbehalte(vor allem wegen der Einrückung). Im Nachhinein frage ich mich, warum das nicht bei allen Sprachen so ist, da man da meist sowieso einrückt.
Ich habe für mich festgestellt, das Python einfach wesentlich weniger frustrierend als C, Java etc. ist.

@Topic: Ganz nette Einführung: http://ada.rg16.asn-wien.ac.at/~python/how2think/index.htm
 
Zuletzt bearbeitet:
werds mir mal anschauen, bin mir aber noch nicht sicher ob das so mein fall ist (mit einrückungen bin ich teils ziemlich eigen ;)).

python verwendet ja einen interpreter, richtig? gibts da eine möglichkeit diesen in den apache einzubinden? wäre nämlich ein wenig komfortabler die sachen wie in php/perl zu öffnen, anstatt immer den interpreter von hand zu öffnen.
 
Wenn du relativ „schnell“ etwas „sehen“ möchtest würde ich dir eine Websprache empfehlen. Diese sind sehr flexibel Einsetzbar und gewinnen immer mehr an Bedeutung. Bevor du Allerdings mit PHP beginnst, solltest du dich mit den Grundlagen von HTML sowie CSS auseinander setzen, da du auf diese Dinge immer wieder treffen wirst.

Auch wenn du nicht unbedingt zwingend eine Website oder so bauen möchtest, ist dies dennoch ein wichtiger Baustein.

Dann kann ich dir durchaus ein Tutorial empfehlen, schau dir mal folgendes an:
http://tut.php-quake.net/

Vorab solltest du dir natürlich darüber im Klaren sein, was du überhaupt einmal programmieren möchtest bevor man sich Gedanken über eine Sprache macht.
 
claW3581 schrieb:
python verwendet ja einen interpreter, richtig? gibts da eine möglichkeit diesen in den apache einzubinden? wäre nämlich ein wenig komfortabler die sachen wie in php/perl zu öffnen, anstatt immer den interpreter von hand zu öffnen.
Ja mehrere Möglichenkeiten, über cgi/fastcgi/mod_scgi, mod_python(ist wohl weniger empfehlenswert) oder mod_wsgi. mod_python ist wohl das was am ehesten an PHP rankommt ist aber angeblich ein bisschen problematisch.
 
Fürs Web: XHTML, CSS, PHP, Javascript
Für Programme: C++, Pascal, Java
 
Zurück
Oben