Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Programmieren lernen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (2): « vorherige 1 [2] Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Programmieren lernen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
3FingerbreitNougat
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

@Princess
  1. Schreib "Java" und "C++" groß über die Hälfte jeweils.
  2. Augen zu und das Blatt auf den Boden werfen.
  3. Blatt mit verschlossenen Augen suchen und finger zufällig drauf.
  4. Augen auf. Du hast entschieden =)


MfG

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von 3FingerbreitNougat: 13.07.2010 00:37.

13.07.2010 00:37
ed209
Routinier


Dabei seit: 07.09.2006
Beiträge: 324

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von David_pb
Schade das hier so viele Leute zu Java raten. Ich find die Sprache hat einfach nichts was sie wirklich interessant macht. Die am häufigst genannten Vorteile wie: strenge Objektorientierung, automatisierte Speicherverwaltung, Platformunabhängigkeit usw... sind für mich als Programmierer kaum von wirklicher Interesse.


Warum ist es schade? Nur weil die Sprache für dich nicht interessant ist?

Ich bevorzuge die Sprache Java, wegen des höheren Grades an Abstraktion. Die Sprache ist klar definiert (Der Java Language Spec stehen mehrere C++ und C Standards sowie ABIs für die verschiedenen Platformen gegenüber, die alle berücksichtigt werden müssen).

lch grad mal wieder im Genuß C++ zu programmieren und ärger mich grad über wirre Compiler/Linker-Meldungen, bei denen ich Probleme habe zu verstehen was der Compiler überhaupt will (Und Compilerbau war mein Schwerpunkt).
Bei Java reicht ein Blick in die Spec und ich weiß genau was erwartet wird.

Und grad einem Anfänger ist nicht geholfen, wenn ihm erzählt wird er habe eine undefined referenced auf die vtable.

Deine strikte Trennung von Schnittstellen zur Implementation existiert auch nur aus sicht eines Programmierers der linear programmiert, nicht objekt-orientiert.
Interfaces als Typen wie in Java gibt es in C++ nur behelfsmäßig über abstrakte Klassen.

Versteh mich nicht falsch, C++ hat sicher seine Berechtigung. Aber es ist ganz und gar nciht verwunderlich einem Anfänger zu Java zu raten. Da finde ich genug Gründe:

- klare Objekt-Orientierung (auch wenn nicht unbedingt strikt)
- hohes Abstraktionslevel (verglichen mit C++, keine Pointer, kein Speicherverwaltung)
- Klare Laufzeitumgebung (bei dem meisten Standardzeug kann man erwarten daß es überall gleich läuft)
- Verständlichere Compilermeldungen

Also vom ED ein klares: Go for Java smile

Gruß,
ED209
14.07.2010 12:38 ed209 ist offline E-Mail an ed209 senden Beiträge von ed209 suchen Nehmen Sie ed209 in Ihre Freundesliste auf
David_pb
Mitglied


Dabei seit: 01.06.2007
Beiträge: 44

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von ed209
Ich bevorzuge die Sprache Java, wegen des höheren Grades an Abstraktion. Die Sprache ist klar definiert (Der Java Language Spec stehen mehrere C++ und C Standards sowie ABIs für die verschiedenen Platformen gegenüber, die alle berücksichtigt werden müssen).

lch grad mal wieder im Genuß C++ zu programmieren und ärger mich grad über wirre Compiler/Linker-Meldungen, bei denen ich Probleme habe zu verstehen was der Compiler überhaupt will (Und Compilerbau war mein Schwerpunkt).
Bei Java reicht ein Blick in die Spec und ich weiß genau was erwartet wird.

Und grad einem Anfänger ist nicht geholfen, wenn ihm erzählt wird er habe eine undefined referenced auf die vtable.


Naja, wie mans nimmt. Compilermeldungen sind kein Sprachbestandteil, und wirkliche Probleme die Meldungen zu verstehen hatte ich bisher auch nicht. verwirrt

Zitat:
Original von ed209
Deine strikte Trennung von Schnittstellen zur Implementation existiert auch nur aus sicht eines Programmierers der linear programmiert, nicht objekt-orientiert.
Interfaces als Typen wie in Java gibt es in C++ nur behelfsmäßig über abstrakte Klassen.


Versteh ich nicht, das ist eigentlich nicht was ich angesprochen hab. Was hat es mit linearer Programmierung zu tun wenn ich das Interface (nein, der Begriff bezieht sich nicht nur auf Interfaces die von Java ode C# bekannt sind) und dessen Implementierung trenne? Das hat in erster Linie nichts mit irgendwelchen Paradigmen zu tun sondern ist ein Ding der Übersichtlichkeit.

Zitat:
Original von ed209
Versteh mich nicht falsch, C++ hat sicher seine Berechtigung. Aber es ist ganz und gar nciht verwunderlich einem Anfänger zu Java zu raten. Da finde ich genug Gründe:

- klare Objekt-Orientierung (auch wenn nicht unbedingt strikt)
- hohes Abstraktionslevel (verglichen mit C++, keine Pointer, kein Speicherverwaltung)
- Klare Laufzeitumgebung (bei dem meisten Standardzeug kann man erwarten daß es überall gleich läuft)
- Verständlichere Compilermeldungen


Nun, du nennst hier wieder genau die Gründe die immer genannt werden.
Zum Beispiel der erstgenannte Punkt: Wie gesagt ich empfinde den zwang zur Objektorientierten Programmierung eher als Negativbeispiel. Ich will als Programmierer lieber Freiheit bezüglich Problemlösungen haben. Objektorientierung bildet sich einfach manchmal nicht gut auf Problemlösungen ab und ich möchte lieber einen Prozeduralen Ansatz, oder ich schieß mit einem "funktionalen" Ansatz auf das Problem...

Ich musste bisher ein Projekt in Java entwickeln und hab aus diesen 6 Monaten wirklich nichts mitgenommen ausser das Java eigentlich alle interessanten Features von C++ entfernt hat.
14.07.2010 14:14 David_pb ist offline E-Mail an David_pb senden Beiträge von David_pb suchen Nehmen Sie David_pb in Ihre Freundesliste auf
ed209
Routinier


Dabei seit: 07.09.2006
Beiträge: 324

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Naja, wie mans nimmt. Compilermeldungen sind kein Sprachbestandteil, und wirkliche Probleme die Meldungen zu verstehen hatte ich bisher auch nicht. verwirrt


Da hast du ein valides Argument. Vielleicht ist g++ an der Stelle einfach nur mangelhaft.
GCC ist nun wirklich kein guter Freund.

Zitat:
Das hat in erster Linie nichts mit irgendwelchen Paradigmen zu tun sondern ist ein Ding der Übersichtlichkeit.

Ich halte das sehrwohl für ein Pardigma, eins das aus der modularen Programmierung kommt. Turbo Pascal und Modula-2 haben eine ähnliche Art Schnittstelle und Implementierung zu trennen.
In Java hast du Implementierung genau so sauber von den Schnittstellen getrennt.

Zitat:
Nun, du nennst hier wieder genau die Gründe die immer genannt werden.
Zum Beispiel der erstgenannte Punkt: Wie gesagt ich empfinde den zwang zur Objektorientierten Programmierung eher als Negativbeispiel. Ich will als Programmierer lieber Freiheit bezüglich Problemlösungen haben.


Du siehst das ganze aus der Programmierer/Hacker sicht und da ist es natürlich ein Vorteil alles machen zu können wonach einem grad ist.
Aber es sind nicht nur Programmierer an der Softwareentwicklung beteiligt.

Und wenn ich ein großes Projekt erbe und erstmal 100k Zeilen Code verstehen muß, bin ich froh über jede Grenze die meinem Vorgänger gesetz wurde smile

Zitat:

Objektorientierung bildet sich einfach manchmal nicht gut auf Problemlösungen ab und ich möchte lieber einen Prozeduralen Ansatz, oder ich schieß mit einem "funktionalen" Ansatz auf das Problem...


Ich würde einem Anfänger zu objektorientierter Programmierung raten fürs Erste. Die Frage war nicht welche Programmiersprache die beste ist (die Diskussion ist eh müßig, sondern womit man anfangen sollte.

Ein Anfänger braucht nicht unbedingt zig Möglichkeiten um an gutem Prorgrammierstil vorbeizuprogrammieren.

Zitat:

Ich musste bisher ein Projekt in Java entwickeln und hab aus diesen 6 Monaten wirklich nichts mitgenommen ausser das Java eigentlich alle interessanten Features von C++ entfernt hat.


Ich hab nicht wirklich Lust hier die alte Diskussion zwischen Uni-geprägten Softwareentwicklern und eingefleischten Programmierern aufleben lassen.

Es ging mir nur darum daß es tatsächlich gute Gründe dafür gibt mit Java anzufangen, nicht mit C++.
14.07.2010 14:50 ed209 ist offline E-Mail an ed209 senden Beiträge von ed209 suchen Nehmen Sie ed209 in Ihre Freundesliste auf
David_pb
Mitglied


Dabei seit: 01.06.2007
Beiträge: 44

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Naja, die Diskussion ist tatsächlich wenig erträglich. Abgesehen von allen Argumenten die ich als Softwareentwickler gegen Java habe halt ich C++ trotzdem nicht für eine falsche Wahl, auch für Anfänger. Bei uns an der Uni wurde z.B. Programmieren mit C++ begonnen, Java kam dann erst später.
14.07.2010 15:33 David_pb ist offline E-Mail an David_pb senden Beiträge von David_pb suchen Nehmen Sie David_pb in Ihre Freundesliste auf
magna
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

C++ ... Java ... warum nicht einfach eine anfängerfreundliche Sprache, die man wahlweise prozedural oder objektorientiert schreiben kann und sich nicht die Finger blutig tippen muß um erste Erfolge zu verzeichnen.

Denn gerade lange Quelltexte verwirren doch jemanden der sich gerade das erste mal mit der Programmiererei auseinendersetzt.

Ich würde definitiv zu Python oder Ruby raten.

* kurze und eingängige Syntax
* frei
* genügend Tutorials
* geeignet für Standalone- und Webanwendungen
24.11.2010 00:46
Ibn Batuta Ibn Batuta ist männlich
Mitglied


images/avatars/avatar-45.jpg

Dabei seit: 02.01.2011
Beiträge: 26

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Weil im 2. Beitrag Code::Blocks erwähnt Wurde. Code::Blocks ist der größte Mist auf Erden.

Dann doch lieber Bloodshed, bevor man sich mit Code::Blocks rumärgern muss...

Ich für meinen Teil verwende auch Netbeans für C bzw. C++.


Ibn Batuta
13.01.2011 22:41 Ibn Batuta ist offline Beiträge von Ibn Batuta suchen Nehmen Sie Ibn Batuta in Ihre Freundesliste auf Fügen Sie Ibn Batuta in Ihre Kontaktliste ein
UC7520
Grünschnabel


Dabei seit: 16.01.2011
Beiträge: 1

Konzepte sind wichtiger als Sprachen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo

Du willst Programmieren lernen und die Sprache ist egal (das sage ich auch immer)?
Dann empfehle ich das Buch:

"Programmieren Lernen"
http://www.ofv.ch/index.php?&ID=bkDet&nr=14505
Es ist unabhängig von einer Programmiersprache und enthält über 150 für Anfänger gedachte Übungen.
Zu den Übungen gibt es eine Webseite (http://www.programmieraufgaben.ch), wo alle Aufgaben entweder in Java oder Python, manchmal in beiden Sprachen und manchmal sogar in diversen anderen Sprachen gelöst sind.

Denk einfach nicht: Programmieren kann man so schnell schnell lernen. Ich habe 1984 damit begonnen. Es hat mich seither nicht losgelassen. Wenn es Dich packt, ist die Wahl der Programmiersprache unwichtig. Die meisten Sprachen, auf denen ich gelernt hatte, existieren heute nicht mehr. Heute mache ich PHP, JavaScript, BASH und Java. Was in 2-3 Jahren sein wird, ist nicht wichtig. Wenn Du die Grundkonzepte verstanden hast, dann ist der Wechsel der Sprache eine Kleinigkeit. Aber, was oben im Forum bereits erwähnt wurde, kann sicher als Entscheidungshilfe dienen. Auch die Lösungen unter http://www.programmieren-lernen.ch können eine Entscheidung zur Programmiersprache erleichtern.

Hier die Grundkonzepte aus meiner Sicht, um die Du nicht herumkommen wirst:
  • Ausdrücke und Datentypen
  • Sequenzen
  • Selektion und Iteration
  • Unterprogramme
  • Felder (Arrays und Matritzen)
  • Zeichenketten und Formattierung
  • Datenstrukturen (Struct, Record, Klasse) und Sammelobjekte
  • Algorithmen und Rekursion
  • Delegation und Kapselung
  • Vererbung
  • Polymorphismus
  • Graphische Benutzerschnittstellen und deren API (Application Programmer Interface)



Vielleicht kann ich es auch so formulieren: Wenn Du Autofahren willst, musst Du am Berg anfahren, einparken, überholen, .... Der Wagen ist sekundär. Aber dennoch: Lernen mit einem Testosterossa ist doch sicher spaßiger als mit einem 2CV ;-) Und ohne Wagen gehts wohl schlecht mit "Übung macht den Meister".


Viel Spaß in der Gemeinde der Programmierer

Gruß

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von UC7520: 16.01.2011 00:29.

16.01.2011 00:24 UC7520 ist offline Beiträge von UC7520 suchen Nehmen Sie UC7520 in Ihre Freundesliste auf
newsjunkie newsjunkie ist weiblich
Grünschnabel


Dabei seit: 16.11.2010
Beiträge: 7

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich stimme magna voll zu. Ich habe auch mit Python begonnen und es war SEHR einfach. Dieses Buch ist kostenlos online oder gedruckt auf deutsch und englisch verfügbar und erklärt die Sachen wirklich gut.

Was ist jetzt der Unterschied zwischen Java, C++ und Python? Python ist ein bisschen wie ein Automatik-Auto, während Java eher eine manuelle Gangschaltung hat (über C++ kann ich leider nichts sagen). Natürlich ist es sinnvoll, erst den 'Führerschein' für die manuelle Schaltung, d.h. Java, zu machen, weil man dann alles mal gelernt hat und auch mit automatik zurechtkommen wird. Das Problem ist nur, dass Programmieren für Anfänger so komplex ist, dass es besser ist, es in kleinen Schritten zu lernen. Deshalb würde ich empfehlen, zuerst Python zu lernen und später auf Java zu erweitern.

Es stimmt auch, was UC7520 gepostet hat, dass es eigentlich weniger um Sprachen, sondern eher um die Denkweise geht, die beim Programmieren gefordert ist.
13.02.2011 21:59 newsjunkie ist offline Beiträge von newsjunkie suchen Nehmen Sie newsjunkie in Ihre Freundesliste auf
Seiten (2): « vorherige 1 [2] Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » Programmieren lernen