Welche Programmiersprache für Anfänger?

Naja ob das so sinnvoll ist?
Eine Sprache mit "C Syntax" wie Java C# oder auch PHP ist da wohl sinnvoller da man damit dann auch einen großteil der verbreiteten anderen Programmiersprachen sehr leicht versteht.

Und wenn man es von anfang an sauber lernen will bleibt nur Java und C#, mit PHP kann man halt sehr viel Quick&dirty programmieren.
 
c++=c+1 .



;)
 
PHP ist für mich auch keine richtige Programmiersprache, auch wenn es Klassen kann :D
Für Web würd ich wohl eher auf asp oder jsp gehen.
Oder halt dann gleich Typo3 nehmen und dafür Extensions schreiben (wobei da wieder PHP drin steckt, bäh)

@godofkills: ja aber erst nach dem Statement :P
 
[klugscheiß]
ist c++ nicht c +=1 oder c = c+1 und nicht c+1? :D
[/klugscheiß]
 
ja :D.

korrekt wäre c++ = c=c+1 ;)

aber wollte nur damit zeigen warum c++ auch c kann ;)
 
Doeni schrieb:
PHP ist für mich auch keine richtige Programmiersprache, auch wenn es Klassen kann :D
was ist PHP dann? Bzw warum ist es keine?

Für den Anfang ganz klar Scriptsprachen, es ist deutlich einfacher am Anfang, wenn man die Basics draufhat und noch nicht, wie die meisten, das Interesse verloren hat, kann man sich immernoch einen guten Stil aneignen.
Denn seien wir mal ehrlich, welcher absolute blutige Programmieranfänger wird OOP korrekt nutzen, keiner, dazu gehört Erfahrung.

Meine Empfehlungen:
PHP, Python usw.

Danach dann:
Java, C#, C(++) oder ähnliches
 
Zuletzt bearbeitet:
ice-breaker schrieb:
was ist PHP dann? Bzw warum ist es keine?

Für den Anfang ganz klar Scriptsprachen, es ist deutlich einfacher am Anfang, wenn man die Basics draufhat und noch nicht, wie die meisten, das Interesse verloren hat, kann man sich immernoch einen guten Stil aneignen.
Denn seien wir mal ehrlich, welcher absolute blutige Programmieranfänger wird OOP korrekt nutzen, keiner, dazu gehört Erfahrung.

Meine Empfehlungen:
PHP, Python usw.

Das stimmt. Es gibt einen Unterschied zwischen programmieren und sauber programmieren
 
jup. und seien wir ehrlich, wer von uns hat die ersten 1-2 Jahre wirklich sauberen Code produziert. Ich meine es hat funktioniert, einiges war sogar sicher, aber ich würde das heute nicht mehr mit der Kneifzange anfassen.
Von daher kann man ruhig erstmal lernen und Fehler machen, wenn man dann noch Interesse hat und genug "Erfahrung" über die grundlegenden Programmierkonzepte hat, kann man sich noch immer verbessern, und dieser Prozess stoppt nie.
 
ohne gelesen zu haben was vor mir war:
ich empfehle dir java. ist gut verständlich und ich denke auch nicht zu hoch gesetzt. vllt solltest du dir auch c bzw c++ ansehen, da man hier auch viel über den pc lernt.

btw: so oft wies diese frage schon gab, sollte man einen extra anleitungsthread direkt über die tutorialsammlung stellen^^
 
Falsch, c++ ist ein rvalue und kann damit nicht auf der linken Seite des Zuweisungsoperators stehen ;)

Eigentlich sollte man solche Threads ja schließen, da sie schon so oft im Forum sind, aber ich will einen kleinen Beitrag liefern: Ich habe mir auch alles selbst beigebracht und bin gleich mit C++ eingestiegen. Das ist durchaus möglich, wenn man Zeit und Motivation hat.
Natürlich wird man am Anfang nicht die vielen schönen Features der Sprache Nutzen, wie Templates und teilweise Spezialisierung der selben oder auch das pimpl-Idiom etc. weil man es am Anfang einfach nicht versteht. Man muss eben am Anfang die Syntax der Sprache und einfach Kontrollstrukturen etc. lernen.
Ich persönlich bin mit dem Buch "C++ Primer" eingestiegen und möchte es sehr empfehlen. Ich würde fast sagen, für Anfänger ist es etwas besser geeignet als "Die C++ Programmiersprache", die aber auch lesenswert ist. Klar, das sind dicke Bücher, aber anders geht es kaum. Und selbst danach kommt man kaum um Lektüren wie "Effective C++", "Modern C++ Design" oder "(More) Exceptional C++" herum. All diese Bücher haben, was für einen Einsteiger vll. überraschend ist, nichts mit GUI-Programmierung (also mit Fenstern etc.) zu tun.

Denn seien wir mal ehrlich, welcher absolute blutige Programmieranfänger wird OOP korrekt nutzen, keiner, dazu gehört Erfahrung.
Wobei man selbst mit fortgeschrittenen Programmierern gerne und ausgiebig darüber streiten kann, was OOP ist ;)

aber wollte nur damit zeigen warum c++ auch c kann
Ein klares jein. http://www2.research.att.com/~bs/bs_faq.html#C-is-subset

Aber wie gesagt, möchtest du eher OOP oder konsolen Anwendungen, GUI usw.?
Wieso OOP || GUI ?

Natürlich gibt es auch einen Unterschied zwischen "die Syntax beherrschen" und "die Programmiersprache beherrschen". Nur: Ohne das erste kann man das 2. nicht erreichen.

Ich hoffe nicht zur völligen Verwirrung beigetragen zu haben ;)


Gruß,


badday
 
Ich würde inzwischen Python empfehlen, wenn es allerdings direkt GUI-Programmierung sein soll (was ich nicht für sinnvoll halte) ist C# ganz gut geeignet.
 
C# und Java sind zwar recht "einfache" Sprachen, da sie dem Programmierer gegenüber C++ einiges abnehmen, aber für einen blutigen Anfänger vielleicht doch schon etwas hoch gegriffen. Früher hat man da eher Basic genommen, aber das würde ich heutzutage auch nicht wirklich mehr empfehlen.

Der Tipp mit Python ist denk ich schon die richtige Richtung. Da kann man recht schnell Anfangen seine Programme zu schreiben, die Sprache ist schön klar strukturiert und die Syntax sehr gut lesbar. Trotzdem ist das ganze eine sehr Leistungsfähige Sprache, die auch im professionellen Bereich zum Einsatz kommt (unter anderem auf Webservern als Alternative zu PHP).
 
godofkills schrieb:
Da nicht alle Sprachen Plattform unabhängig sind.
Aber JAVA schon.

In der Theorie ja.
In der Praxis sieht das aber ein wenig anders aus.

In der Schule musste ich mal unter Java ein Programm schreiben, was mehrere Threads startete und die Thread beenden ließ, wenn sie eine bestimmte Zeit liefen. Unter Unix-basierten System gabs ein komplett anderes verhalten, als unter Windows.
Anscheinend behandelt Windows die Threads anders, als Unix/Linux.

badday schrieb:
Wobei man selbst mit fortgeschrittenen Programmierern gerne und ausgiebig darüber streiten kann, was OOP ist

OOP is the buzzword of the moment.
It will solve all of your programming problems,
give you unlimited wealth,
and make you irresistible of the opposite sex.

(Zitat von David Thielen)
 
Whiz-zarD schrieb:
In der Schule musste ich mal unter Java ein Programm schreiben, was mehrere Threads startete und die Thread beenden ließ, wenn sie eine bestimmte Zeit liefen. Unter Unix-basierten System gabs ein komplett anderes verhalten, als unter Windows.
Anscheinend behandelt Windows die Threads anders, als Unix/Linux.

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 möchte dich nicht an den Pranger stellen ;)
Aber bei dem Wort Threads gehen meine Alarmglocken los, denn Threading richtig zu machen ist in jeder Sprache schwer und teilweise wenig intuitiv.


als Beispiel (Java Concurrency in Practice, Kapitel 16.1):
PHP:
package net.jcip.examples;

/**
 * PossibleReordering
 * <p/>
 * Insufficiently synchronized program that can have surprising results
 *
 * @author Brian Goetz and Tim Peierls
 */
public class PossibleReordering {
    static int x = 0, y = 0;
    static int a = 0, b = 0;

    public static void main(String[] args) throws InterruptedException {
        Thread one = new Thread(new Runnable() {
            public void run() {
                a = 1;
                x = b;
            }
        });
        Thread other = new Thread(new Runnable() {
            public void run() {
                b = 1;
                y = a;
            }
        });
        one.start();
        other.start();
        one.join();
        other.join();
        System.out.println("( " + x + "," + y + ")");
    }
}

kann auch x=y=0 ausgeben, obwohl man es so intuitiv nicht versteht. Mit dem Wissen des Java Memory Modells ist es dann aber erklärbar. Das sind aber alles die Phänomene, die dann immer auf anderen Rechnern auftreten (auf meinem eigenen kann ich es nicht reproduzieren, auf meinem Server schon), mit anderen Hardware-Architekturen oder ähnlichen, wo dann das Memory Modell greift. (Es greift auch vorher nur war nicht die entsprechende Hardware vorhanden, dass dieser Fehler auf dem System auftreten konnte)



Dem Tenor schließe ich mich aber an, Python ist denke ich für den Anfang die beste Wahl.
 
Zuletzt bearbeitet:
Falsch, c++ ist ein rvalue und kann damit nicht auf der linken Seite des Zuweisungsoperators stehen
Lüg doch nicht :(

Code:
#include <stdio.h>

int main(void) {
    char *c = "Hallo!";
    while(*c++ != 0) printf("%s\n", c);
    return 0;
}
 
Zuletzt bearbeitet:
Schau dir mal Ruby an, ich kann nur sagen Firmen sind zunehmend daran interessiert.

http://www.ruby-lang.org/de/

Oder halt JAVA, ich kann zwar beides (noch) nicht, die Sprachen sind aber sehr angesagt.
 
Zuletzt bearbeitet:
Was bei irgendwelchen Leuten "angesagt" ist, spielt doch keine Rolle dafür, was man als erstes lernen sollte.

Ich empfehle natürlich wie immer, SICP zu lesen. Da lernt man Programmieren und eine wunderschöne Sprache
gleich mit dazu.
 
Tu ich das?
Gemäß des ARM p. 53, §5.2.5 mit dem Titel "Increment and Decrement" heißt es im Standard:
The type of the of the result is the same as the type of the operand, but it is not an lvalue.
Wie auch immer...

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 ;) ).


Gruß,

badday
 
Zurück
Oben