programmieren lernen

themaster

Fleet Captain Special
Mitglied seit
20.05.2006
Beiträge
333
Renomée
0
Kann mir jemand sagen, wie man programmieren lernen kann?
Wär echt nett
 
Zuerst einmal; Was willst du programmieren, dann die Sprache aussuchen, Buch kaufen, lernen:)

mfg birki2k
 
Am wichtigsten ist, dass man es wirklich will und nicht beim kleinsten Problem aufgibt oder sich mit einer Notlösung zufrieden gibt. Und man sollte als erste Projekte leichte Dinge wählen, sonst wird es eine Qual.


Bücher kann ich keine empfehlen, da ich mir das Programmieren selbst beigebracht habe. Am Anfang stand mein Taschenrechner und das Handbuch dazu. Daraus habe ich die wichtigsten Grundlagen genommen. Danach hab ich hier mal mit einem Befehl rumexperimentiert und da mal ein Konzept aufgeschnappt usw.
 
Falls du C bzw C++ lernen willst würd ich dir das empfehlen, lerne auch grad mit dem(da ist am Ende auchein bisschen Windowsprogrammierung dabei). Mit BASIC würd ich nicht anfangen, da stost man zu schnell an die Grenzen des Machbaren, (hab auch zuerst mit BASIC angefangen) also lieber gleich C.

mfg birki2k
 
Für den Einstieg recht gut und auch günstig sind die folgenden beiden Bücher (wenn C bzw. C++):
C Programmieren von Anfang an von Helmut Erlenkötter
C++. Objektorientiertes Programmieren von Anfang an von Helmut Erlenkötter
Sie wurden uns u.a. jedenfalls fürs Studium empfohlen - allerdings muss ich TiKu auch voll zustimmen, der Wille muss stimmen, man sollte klein anfangen und, wie bei uns die Professoren immer sagen, üben üben üben. ;)
 
Zuerst einmal; Was willst du programmieren, dann die Sprache aussuchen, Buch kaufen, lernen:)

mfg birki2k


Programmieren und eine Programmiersprache zu können sind zwei komplett unterschiedliche Paar Schuhe.
eine Programmiersprache hat man relativ schnell begriffen, ist wie 2 Seiten Vokabeln lernen ;), aber "richtig" Programmieren zu können ist wirklich ziemlich aufwändig und dauert auch eine ganze Weile.

Nicht umsonst gibt es komplette Ausbildung wo man 2-3 Jahre nichts anderes lernt als diverse Algorithmen und halt richtiges und vor allem SAUBERES Programmieren und auch danach hat man bei weitem noch nicht alles gesehen.

Das Wichtigste wurde also schon gesagt, Durchhaltevermögen!
Bis man alles verstanden hat und man auch geziehlt einsetzen kann dauert es einige Zeit, sicherlich keine Tage oder Wochen, sondern Monate und Jahre.

Die ersten Erfolge kommen aber auch sehr schnell ->"Hello World" :)
 
Programmieren und eine Programmiersprache zu können sind zwei komplett unterschiedliche Paar Schuhe.
eine Programmiersprache hat man relativ schnell begriffen

Ich habe ja nur gesagt, erst Sprache aussuchen (wenn nur hello world reicht auch BASIC;D ) und dann lernen. Ansonsten kann man auch (genaugenommen) programmieren wenn man nur z.B. "Hello World"; natürlich würde man von jedem professionellen Programmierer (und anderen) ausgelacht werden wenn man behauptet "Ich bin C Programierer, ich hab mal ein Programm gemacht das hallo auf dem Bildschirm ausgibt...).

Natürlich kommmt es darauf an was man Programmieren will; aber der Anfang wäre doch; Gutes Buch aussuchen, alles aus dem Buch lernen und dann noch eine Referenz kaufen.

mfg birki2k
 
Ja programmieren ist so eine Sache. Hatte es in der Berufsschule, aber immer wenn dann ein Block zwischen war, muss man sich neu reinarbeiten. Das ist leider nicht wie mit HTML, wo man ein bisschen rumklimpert und danach immer mal wieder schnell einsteigen kann.

Habe neulich ein Bericht gelesen, ca 51% aller neuen Projekte werden in JAVA geschrieben. Aber wenn du mit C anfängst ist es auch i.O. Die Syntax ist ähnlich.
 
Hört sich verdammt anstrengend an, aber werd mir dann wohl so ein Buch besorgen müssen!
Danke für euren zahlreichen Antworten!
 
ich würde mit einer sprache anfangen die einigermaßen leicht zu verstehen ist, und nicht mit einer der schwesten sprachen wie c/c++
 
ich würde mit einer sprache anfangen die einigermaßen leicht zu verstehen ist, und nicht mit einer der schwesten sprachen wie c/c++

C ist eigentlich recht logisch aufgebaut, es gibt schwerere Sprachen, ich würde BASIC etc. desshalb nicht empfehlen weil man da schnell an die Grenzen stöst und dann - doch c lernt;)

birki2k
 
Von Microsoft gibts kostenlose Lernvideos für Visual C# Express-Edition, welches übrigens auch kostenlos ist.

Mit ein wenig Englischkenntnissen sollte das kein Problem sein und ist ein guter Einstieg!
 
Zum Einstieg wäre Java gut geeignet. Ist recht einfach und deutlich strukturiert und bietet eine Menge Methoden die besonders am Anfang es einem leichter machen.

Der Umstieg später auf z.B. C++ wird sich auch nicht sonderlich schwer gestalten.

Man sollte jedoch immer im Kopf behalten, dass es einen Unterschied zwischen Programmierer und Informatiker gibt, in etwa zu vergleichen mit Bauarbeiter und Architekt.
Für das letztere gehört eine Menge Theorie dazu, die in keinster Weise etwas mit Programmierung oder Computer zu tun hat jedoch alles darauf ableitbar ist.
 
Zuletzt bearbeitet:
Ich würde PuckPoltergeist Recht geben, wenn themaster postet was er wirklich will kann man eher nach ner Sprache schaun,

mfg birki2k
 
Bei C/C++ kämpft man ziemlich mit Pointern und der Speichermanagement herum.

Unter Java hat man die Probleme nicht muss sich aber durch die API quälen.

Die produktivste Sprache die ich nutze ist Python. Überschaubar klar strukturiert und ist gut dokumentiert.

Mit Python wird man als Anfänger die größten Erfolge erzielen.

Für nicht zu große Projekt und für Automatsierungen würde ich klar Python empfehlen. Python ist interpretiert, aber für performancekritische Anwendungen lassen sich C-Module erstellen, die sich nahtlos ins Programm integrieren lassen, da man über Python-Syntax auf diese Module zugreifen kann.

Als Beispiel sei hier elementTree genannt, ein XML-Parser den es als Python-Modul und als C-Modul gibt. Man ändert nur den Import und schon nutzt man das C-Modul, anstatt das interpretierte Python-Modul.

Infos zur Programmiersprache Python findet man unter www.python.org
 
Zuletzt bearbeitet:
Bei C/C++ kämpft man ziemlich mit Pointern und der Speichermanagement herum.
Unter Java hat man die Probleme nicht muss sich aber durch die API quälen.
Wer bei C++ mit Pointern herumkämpft, hat die Sprache nicht verstanden. Beim Speichermanagement muss man den eigenen Dreck wieder wegräumen (new/delete).
C++ beinhaltet C, ist also abwärtskompatibel. Insofern wird man auch nicht daran gehindert, z.B., Pointerarithmetik einzusetzen. Nötig ist es allerdings nicht.

Bei C ist es schon so, dass ein paar Assemblerkenntnisse nicht schaden ;) Ist aber zum Einstieg trotzdem nicht verkehrt. Es dürfte imho die im technischen Bereich am meisten verbreitete Programmiersprache sein.

Bei Java muss man sich nur dann durch die APIs quälen, wenn man Nutzeroberflächen programmiert. Ansonsten ist Java - salopp gesagt - ein C++ ohne Pointer, aber mit Garbage Collection. Es ist allerdings eine Interpretersprache, zur Ausführung braucht man immer den Interpreter (JVM - Java Virtual Machine).

Wenn ich heute nochmal anfangen dürfte, würde meine Entscheidung für den Einstieg zwischen C++ und Java fallen. Man kann in beiden Sprachen ganz einfach anfangen ("Hello world") und sich dann hineinsteigern. C++ ist eher für den technisch orientierten Einsteiger, Java dann für allgemeine Anwendungen.
 
Es kommt wie immer auf das Einsatzgebiet drauf an. Im Embedded-Bereich gibt es derzeit nichts anderes als C und Assembler.

Wenn man in einem anderen Bereich ist würde ich von C abraten, es ist einfach zu aufwendig darin etwas zu programmieren. Andere Sprachen nehmen da einem viel Arbeit ab.

In C gibt es keine STL, also auch keine dynamischen Datenstrukturen. Wenn man sowas brauch, darf man sich schon so grundlegende Sachen selber bauen und auch das dazugehörige Mangement für den Speicher.

Wenn man Libraries verwendet ist man in C/C++ oft gezwungen Pointer einzusetzen. Dann gibts noch das durcheinander mit Pointern, Adressen des Pointers und dann auch noch Referenzen. Teilweise sind solche Sachen noch versteckt z. B. in Arrays.

Java ist da deutlich Anwenderfreundlicher, aber es ist auch mittlerweile dermaßen aufgeblasen, dass man immer wieder suchen muss welches Object akzeptiert diese Methode und wie erzeuge ich jetzt so ein Objekt.

Ich würd jedem mal empfehlen sich neben diesen Mainstream Programmiersprachen auch mal Python anzuschauen und das ganze zu vergleichen.

Wer eine Programmiersprache beherrscht, dem fällt der Umstieg in eine andere nicht alzu schwer. Bei C/C++ muss man sich dann mit der Speicherverwaltung anfreunden.
 
Wenn man in einem anderen Bereich ist würde ich von C abraten, es ist einfach zu aufwendig darin etwas zu programmieren. Andere Sprachen nehmen da einem viel Arbeit ab.

In C gibt es keine STL, also auch keine dynamischen Datenstrukturen. Wenn man sowas brauch, darf man sich schon so grundlegende Sachen selber bauen und auch das dazugehörige Mangement für den Speicher.
In welcher Sprache gibts denn eine STL? ??? Du schmeißt hier gerade Sprache und Bibliotheken durcheinander.

Wenn man Libraries verwendet ist man in C/C++ oft gezwungen Pointer einzusetzen. Dann gibts noch das durcheinander mit Pointern, Adressen des Pointers und dann auch noch Referenzen. Teilweise sind solche Sachen noch versteckt z. B. in Arrays.
So richtig verstehe ich deinen Kauderwelsch hier auch nicht. Was haben Bibliotheken mit Zeigern zu tun?

Ich finds doch ziemlich amüsant, wie ihr aus einem Thema zum programmieren lernen eine Diskussion über Programmiersprachen macht. Damit ist dem Thread-Starter nicht im geringsten geholfen, ganz im Gegenteil. Das zeigt nur wieder, wie ungesund Halbwissen ist.
So lange sich themaster hier aber nicht noch etwas genauer äußert, lässt sich da auch nichts definitives zu seiner Frage sagen. So allgemein, wie sie gestellt ist, kann sie hier nicht abgearbeitet werden.
 
Ich denke mal, dass die Auswahl der Programmiersprache etwas beim Lernerfolg ausmacht.
Wenn man eine Sprache nimmt, die tausend fallen birgt wird der Lernerfolg ausbleiben und man gibt entnervt auf.

Nur weil du nicht verstehst was ich meine, sind meine Aussagen ungesundes Halbwissen und Kauderwelsch?

Soll ich einen Schluss in die andere Richtung ziehen ? :]

Ich hab hier keine Lust ewig lange Antworten zu schreiben, ich wollte nur auf die Nachteile der weitverbreiteten Programmiersprachen aufmerksam machen, da ich selber über diese Probleme gestolpert bin.

Seit etwas mehr als 2 Monaten bin ich in einem Unternehmen, das Python benutzt um die Tests von Motorsteuerungen ( C - Code ) zu automatisieren. Viele andere Unternehmen aus diesem bereich verwenden ebenfalls Python.
 
Zuletzt bearbeitet:
Nur weil du nicht verstehst was ich meine, sind meine Aussagen ungesundes Halbwissen und Kauderwelsch?
Wenn du nicht schreibst was du meinst, kannst du nicht erwarten, dass andere deine Intention da rein interpretieren. Ich bin mir zwar recht sicher zu wissen, was du ausdrücken wolltest, aber das, was du gesagt hast, weicht davon eklatant ab.

Soll ich einen Schluss in die andere Richtung ziehen ? :]
Tu dir keinen Zwang an. Eine Begründung wäre dann aber auch nett. ;)

Ich hab hier keine Lust ewig lange Antworten zu schreiben, ich wollte nur auf die Nachteile der weitverbreiteten Programmiersprachen aufmerksam machen, da ich selber über diese Probleme gestolpert bin.
Das hast du aber nicht. Du hast verschiedene Dinge in einen Topf geschmissen, ordentlich durchgerührt, und das Ergebnis als Begründung für dein "das ist schlecht" angeführt. Mit dem eigentlichen Thread-Thema hat das schon garnix mehr zu tun. Natürlich kannst du themaster ein paar Tipps zum Anfang mit auf den Weg geben, wo er ansetzen kann und welche Werkzeuge er vielleicht zu Beginn meiden sollte. Dann begründe das aber auch schlüssig, und nicht mit diesem Durcheinander da oben. Das ist nämlich schlicht falsch. Diese Aussage von dir lassen mich darauf schließen, dass du die Werkzeuge (Sprachen) nicht wirklich kennst. Deshalb habe ich auch die Formulierung mit dem Halbwissen gebracht.

Seit etwas mehr als 2 Monaten bin ich in einem Unternehmen, das Python benutzt um die Tests von Motorsteuerungen ( C - Code ) zu automatisieren. Viele andere Unternehmen aus diesem bereich verwenden ebenfalls Python.
Das hat jetzt was mit dem Thread-Thema oder meiner Aussage zu tun?
 
Als Anfänger sollte man meines Erachtens auf jeden Fall nicht mit einer prozeduralen Sprache wie C beginnen, sondern gleich mit einer OO (Objektorientierten) Sprache wie Java beginnen.
Ich selbst habe mit C angefangen und als dann eine OO Sprache wie Smalltalk anstand, war ich erstmal hoffnungslos aufgeschmissen (wie 99% meiner Kollegen). Wir hatte alle die prozedurale Denke drauf ("von oben nach unten im Programmfluss") und wurden jetzt mit der OO Denke konfrontiert ("von oben nach unten UND von links nach rechts - halt die Interaktion der Objekte untereinander").

Mein Tip, fang mit einer OO Sprache an, auch wenn es vielleicht am Anfang schwieriger ist ein erstes Ergebniss präsentieren zu können. Solltest Du dann z.B. Java ganz gut können ist der Schwenk z.B. nach C nur noch ein Klacks.

Gruss
SoM
 
Oh großer Puck ... dass du aus einigen Zeilen herauslesen kannst, dass ich mich nicht auskenne ... ich verbringe halt meine Zeit lieber mit anderen Dingen als hier auf paar Dingen rumzureiten.

Zum glück hab ich bald mein Diplom in Informatik ... aber dann bist du wohl immer noch schlauer ;D ... oder du hast nichts anderes zu tun als hier im Forum zu posten
 
Oh großer Puck ... dass du aus einigen Zeilen herauslesen kannst, dass ich mich nicht auskenne ...
Wer das Fehlen/Vorhandensein von bestimmten Bibliotheken als Defizite/Vorteile einer Sprache propagiert hat keine Ahnung von der Materie. Davon mal ganz abgesehen schließt du hier von deinem privaten Horizont auf die Allgemeinheit, was definitiv falsch ist. (Fehlen STL-artiger Funktionen für C -> glib)

ich verbringe halt meine Zeit lieber mit anderen Dingen als hier auf paar Dingen rumzureiten.
Dann hör auch auf falsche Aussagen zu verbreiten, und Leute damit fehlzuleiten. Auch mit guten Absichten können falsche Aussagen Schaden verursachen.

Zum glück hab ich bald mein Diplom in Informatik ... aber dann bist du wohl immer noch schlauer ;D
Und das Diplom sagt was über deine Programmierfähigkeiten und Kenntnisse verschiedener Programmiersprachen aus? Ich kenne viele Diplom-Informatiker, deren Programmierfähigkeiten am unteren Ende der Skala einzuordnen sind.

... oder du hast nichts anderes zu tun als hier im Forum zu posten
Nun ja, ich habe einiges besseres zu tun, wie z.B. zu programmieren. Ich nehme mir aber trotzdem noch die Zeit, hier solche Falschaussagen wie deine dort oben zu korrigieren.
 
Zurück
Oben Unten