Welche Programmiersprache für Anfänger?

Also wir haben damals (vor 6 Jahren) in der Schule mit Qbasic begonnen. Damit konnte man schon "gemütlich" programmieren, und kleinere Grafische Dinge gingen auch recht schnell ;)

Visual Basic ist für GUI auch für den Anfang sehr zu empfehlen, ich hatte zumindest eine schnelle Erfolgssituation. Jetzt lerne ich C++ und nachdem man ein paar "einfachere" Sprachen beherrscht, kommen auch die etwas "Komplexeren" leichter zum Verstehen. Natürlich ist der Zeitaufwand auf diese Weise sehr hoch, aber der Weg ist nicht so "steil".

Du kannst auch direkt mit C++, oder Java o.Ä. beginnen, hängt auch davon ab, wie ausdauernd du bist ;)

LG

P.S.: Qbasic FTW! :evillol:
 
ich habe schon einige sprachen jedes bereiches (von amigabasic über pascal,vb,c++,SML,java,...) gelernt und LIEBE python.

kein scheiss, damit würde ich alles machen.
und wenn eine funktion mal zu langsam sein sollte wird sie einfach in C implementiert...weil's geht!
 
ice-breaker schrieb:
dafür ist die JavaVM aber da, verschiedene Betriebssysteme unter einem einheitlichen Modell zu vereinen.
Kannst du definitiv ausschließen, dass der Fehler nicht in der Programmierung lag? fehlende Synchronisierung, Java Memory Modell nicht beachtet, Dirty Reads.

Ich weiß, dass die JVM dafür da ist.
Und ja, ich kann Fehler ausschließen. Das Programm wurde ausgiebig testet und mit mehreren Dozenten besprochen. Außerdem war ich nicht der einzige, der dieses Problem hatte, da alle anderen Kommilitonen, die das Programm auf Windows und Linux getestet haben (andere haben es nicht getan, da eh nur unter Linux abgegeben wurde), ebenfalls das selbe Phänomen hatten.
Die Dozenten konnten sich das Phänomen auch nicht so recht erklären.
 
badday schrieb:
Irgendwann werde ich dein Buch noch lesen ;) , allerdings haben mich bisher die eher durchschnittlichen Bewertungen bei Amazon etwas abgeschreckt^^ (Solltest du dein Exemplar verschenken oder günstig abgeben wollen: Ich hätte Interesse ;) ).

Das Buch gibt es online. Siehe Link in meiner Sig. Und wo bekomme ich den C-Standard her? Ich finde den nur immer gegen teuer Geld, das ich nicht habe bzw ausgeben will.

€: Sogar die Vorlesung gibt es kostenlos als Aufzeichnung:
http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

Mal in meine Sig aufnehmen :F
 
Zuletzt bearbeitet:
asdfman schrieb:
Lüg doch nicht :(

Code:
#include <stdio.h>

int main(void) {
    char *c = "Hallo!";
    while(*c++ != 0) printf("%s\n", c);
    return 0;
}

"!=" ist doch keine Zuweisung
 
Es ging darum, dass c++ eine rvalue ist und deshalb nur rechts von einem Operator stehen kann.
Ich kann dir aber gern auch was mit *c++ = asdf herfrickeln. Darauf kommt es aber nicht an.

€: Da. Jetzt zufrieden?
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
    char *c = malloc(7);
    strcpy(c, "Hallo!");
    *c++ = 0;
    free(c - 1);
    return 0;
}
 
Zuletzt bearbeitet:
asdfman schrieb:
Es ging darum, dass c++ eine rvalue ist und deshalb nur rechts von einem Operator stehen kann.
Ich kann dir aber gern auch was mit *c++ = asdf herfrickeln. Darauf kommt es aber nicht an.

€: Da. Jetzt zufrieden?
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
    char *c = malloc(7);
    strcpy(c, "Hallo!");
    *c++ = 0;
    free(c - 1);
    return 0;
}

Nein, bin ich nicht :D Die Zuweisung erfolgt ja nicht auf das c++ sondern auf den Dereferenzierungsoperator *. Das c++ gibt hier ja nur die Adresse an. Genauso könntest du c[0] schreiben.
 
Was ich meine kann man vielleicht durch den Unterschied in der Bedeutung von zwei Sätzen zeigen:
- Sag deinen Namen!
- Sag "Deinen Namen"!

Im ersten Fall würde man vielleicht mit Hansi antworten, im zweiten Fall mit den Worten in Anführungszeichen.
Der Mensch behauptete, die Zeichenkette "c++" könne nicht links von einem Zuweisungsoperator stehen.
Und das ist nicht wahr.
 
Ich behaupte nur, es handelt sich nicht um ein lvalue und das c++=c+1 nicht funktionieren wird.
Abgesehen davon ist diese Diskussion ohnehin kaum zielführend, daher werde ich mich nicht mehr daran beteiligen.

@topic: Es ist sicher auch nicht verkehrt, wenn du jemanden kennst, der die betreffende Sprache kannst, damit du bei Bedarf Fragen stellen kannst (alternativ nat. auch im Forum).

Gruß,

badday
 
Hey. Ignorier mich nicht :(
Ich wollte doch wissen, wo ich den C-Standard herbekomme :(
 
asdfman schrieb:
Ich wollte doch wissen, wo ich den C-Standard herbekomme :(

Wenn's um C99 geht:

1. Bei der ISO kaufen
http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=29237

2. Gebunden kaufen (Leider nur mit TC1)
http://www.amazon.de/Standard-Incorporating-Technical-Corrigendum/dp/0470845732

3. Wenn es nicht die genormte Fassung sein muss - Final Draft für TC3 nehmen:
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf

Wenn's C(89) sein soll, analog nach ISO/IEC 9899:1989 googeln.
 
Also wir haben in der Schule auch als erstes mit Java und den Vorversionen davon angefangen, nacher hab ich dann weiter mit Java gemacht und mittlerweile klappt das eig. auch ganz gut...

mfg
 
Angefangen hab ich mit C und Cobol, letzteres kann ich aber nicht wirklich empfehlen :P
Danach dann Java und VB.NET.
Letztenendes C++.

Und im Studium wieder C++.

Am schönsten zum Programmieren fand ich immer noch Java.
Aber kommt halt immer noch auf das Anwendungsgebiet an.


Die Diskussion über c++ = c+1 ist müßig, es fehlt das ; um das Statement abzuschließen also ist es keins und die Aussage kommt in etwa dann hin.

wenn ich schreibe:
Code:
do until kotzen{
 sauf bier;
}

weiß jeder was gemeint ist, is aber weder syntaktisch korrekt noch sind die Variablen deklariert worden...
Lohnt sichs drüber zu diskutiern? :P
Ich würd sowieso kein Bier trinken, sondern Mojito.
Ausserdem vorm kotzen aufhören, wär doch schade drum.
Und mit schlechtem Magen tanzen kommt au ned so gut ;)

Edith meint grad syntaktisch vielleicht schon, nur die Semantik passt wohl nicht ganz. Aber pragmatisch is das nicht wirklich. (Wie ich das hasse :D)
 
Zuletzt bearbeitet:
C# weil
  • weit verbreitet
  • Visual Studio ist genial (auch die kostenlose Express-Version)!
  • GUIs sind sehr leicht und schnell erstellt
  • Debugger ist sehr gut
  • hohe Performance
  • automatische Speicherverwaltung
  • Informationen im Überfluss
Falls du aber hardwarenah programmieren möchtest, ist es ungeeignet.
 
Machs doch ganz einfach:

Vergib für jede hier genannte Programmiersprache eine Zahl von 1 bis 12. Nimm 2 Würfel und würfel dir eine Zahl in dem du die Anzahl der Punkte jedes Würfels addierst. Dann schaust du in deiner Liste nach welche Sprache das ist. Dann gehst du in den nächsten Buchladen, Bibliothek oder andere Bezugsquellen von Büchern. Schaust nach Titeln ala "Jetzt lerne ich die Sprache XYZ" oder "XYZ für Dummies" oder "In 10 Tagen lerne ich XYZ" (wobei XYZ für die eben gewürfelte Programmiersprache steht).

Dann an den Rechner gesetzt, schnell die im Buch empfohlene Entwicklungsumgebung aus dem Internet gezogen und installiert und schon bist du dabei programmieren zu lernen... Wenn du das Buch durch hast kannst du ja immer noch aufgeben oder vielleicht weiter am Ball bleiben. Dann also wieder zurück in deinen Bookshop des Vertrauens und das nächste Buch (diesmal dick und groß) besorgt. Vorher mal reinlesen, obs deinen Geschmack trifft und dann wieder zurück an den heimischen PC.

Sei dir gewiß ich will dich jetzt nicht verarschen. Das Ganze klingt für dich vielleicht arrogant, überheblich oder einfach nur lächerlich, ABER es gibt nicht die einzige und wahre Programmiersprache für einen Anfänger. Jede Sprache hat Vor- und Nachteile. Mit jeder Sprache kannst du das Programmieren lernen. Du kannst beim Lernen des Programmierens keine Fehler machen, da das Lernen selbst auf dem Prinzip von Erfolg und Mißerfolg beruht. Es gibt nicht den einzig wahren Weg ein Programms zu schreiben. Viele Wege führen nach Rom und es gibt "unendlich" viele Varianten ein Problem programmtechnisch zu lösen.

Meine persönliche Meinung ist, dass du am Anfang Abstand von Tutorials im Internet nehmen solltest. Weil oft sehr speziell, oft sehr verwirrend, oft fehlerhaft und ein gewisses Grundverständnis wäre meist auch noch notwendig. Für mich also für einen Anfänger denkbar ungeeignet, wenn du wirklich bei null anfängst.

Es würde mich natürlich freuen wenn du vom "Programmierfieber" ebenfalls gepackt wirst. Ist halt eine schöne Sache mit der man auch sein Leben finanzieren kann ;)
 
Zuletzt bearbeitet:
Am dem was Rossibaer sagt ist was dran.
"Die" Sprache gibt es nicht, "die" Einsteigersprache sowieso nicht.

Wenn man eine Frage in der Richtung stellt erhält man x verschiedene Antworten, schließlich ist jeder irgendwo von der Sprache überzeugt mit der er arbeitet. Ich würde ein Einsteigerbuch für eine x-beliebige Sprache nehmen, wichtig ist es erst ein Mal die Grundlagen zu lernen. Der Rest, also die Syntax einer Sprache, ist dann nur Formsache. Wer mit einer Programmiersprache programmiert hat kommt auch mit einer anderen zurecht, trotz aller Unterschiede.
Ich beschränke mich mal darauf ein paar Beispiele aufzulisten:

Ich persönlich arbeite viel mit Ruby, auch in der Arbeit. Das ist aber vielleicht nicht so gut geeignet für Einsteiger, da es meines Wissens nach noch etwas an deutschsprachiger Dokumentation für Anfänger fehlt. "Die Programmiersprache Ruby" und das Pickaxe Buch sind zwar gut, aber nicht unbedingt für den Einstieg gedacht. Dank Rails wird Ruby zunehmend gefragter, wenn die Verbreitung momentan hierzulande auch noch eher gering ist.

Mit Perl kann man sehr schnell Programme zusammenhacken, es ist aber auch leicht sich da einige schlechte Angewohnheiten anzueignen, besonders wenn man ohne das "use strict" Pragma in die Tasten haut. Es gibt eine gute Implementation für Windows von ActiveState. Auf Linux ist Perl normalerweise ohnehin installiert und wird auch sehr oft für administratives verwendet, auch in dem Unternehmen in dem ich arbeite. Mit GUI schauts nicht so gut aus, ist ein bisschen Gefrickel um TK oder eine andere GUI zum Laufen zu kriegen. Besonders unter Windows.

Java ist nach wie vor unglaublich gefragt in Unternehmen, auch wenn ich persönlich kein Fan bin. Andere Vorteile sind die gute und reichliche Dokumentation, viele Benutzer und die gute Portierbarkeit der Programme. Den Zwang zu OOP kann man gut finden, muss man aber nicht.

C# hat eine sehr Java-ähnliche Syntax und ist sehr gut geeignet wenn du vorwiegend unter Windows arbeiten willst, .NET sei Dank. Durch Visual C# kann man auch relativ einfach gute GUIs machen.

C und C++ sind natürlich nach wie vor sehr wichtige Sprachen und es hilft enorm wenn man sich hier auskennt, besonders auch für Linux wo man viel selbst kompiliert. Es gibt aber durchaus Einsteigerfreundlicheres.

Python ist gut, verletzt meiner Ansicht nach aber FFF. Mir gefällt der Zwang zur bestimmten Gestaltung des Quelltexts persönlich nicht so. Natürlich sollte man sein Programm klar strukturieren, aber das "Wie" bestimme ich dann doch lieber selbst.

Für dynamische Webseiten ist immer noch PHP das Maß der Dinge.

Letztendlich muss jeder für sich selbst entscheiden was er verwendet. Die Programmiersprache ist auch nur ein Werkzeug und jeder verwendet das was ihm am Besten gefällt.
OOP ist auch ein strittiges Thema, das wird immer als der Heilige Gral der Programmierung hingestellt. Letztlich ist es nur ein möglicher Weg. Ich verwende OOP (oder Teile davon) wenn ich es gerade passend finde, und ansonsten wird einfach funktional und modular programmiert. Ein Zehnzeiler braucht kein OOP. Nicht mal längere Programme brauchen es unbedingt. In großen Projekten kann es sehr hilfreich sein, aber es geht immer auch anders. Ich persönlich habe den Eindruck dass Leute, die mit funktionaler Programmierung angefangen haben (wie ich) nicht ganz so hin und weg von OOP sind wie die Leute, die von Anfang an damit gearbeitet haben.

Lange Rede, kurzer Sinn: Triff deine eigene Wahl. Keiner kann dir das abnehmen. Für 10 die sagen Java wirst du 10 finden die C sagen, und wieder 10 sagen ganz was anderes.
 
Eine Sprache wurde hier noch gar nicht angesprochen, die meiner Meinung nach wegen ihrer Syntax mit am besten für Anfänger geeignet ist: Pascal bzw. Delphi (Eine Entwicklungsumgebung für einen Pascal-Dialekt). Gerade wenn es um das Verständnis von Kontrollstrukturen geht, hat man dort den Vorteil, dass Pascal im Gegensatz zu vielen anderen Sprachen englische Wörter wie 'begin' und 'end' benutzt statt z.B. '{' und '}'. Das macht es einem Anfänger relativ einfach, sich Beispiel-Quelltexte durchzulesen.
 
Es gibt durchaus auch andere Sprachen, die Blöcke ermöglichen. Bei Ruby werden diese mit 'do' und 'end' begrenzt. Ob das allerdings unbedingt besser lesbar ist als die geschweiften Klammern? Ich bin mir nicht sicher.

Delphi ist allerdings ganz nett, das stimmt. Wäre eine Möglichkeit.
 
Und da wären noch
- PL/SQL, TSQL, D, Lisp (Common Lisp und Scheme), Haskell, Oberon, Prolog

Mit jeder kannst du anfangen. Richtet sich nach dem was du machen willst... Ich denke mittlerweile wirst du schon fast 3 Würfel brauchen.
 
Zurück
Oben