trick17
Anmeldungsdatum: 17. Dezember 2008
Beiträge: 201
|
TraumFlug schrieb: [...]
eine vollständige virtuelle welt programmieren, sich selbst hineinversetzen, und alles darüber lernen, worauf es bei der existenz so ankommt... eine vollständige virtuelle welt programmieren, in der man der übergott ist, und als dieser eine sehr vielseitige vielfalt an existierendem so steuern, dass es floriert und sich stetig weiter entwickelt und wächst, und so, das dessen früchte weisheit und erkenntniss sind, die im zweifel auch das reale universum vor dem niedergang bewahren können. zwischendurch die 3d-brille abnehmen und zur krankengymnastik gehen (so lange vor dem computer sitzen macht echt einen kaputten rücken, wenn man nicht aufpasst...die strom- und internetrechnung muss man auch bezahlen...) dann irgendwann doch beschliessen, dass man lieber orchideen züchtet...
viel spass dabei!!!
ROFLMAO!!!! Hahahahaha...
|
zettberlin
Anmeldungsdatum: 23. Oktober 2006
Beiträge: 623
Wohnort: Celle
|
lucid ist toll... schrieb: Ist zwar ein bisschen spät aber ich kann dir zum einsteigen Perl wärmstens ans herz legen ☺
Finde ich auch.
Perl hat vor allem den Vorteil, dass man schon am ersten Tag etwas schreiben kann, das tatsächlich irgendwas macht. Die Motivation ist für den Einstieg sehr wichtig und Skript-Sprachen motivieren eben dadurch, dass sie sofort was Praktisches leisten. Wenn man ein C-Programm erst mal kompilieren muss, verliert man schnell de Lust, weil man kaum über einen simplen Taschenrechner hinauskommt. Den hat man in Python nach 3-4 Stunden zusammen und kann nach ein paar Tagen das Ergebnis schon in einer primitiven grafischen Oberfläche anzeigen. Und nun, meine Damen: legen sie Ihre Bärte an und checken Sie noch mal Ihre Wurfsteine, denn jetzt werde ich Jehova sagen: PHP Ein Webserverumgebung ist unter Linux schnell installiert und HTML/CSS sind sicherlich einfacher zu knacken als GTK oder QT.
Und PHP ist eben auch eine vollständige Programmiersprache, die vom simplen "Tu dies, dann das und falls dann"- bis zum modularen, Objektorientieren System alles möglich macht. Aber Perl ist auch gut zum Einsteigen (und warum nicht auch BASH?).
Ein recht einfaches Tutorial welches dir alle Basisfunktionen erklärt findest du hier: http://www.tekromancer.com/perl/inhalt.html Viel spaß ☺
|
RHBaum
Anmeldungsdatum: 27. November 2008
Beiträge: 74
|
C++ ist eine extrem komplexe und damit komplizierte Sprache. Diese würde ich einem Einsteiger nun wirklich nicht empfehlen.
Naja, C/C++ ist halt Programmieren, alles andere ist "scripten" (aus sicht eines C/C++ entwicklers ^^) Naja eigentlich sollte der TE seine Ziele kennen, und sich daraus die entsprechende Programmiersprache ableiten.
Will er sein system nur "automatisieren" kann man ihn auch an die shell verweissen.
Will er aber komplexxere Programme schreiben, die die Ressourcen seines Systems ned allzusehr belasten, und entsprechend performant sein muessen/sollen, sollt er auf eine Compilierte Hochsprache hinarbeiten.
Will er geraetetreiber schreiben / Hardware (FPGA's) etc programmieren, wird er um C nicht herumkommen.
... Fast jede Sprache hat seinen Daseinszweck und Ihr bevorzugtes Gebiet, wo so Ihre Vorteile ausspielen kann ... Ciao ....
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
RHBaum schrieb: Naja, C/C++ ist halt Programmieren, alles andere ist "scripten" (aus sicht eines C/C++ entwicklers ^^)
Unsinn! Aus Deiner Sicht vielleicht, andere wissen eben, was "Programmieren" bedeutet und dass das universell für alle Sprachen gilt.
Will er aber komplexxere Programme schreiben, die die Ressourcen seines Systems ned allzusehr belasten, und entsprechend performant sein muessen/sollen, sollt er auf eine Compilierte Hochsprache hinarbeiten.
Wenn schon dann "kompilierbar" 🙄 Aber auch das ist einfach pauschaler Quatsch und wurde ja schon zig tausend mal hier durchgekaut.
|
zettberlin
Anmeldungsdatum: 23. Oktober 2006
Beiträge: 623
Wohnort: Celle
|
RHBaum schrieb: C++ ist eine extrem komplexe und damit komplizierte Sprache. Diese würde ich einem Einsteiger nun wirklich nicht empfehlen.
Naja, C/C++ ist halt Programmieren, alles andere ist "scripten" (aus sicht eines C/C++ entwicklers ^^) Naja eigentlich sollte der TE seine Ziele kennen, und sich daraus die entsprechende Programmiersprache ableiten.
Will er sein system nur "automatisieren" kann man ihn auch an die shell verweissen.
Will er aber komplexxere Programme schreiben, die die Ressourcen seines Systems ned allzusehr belasten, und entsprechend performant sein muessen/sollen, sollt er auf eine Compilierte Hochsprache hinarbeiten.
Und Du meinst, ein Plan wie dieser würde aufgehen: "
1: Ich könnte eine Softwaresuite zum Optimieren von Raumakustik brauchen. Mit hübsch Hardwarenahen DSP-Modulen und am besten mit einem aus dem realen Raum abgeleiteten 3D Interface. Und mit virtuellen Oberflächen mit physikalisch korrekt berechneten Reflexionseigenschaften und und und... 2: Na gut, ich habe bisher noch nie einen Texteditor geöffnet aber dem Glücklichen schlägt ja bekanntlich keine Stunde. Also: welche Programmiersprache kann denn meine 3d-DSP-Akustiksuite am besten? Die lerne ich dann und in zwei Monaten bringe ich meine fertige Software bei Sorzforsch oder wie das heißt unter die Leute ☺
" ?? Ich nicht. Viele Langzeitcoder können sich das nicht vorstellen aber es gibt intelligente, talentierte Menschen, die nicht wissen, was eine Variable oder ein Array ist. Und diesen Leuten dürfte es leichter fallen, erst mal in einer Skriptsprache kleine Programme zu schreiben, als gleich am ersten Tag einen Compiler zu bemühen.
Will er geraetetreiber schreiben / Hardware (FPGA's) etc programmieren, wird er um C nicht herumkommen.
Über kurz oder lang bestimmt. Aber wer Japanisch lernt, wird wohl vernünftiger Weise auch erst mal einfache Sätze wie "Wie komme ich zum Bahnhof" formulieren lernen und dann, viel später vielleicht, sein erstes Haiku schreiben.
... Fast jede Sprache hat seinen Daseinszweck und Ihr bevorzugtes Gebiet, wo so Ihre Vorteile ausspielen kann ... Ciao ....
|
RHBaum
Anmeldungsdatum: 27. November 2008
Beiträge: 74
|
Über kurz oder lang bestimmt. Aber wer Japanisch lernt, wird wohl vernünftiger Weise auch erst mal einfache Sätze wie "Wie komme ich zum Bahnhof" formulieren lernen und dann, viel später vielleicht, sein erstes Haiku schreiben
Ja aber um erst mal generell ins Sprachen lernen reinzukommen, sollte er dann erst mal mit russisch anfangen? Wo doch feststeht das japanisch "rauskommen" soll ?
Dein vergleich hinkt von der Tatsache her, das sich Japanisch / Haiku eher zueinander verhält wie klassische OOP C++ Programmierung (Polymorphie) zu generischer Programmierung (Templates).
Sicher ist C/C++ schwieriger als "einsteigerfreundlicherer"e Sprachen, Aber ich wuerd nen C++ Einsteiger scho zutrauen, innerhalb von paar Tagen sein erstes Konsolenprogramm zu schreiben. Ne template basierte Object/funktionsbibliothek, dafuer wuerde er sicher noch paar Jaehrchen lernen muessen. Ob er sowas jemals braucht, sei eh auch dahingestellt. Was sind denn die Gemeinsamkeiten ?
Kontrollstrukturen, Datentypen (sofern vorhanden) Operatoren ... bei speicherManagment hoerts meist schon auf. Das lernt er durch scriptsprachen ned sooo viel schneller. Der "wahre" vorteil, ne andere Sprache zuerst zu lernen, ist das man bei C/C++ grad fuers Programmieren an sich (automatisierung) meist noch ne Scriptsprache koennen sollte. Am Ende muss er selber wissen, was am Ende bei rauskommen sollte. Und sollte sich danach richten.
I will nur mit sagen, das "Ich will programmieren lernen" genau so generisch ist, wie "Ich will fliegen lernen".
Will er Hubschrauberpilot werden, machts kaum sinn erst mal mit Sprüngen vom 10 Meter Turm im freibad anzufangen ☺
Also: welche Programmiersprache kann denn meine 3d-DSP-Akustiksuite am besten?
Leider ist Dein Beispiel zu praxisnah ☺
Du schreibst nur grob, was eine Suite koennen muss.
Aber die eigentlichen punkte, die fuer die Software-Entwicklung wichtig sind, und sich auf die Wahl der Sprache draufschlagen, die sind nicht spezifiziert.
- Kosten / Zeitrahmen ?
- UserInterface / Handling ? Gibt es Prototypen ?
- Reaktionszeiten ....
- Plattformunabhaengigkeit
- Erweiterbarkeit
- Wie wird das teil hinterher gepflegt ? Gibt es "Folge-Aufträge" Ich könnte dir sicher ne App in Visual Basic, Java, und ne App in C/C++ schreiben, Die wuerden sich aber komplett anders "anfuehlen".
Die entwicklungszeiten wären komplett anders, und auch der Preis.
Unabhaengig das ich von Akkustik maximal Schulwissen habe ^^ Ob das logisch/technisch machbar ist, könnte ich dir also nicht sofort garantieren.
Die Logic um die es geht umzusetzen, ist nur das eine ... usability kann aber kosten... Ciao ...
|
zettberlin
Anmeldungsdatum: 23. Oktober 2006
Beiträge: 623
Wohnort: Celle
|
RHBaum schrieb: Über kurz oder lang bestimmt. Aber wer Japanisch lernt, wird wohl vernünftiger Weise auch erst mal einfache Sätze wie "Wie komme ich zum Bahnhof" formulieren lernen und dann, viel später vielleicht, sein erstes Haiku schreiben
Ja aber um erst mal generell ins Sprachen lernen reinzukommen, sollte er dann erst mal mit russisch anfangen?
Ich würde eher sagen: wer mal Haikus schreiben will, sollte erst mal Hiragana/Katakana lernen. Meine Tochter hat damit in 3-4 Monaten gelernt, wie man eine komplexe Sprache nur mit Silbenzeichen schreiben kann. Für die Kanjis wird sie sicher noch ein paar Jährchen brauchen aber einen Anfang hat sie schon 😉 An der Basis unterscheiden sich Programmiersprachen nicht sooo radikal. Und ich denke, es ist sehr sinnvoll, eine einfache Sprache zu kennen, bevor man ein größeres Werkzeug zur Hand nimmt. Zum Verständnis allgemeingültiger Prinzipien kann es schon die Erleuchtung bringen, wenn jemand an Python sieht, dass eine Sprache auch einen Befehl ausführen kann, wenn man kein Semikolon dahinter setzt 😉
Wo doch feststeht das japanisch "rauskommen" soll ?
Dein vergleich hinkt von der Tatsache her, das sich Japanisch / Haiku eher zueinander verhält wie klassische OOP C++ Programmierung (Polymorphie) zu generischer Programmierung (Templates).
Sicher ist C/C++ schwieriger als "einsteigerfreundlicherer"e Sprachen, Aber ich wuerd nen C++ Einsteiger scho zutrauen, innerhalb von paar Tagen sein erstes Konsolenprogramm zu schreiben.
Das ist schon richtig und wer jung, hungrig und aufnahmebereit genug ist, kommt damit auch wahrscheinlich schneller ans Ziel... Aber die Kurve ist steiler – muss jeder selbst wissen...
Ne template basierte Object/funktionsbibliothek, dafuer wuerde er sicher noch paar Jaehrchen lernen muessen. Ob er sowas jemals braucht, sei eh auch dahingestellt. Was sind denn die Gemeinsamkeiten ?
Kontrollstrukturen, Datentypen (sofern vorhanden) Operatoren ... bei speicherManagment hoerts meist schon auf.
Das Speichermanagement ist in der Tat die Sache, die man dann einfach lernen muss – wohl dem, der Kontrollstrukturen und die anderen Basics dann schon locker drauf hat 😉
Das lernt er durch scriptsprachen ned sooo viel schneller. Der "wahre" vorteil, ne andere Sprache zuerst zu lernen, ist das man bei C/C++ grad fuers Programmieren an sich (automatisierung) meist noch ne Scriptsprache koennen sollte. Am Ende muss er selber wissen, was am Ende bei rauskommen sollte. Und sollte sich danach richten.
I will nur mit sagen, das "Ich will programmieren lernen" genau so generisch ist, wie "Ich will fliegen lernen".
Will er Hubschrauberpilot werden, machts kaum sinn erst mal mit Sprüngen vom 10 Meter Turm im freibad anzufangen ☺
Also: welche Programmiersprache kann denn meine 3d-DSP-Akustiksuite am besten?
Leider ist Dein Beispiel zu praxisnah ☺
Du schreibst nur grob, was eine Suite koennen muss.
Solche groben Vorstellungen sind aber genau das, was Leute dazu bringt, in die Programmiererei einzusteigen: "Ich hätte gerne ein Programm, das so und so macht..."
Aber die eigentlichen punkte, die fuer die Software-Entwicklung wichtig sind, und sich auf die Wahl der Sprache draufschlagen, die sind nicht spezifiziert.
- Kosten / Zeitrahmen ?
- UserInterface / Handling ? Gibt es Prototypen ?
- Reaktionszeiten ....
- Plattformunabhaengigkeit
- Erweiterbarkeit
- Wie wird das teil hinterher gepflegt ? Gibt es "Folge-Aufträge" Ich könnte dir sicher ne App in Visual Basic, Java, und ne App in C/C++ schreiben, Die wuerden sich aber komplett anders "anfuehlen".
Die entwicklungszeiten wären komplett anders, und auch der Preis.
Ich habe absichtlich ein absurd schwieriges Projekt als Beispiel genommen. Das, was es am Markt in diesem Bereich gibt, ist kaum bezahlbar teuer und wird gerne mit dedizierter Hardware gebundeled angeboten.
Unabhaengig das ich von Akkustik maximal Schulwissen habe ^^ Ob das logisch/technisch machbar ist, könnte ich dir also nicht sofort garantieren.
Machbar ist alles. Aber auf freier Basis würde so ein Projekt vielleicht 10 Jahre brauchen(bezahlte Programmierer würden es vielleicht in der Hälfte schaffen...). Und zwar auch, wenn von Anfang an erfahrene Programmierer an Bord sind. Und wie Du ganz richtig bemerkst, müsste noch das Fachwissen in Sachen Akustik/Physik dazukommen – wenns geht wenigstens auf Doktorgrad-Niveau... Worauf ich hinaus will: viele sind enthusiastisch und wollen einsteigen, um selbst was beizutragen. Je mehr Geschwindigkeit die Leute dann vorlegen wollen, desdo wahrscheinlicher ist es, dass sie nach ein paar Monaten frustriert aufgeben, weil sie eben über den Taschenrechner nicht hinausgekommen sind.
Die Logic um die es geht umzusetzen, ist nur das eine ... usability kann aber kosten... Ciao ...
|
Kinch
Anmeldungsdatum: 6. Oktober 2007
Beiträge: 1261
|
An der Basis unterscheiden sich Programmiersprachen nicht sooo radikal.
Sie unterscheiden sich sogar kaum. Zumindest wenn man die grundlegenden Paradigmen schon kennt, sind viele der Unterschiede nur syntaktischer Natur. Das ist natürlich etwas vereinfacht. Aber Programmiersprachen sind diesbezüglich kaum mit menschlichen Sprachen vergleichbar. Wenn ich einen Satz, also eine Semantik, denken kann, brauche ich für menschliche Sprachen eine Menge an Vokabular, komplexe grammatikalische Regeln, Kontextwissen und so weiter. Programmiersprachen sind im Vergleich dazu nahe zu primitiv. Programmieren zu können, heißt die Semantik des Programmes denken zu können. Das dann in einer Sprache auszudrücken, ist einfach. Aus dem Grund heißt Programmieren zu lernen auch nicht eine Programmiersprache zu lernen, sondern es heißt, auf eine spezifische Art Denken zu lernen. Meiner Meinung nach, unterscheidet sich darin auch ein guter von einem mäßigen Programmierer. Ein guter Programmierer sieht über die Sprache hinweg; ein mäßiger kann meistens nur eine Sprache und kann auch nur in dieser denken. Wie auch immer: Schön zu sehen, dass das Thema hier offensichtlich nie ausdiskutiert ist. zettberlin Ich würde eher sagen: wer mal Haikus schreiben will, sollte erst mal Hiragana/Katakana lernen.
Das erste was er lernen sollte ist, sich seiner Umgebung bewusst zu sein und das zweite ist, sich selbst bewusst zu sein. Wenn er sich dann dafür entscheidet, beides in der lyrischen Form des Haikus auszudrücken, braucht er nur irgendeine Art um die Siblen darzustellen. Ob das Hiragana oder Katakana oder etwas anderes ist, spielt keine weitere Rolle.
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
Kinch schrieb: An der Basis unterscheiden sich Programmiersprachen nicht sooo radikal.
Sie unterscheiden sich sogar kaum.
Falsch! Sprachen unterscheiden sich sogar fundamental! Die Paradigmen können sehr unterschiedlich sein und manche schließen sich sogar gegenseitig aus!
Aus dem Grund heißt Programmieren zu lernen auch nicht eine Programmiersprache zu lernen, sondern es heißt, auf eine spezifische Art Denken zu lernen.
Das wiederum stimmt und ist tatsächlich wichtig. Allerdings zieht das bei einem Einsteiger nur bedingt, denn in der Grundschule lernt man Mathe auch nicht per Axiomen und Gesetzen... 😉
|
Kinch
Anmeldungsdatum: 6. Oktober 2007
Beiträge: 1261
|
Lysander Sie unterscheiden sich sogar kaum.
Falsch! Sprachen unterscheiden sich sogar fundamental! Die Paradigmen können sehr unterschiedlich sein und manche schließen sich sogar gegenseitig aus!
Na ja, wenn die Paradigmen der Sprache gleich sind unterscheiden sie sich eben nicht mehr so sehr. Schau dir doch mal zum Beispiel C++, Ruby, Python und Java an. Kannst du eine, kannst du alle. Die Sprachen unterscheiden sich zwar hinsichtlich ihrer Konsistenz, ihrer Ausdrucksstärke und Syntax, aber sonst kaum. Du findest kaum eine Programmiersprache, für die du nicht eine Menge andere Sprachen findest, die sehr ähnlich sind (von esoterischen mal abgesehen). Es gibt natürlich auch Sprachen, die sich von denen die man bisher kannte, deutlich unterscheiden. Als ich anfing Common Lisp zu lernen, fand ich die Sprache schon recht schwer, da sie sich in sehr vielen Dingen von anderen Sprachen unterschied. Die Objektorientierung zum Beispiel ist völlig anders Umgesetzt, als bei der klassenbasierten Objektorientierung oder der prototypischen. Am das Grundprinzip ist dennoch das gleiche: Du willst nur ein paar Methoden und eine Datenstruktur verheiraten. Und sobald du weißt, wie man das in CL ausdrückt, kannst du dort genauso objektorientiert programmieren, wie du es von anderen Sprachen her gewohnt bist.
Allerdings zieht das bei einem Einsteiger nur bedingt, denn in der Grundschule lernt man Mathe auch nicht per Axiomen und Gesetzen... 😉
Also mir fällt ehrlich gesagt kaum eine Sprache ein, die als Einsteigersprache nicht geeignet wäre. Außer C++ vielleicht.
|
RHBaum
Anmeldungsdatum: 27. November 2008
Beiträge: 74
|
Solche groben Vorstellungen sind aber genau das, was Leute dazu bringt, in die Programmiererei einzusteigen: "Ich hätte gerne ein Programm, das so und so macht..."
Jein. Das wissen wir ja nicht, und genau diese Informationen fehlen uns um konkret zugeschnittene Vorschlaege zu machen.
Er kann genau so nur Intresse am Programmieren haben ... stellt sich die Frage ob es Hobby bleiben soll oder nicht ... u.v.a.m. Und zu C/C++ so schwer find ich es wiederum auch nicht, also gänzlich ungeeignet isses nicht fuer Einsteiger.
Der Einstieg iss kleinwenig schwerer, es kommen Compiler-Themen hinzu (Jede IDE versucht dir das abzunehmen, es klappt aber eher schlecht als recht)
Aber dafür ist die Flexibilität nach "hinten raus" unerreicht. - Wenn er nachm "Grundkurs" nicht weiter will ... bleibt er halt bei Standard C++ und programmiert mit Bibliotheken ala QT etc. QT Programmierung (unter C++ !) ist von Java, Python, Perl .... Programmierung ja nu ned soweit entfernt. Wenn er weiterlernen will, stehen Ihm noch komplexere Themen zur verfuegung: - generische Programmierung (Templates) - C und Binaer-Kompatiblitaets Themen (Plugin Konzepte, Eine Scriptsprache mit C/C++ erweitern, Eigene C/C++ Programm Scripting faehig machen) - Treiberprogrammierung - Performance Themen, mit Hintergrund von diversen Grafik Bibliotheken (Bsp. SpieleProgrammierng, also grafisch etwas aufwendigere) Bei Interpretierten Sprachen ist nachm Grundkurs nimmer so viel, was sprachspezifisch ist.
Er kann sich mit anderen Themenbezogenen Biblios beschaeftigen ...
Er kann sich mit Design-Themen beschaeftigen (design Patterns) Und noch ein Riesen Vorteil, wenn man in C/C++ einmal sattelfest ist: Alle anderen gängigen Scriptsprachen, sofern sie nicht zu exotisch sind, zu "lernen" ist nur noch Peanuts.
Komplizierte Dinge wuerde man eh sowieso weiter in C/C++ machen ^^ Ciao ...
|
Kinch
Anmeldungsdatum: 6. Oktober 2007
Beiträge: 1261
|
RHBaum schrieb: Und zu C/C++ so schwer find ich es wiederum auch nicht, also gänzlich ungeeignet isses nicht fuer Einsteiger.
Findest du? C++ liefert absolut viele Probleme, die nichts mit dem eigentlichen Programmieren zu tun haben, und deswegen beim Lernen des Programmierens nur im Weg stehen. Abgesehen davon ist sie schwer zu lesen und zu schreiben, weil sie einfach viel zu viel „visual-noise” hat; von den ganzen Inkonsistenzen oder semantischen Uneindeutigkeiten ganz zu schweigen. Für Anfänger vielleicht am schlimmsten, sind die katastrophalen Fehlermeldungen, die C++-Kompiler auspucken. Eine Bitte mal, schau dir die Code-Zeile an: inline double* operator[](size_t i) { return data + size * i; }; Und dann die Fehlermeldung:
src_cpp/yaafe-core/Buffer.h:85:28: Fehler: Deklaration von »operator[]« als Nicht-Funktion
src_cpp/yaafe-core/Buffer.h:85:26: Fehler: »;« am Ende von Elementdeklaration erwartet
src_cpp/yaafe-core/Buffer.h:85:35: Fehler: expected »)« before »i« gefolgt von noch einigen dutzend Zeilen immer kryptisch werdender Fehlermeldungen. Und jetzt verrate mir mal, was der Fehler war? Wenn du es nicht zufällig weißt, was das beim gcc zu bedeuten hat, hast du keine Chance das herauszufinden.
Und noch ein Riesen Vorteil, wenn man in C/C++ einmal sattelfest ist: Alle anderen gängigen Scriptsprachen, sofern sie nicht zu exotisch sind, zu "lernen" ist nur noch Peanuts.
Wenn man eine Scriptsprache kann, kann man die meisten anderen auch leicht lernen. Das ist nicht wirklich ein Vorteil. Also ehrlich gesagt, ist C++ die einzige Sprache bei der ich beim Programmierenlernen definitiv abraten würden.
|
DasIch
Anmeldungsdatum: 2. November 2005
Beiträge: 1130
|
RHBaum schrieb: Und zu C/C++ so schwer find ich es wiederum auch nicht, also gänzlich ungeeignet isses nicht fuer Einsteiger.
Der Einstieg iss kleinwenig schwerer, es kommen Compiler-Themen hinzu (Jede IDE versucht dir das abzunehmen, es klappt aber eher schlecht als recht)
Aber dafür ist die Flexibilität nach "hinten raus" unerreicht.
C ist einfach. C++ ist extrem kompliziert, dass du was anderes behauptest sagt mehr über deine C++ Kenntnisse aus als über die Sprache. Desweiteren sind die Sprachen nur wirklich flexibel wenn es um Performance geht aber für die meisten Anwendungen braucht man die ohnehin nicht.
- Wenn er nachm "Grundkurs" nicht weiter will ... bleibt er halt bei Standard C++ und programmiert mit Bibliotheken ala QT etc. QT Programmierung (unter C++ !) ist von Java, Python, Perl .... Programmierung ja nu ned soweit entfernt.
Es ist sehr weit davon entfernt. Was in Java elegant ist, ist in Python üblicherweise katastrophal. Java ist ohnehin sehr eingeschränkt im Gegensatz zu C++, was sich ebenfalls darauf auswirkt wie idiomatischer Code in beiden Sprachen aussieht.
Wenn er weiterlernen will, stehen Ihm noch komplexere Themen zur verfuegung: - generische Programmierung (Templates)
In dynamischen Sprachen oder Sprachen mit einem brauchbaren Typsystem wäre dies gar kein komplexes Thema.
- Treiberprogrammierung
Absolut uninteressant für die allermeisten Leute, mal abgesehen davon dass man dazu eventuell Hardware debuggen können sollte...
- Performance Themen, mit Hintergrund von diversen Grafik Bibliotheken (Bsp. SpieleProgrammierng, also grafisch etwas aufwendigere)
Das kann man auch mit Javascript und WebGL machen.
Bei Interpretierten Sprachen ist nachm Grundkurs nimmer so viel, was sprachspezifisch ist.
Bei Python könnte man sich mit Metaklassen, AST Manipulation und Bytecode Generation beschäftigen.
Er kann sich mit Design-Themen beschaeftigen (design Patterns)
Das macht man wenn man ein Problem hat dass man damit löst, nicht weil man gerade Langeweile hat.
Und noch ein Riesen Vorteil, wenn man in C/C++ einmal sattelfest ist: Alle anderen gängigen Scriptsprachen, sofern sie nicht zu exotisch sind, zu "lernen" ist nur noch Peanuts.
Exotisch ist also alles was nicht prozedural ist und nicht den seltsamen OOP Flavor von C++ hat? Ich nehme also mal an dass Scheme, Clojure, Prolog, Factor, Erlang und Javascript darunter fallen.
|
snafu1
Anmeldungsdatum: 5. September 2007
Beiträge: 2129
Wohnort: Gelsenkirchen
|
Mal davon ab, dass sich der TE leider gar nicht mehr gemeldet hat und weil er auch nicht unbedingt wie ein "Ober-Nerd" klang, würde ich insbesondere unter Linux/Ubuntu bei solchen allgemeinen Anfragen a la "Ich möchte Programmieren lernen" grundsätzlich am ehesten zu Python raten (uff, Satz zuende. ^^). Das eignet sich IMHO ideal sowohl für "Hobby-Programmierung" als auch für vollwertige Programme (mir fiel kein besserer Ausdruck ein) und Bibliotheken. Man lernt Konzepte, welche man in einem Großteil der anderen Programmiersprachen wiederfinden wird. Die Lernkurve selbst ist ziemlich steil und nimmt aufgrund der vielen Anwendungsmöglichkeiten und vorhandenen Bibliotheken (seien es die standardmäßig enthaltenen oder auch die von bspw. PyPi) auch nicht wirklich ab. Was natürlich nicht heißen soll, dass die vielen Bibliotheken ein Alleinstellungsmerkmal von Python wären. Ich wollte damit eigentlich nur sagen, dass Python seit Jahren schon eher zu den "Mainstream-Sprachen" gehört, zu denen man auch etliches an Material quer verstreut im Internet findet. Möchte man Programmierung später beruflich betreiben, wird man aber um eine statisch typisierte Sprache wohl nicht herum kommen. Für "Verwaltungskram" (Rechnungswesen, Personalabteilung, Kundendatenbank) wird häufig Java benutzt. In der Industrie wohl eher C oder irgendwelche angepassten Sprachen. C++ wahrscheinlich für Medienkram und sowas (jetzt nicht die Anwendung, sondern die Implementierung der Programme), wo's halt auf Performance und gleichzeitig hoher Abstraktion ankommt. Und daneben gibt es natürlich noch die ganzen "Neben-Sprachen", wie z.B. MySql für Datenbankabfragen oder ABAP für SAP-Umgebungen (bei größeren Firmen oft im kaufmännischen Bereich und zur Analyse von betrieblichen Abläufen genutzt). Oder einfach auch JavaScript/HTML für irgendwelche Web-Interfaces, falls nötig. Wenn man aber am Beispiel Python schon weiß, wie eine for -Schleife funktioniert oder was Objektorientierung bedeutet, dann hat man schon eine ziemlich gute Grundlage für das spätere Berufsleben. Es ist also insofern sicherlich keine Zeitverschwendung. 😉 Naja gut, wer Spass an systemnaher Programmierung hat, soll ruhig hobbymäßig C oder meinetwegen auch Assembler benutzen. Das ist allerdings meistens nicht das, was sich ein unbedarfter Anfänger unter dem Begriff "Programmierung" vorgestellt hätte. Da ist aufgrund der Komplexität häufig schnell die Lust am Programmieren vergangen. Ob C oder C++ die einzig "wahre" Art des Programmierens darstellen, möchte ich doch mal arg infrage stellen... Sorry übrigens für die teils komischen Formulierungen. Bin von gestern noch etwas "angeschlagen"... ;P
|
thaub
Anmeldungsdatum: 26. Oktober 2007
Beiträge: 150
|
snafu1 schrieb: ... grundsätzlich am ehesten zu Python raten (uff, Satz zuende. ^^). Das eignet sich IMHO ideal sowohl für "Hobby-Programmierung" als auch für vollwertige Programme (mir fiel kein besserer Ausdruck ein) und Bibliotheken. ...
Kann dem nur Zustimmen. Ich bin KEIN Programmierer, sondern jemand, der an raschen Ergebnissen interssiert ist sowie viele kleine Programme (10-500 Zeilen) und kein großes schreibt. Nach langer Geschichte (FORTRAN, PASCAL, C, C++, Pearl, AWK, ...) habe ich mit Python gefunden, was ich benötige. Die Vorteile wurden alle schon aufgezählt. Entscheidend für mich: a) Einfache Syntax, rasch lernbar, sehr übersichtlicher Code b) Interaktiver Interpreter verfügbar: man kann schnell was ausprobieren c) Man muss nicht objektorientiert programmieren (was für kleinere Sachen oft zu mühsam ist), aber man kann d) Für fast jedes Problem existieren umfangreiche und gut gepflegte freie Bibliotheken Sehr hilfreich bzw. fast schon notwendig für jeden, der unter Linux programmiert sind allerdings Kenntnise in der bash. Das sollte man berücksichtigen. Von C/C++ würde ich überhaupt abraten, wenn es nicht beruflich notwendig ist. In kaum einer anderen Sprache kann man so hinterhältig subtile Fehler einbauen. Ich wurde damit nie warm!
|