Welche Sprache fuer den Anfang?
Welche Sprache fuer den Anfang?
Hallo alle
Ich habe mich "entschlossen" eine neue/weitere Programmiersprache erlernen zu wollen, allerdings kann ich mich nicht entscheiden, welche.
Ein paar Sachen vorweg: Ich habe frueher (ist ewigkeiten her, war damals 9, meine erste Programmiersprache, wenn man es so nennen darf) Turbo Pascal gelernt. Ansonsten sind mir msl (mIRC scripting language), nsis (Nullsoft scriptable install system), html (eigentlich keine Programmiersprache) und php (ich finds toll, koennt ihr sagen, was ihr wollt (: ) gelaeufig.
Die grundlegenden Logiken von Programmiersprachen (Schleifen, Variablen, Operatoren, Arrays und Klassen) sind mir (groesstenteils aus PHP) bekannt.
Die Sprache ist _nicht_ auf ein bestimmtes Projekt bezogen (wenn jemand Vorschlaege hat, immer her damit. PHP hab ich z.B. fuer eine bestimmte Homepage gelernt.). Im Prinzip suche ich eine Sprache, mit der ich auch in Zukunft etwas sinnvolles anstellen kann.
Wichtig sind mir eigentlich folgende Aspekte:
- verbreitet
- viele & gute Ressourcen im Netz (eine gute Dokumentation der Sprache wuerde mir auch genuegen)
- aktuell
- praktisch
- universell einsetzbar
In betracht ziehe ich momentan Python, C, Assembler und Perl.
Mir ist bewusst, dass es keine perfekte Programmiersprache gibt, ich kann mich trotzdem nicht entscheiden.
Assembler reizt mich (dicht gefolgt von C) am meisten, weil ich das abstrakte Denken als herausforderung sehe, der ich mich gerne stellen moechte. Allerdings stellt sich mir da die Frage, ob Assembler in Zeiten der Dualcore-CPU und der 64Bit-Systeme noch eine Rolle spielt.
Alles zusammengefasst:
Welche Sprache wuerdet ihr mir (einem Programmieranfaenger mit ein paar Grundkenntnissen) empfehlen und warum?
Danke schonmal, wenn ihr euch das durchlest und eventuell auch ein paar Zeilen dazu schreibt. Ich kann mir vorstellen, dass ihr schonmal in der selben Situation wart und es nicht kompakt in Worte fassen konntet (:.
mfG,
snoggo
Ich habe mich "entschlossen" eine neue/weitere Programmiersprache erlernen zu wollen, allerdings kann ich mich nicht entscheiden, welche.
Ein paar Sachen vorweg: Ich habe frueher (ist ewigkeiten her, war damals 9, meine erste Programmiersprache, wenn man es so nennen darf) Turbo Pascal gelernt. Ansonsten sind mir msl (mIRC scripting language), nsis (Nullsoft scriptable install system), html (eigentlich keine Programmiersprache) und php (ich finds toll, koennt ihr sagen, was ihr wollt (: ) gelaeufig.
Die grundlegenden Logiken von Programmiersprachen (Schleifen, Variablen, Operatoren, Arrays und Klassen) sind mir (groesstenteils aus PHP) bekannt.
Die Sprache ist _nicht_ auf ein bestimmtes Projekt bezogen (wenn jemand Vorschlaege hat, immer her damit. PHP hab ich z.B. fuer eine bestimmte Homepage gelernt.). Im Prinzip suche ich eine Sprache, mit der ich auch in Zukunft etwas sinnvolles anstellen kann.
Wichtig sind mir eigentlich folgende Aspekte:
- verbreitet
- viele & gute Ressourcen im Netz (eine gute Dokumentation der Sprache wuerde mir auch genuegen)
- aktuell
- praktisch
- universell einsetzbar
In betracht ziehe ich momentan Python, C, Assembler und Perl.
Mir ist bewusst, dass es keine perfekte Programmiersprache gibt, ich kann mich trotzdem nicht entscheiden.
Assembler reizt mich (dicht gefolgt von C) am meisten, weil ich das abstrakte Denken als herausforderung sehe, der ich mich gerne stellen moechte. Allerdings stellt sich mir da die Frage, ob Assembler in Zeiten der Dualcore-CPU und der 64Bit-Systeme noch eine Rolle spielt.
Alles zusammengefasst:
Welche Sprache wuerdet ihr mir (einem Programmieranfaenger mit ein paar Grundkenntnissen) empfehlen und warum?
Danke schonmal, wenn ihr euch das durchlest und eventuell auch ein paar Zeilen dazu schreibt. Ich kann mir vorstellen, dass ihr schonmal in der selben Situation wart und es nicht kompakt in Worte fassen konntet (:.
mfG,
snoggo
bofh-excuse of the moment:
Omg, schon wieder so ein Thread... Ich kann dir den Schnitt der Antworten schonmal vorwegnehmen: Es werden etwa 7 Sprachen empfohlen, wobei Einzelne auf die Vorzüge ihrer Sprache beharren, andere total irrelavante Argumente angeben und das ganze hochgradig subjektiv ist.
Na ok, mache ich mal den Anfang: Java
subjektive Gründe: Sehr viel Doku (selbst ganze Bücher sind kostenlos zu haben), universell (läuft von embedded Systems bis Mainframes auf fast jeder Plattform), es stehen konkurrenzlose, kostenlose IDEs zur Verfügung (ich finde Eclipse genial), die Sprache wird aktiv entwickelt (bald kommt Java 1.6, Beta2 ist es schon) und sowieso ist es eine sehr schöne Sprache.
Irrelevante Argumente: die größten Firmen (IBM, Sun Microsystems, BEA, ...) benutzen sie
Naja, reicht erstmal.
cu
Na ok, mache ich mal den Anfang: Java
subjektive Gründe: Sehr viel Doku (selbst ganze Bücher sind kostenlos zu haben), universell (läuft von embedded Systems bis Mainframes auf fast jeder Plattform), es stehen konkurrenzlose, kostenlose IDEs zur Verfügung (ich finde Eclipse genial), die Sprache wird aktiv entwickelt (bald kommt Java 1.6, Beta2 ist es schon) und sowieso ist es eine sehr schöne Sprache.
Irrelevante Argumente: die größten Firmen (IBM, Sun Microsystems, BEA, ...) benutzen sie
Naja, reicht erstmal.
cu
Ich muss dir natürlich recht geben, das Java eine sehr interessante und oft benutze Sprache ist.niemand hat geschrieben: Na ok, mache ich mal den Anfang: Java
Nur zum Lernen als Einstieg wohl ein wenig kompliziert und schwer, denke ich.
Zum Lernen und als Einstieg ist glaube ich perl ganz gut geeignet. Zudem ist perl auch sehr vielseitig einsetzbar (z.B. für die web-programmierung).
Oh, yeah!
Ich würde dir C empfehlen. Die Mutter aller Programmiersprachen, wenn du die kannst, dann ist es auch einfacher andere zu lernen.
Hier ist ein Buch für den Anfang:
http://courses.iicm.edu/the_c_book/Soft ... ungInC.pdf
http://courses.iicm.edu/the_c_book/Soft ... Errata.pdf
Hier ist ein Buch für den Anfang:
http://courses.iicm.edu/the_c_book/Soft ... ungInC.pdf
http://courses.iicm.edu/the_c_book/Soft ... Errata.pdf
Das erste Buch hab ich (glaube ich jedenfalls) gefunden:
dollywood.itp.tuwien.ac.at/~edv2/Manuals/schmaranz.pdf
Nach dem zweiten habe ich noch nicht gesucht.
Ich werd mich an C probieren denke ich. Danke fuer die Entscheidungshilfen
@ niemand:
Java werde ich naechstes Halbjahr in der Schule lernen. Ich stells mir doof vor, wenn meine Klasse da Java lernt und ich da rumsitze und alles schon kann.
mfG
snoggo
dollywood.itp.tuwien.ac.at/~edv2/Manuals/schmaranz.pdf
Nach dem zweiten habe ich noch nicht gesucht.
Ich werd mich an C probieren denke ich. Danke fuer die Entscheidungshilfen
@ niemand:
Java werde ich naechstes Halbjahr in der Schule lernen. Ich stells mir doof vor, wenn meine Klasse da Java lernt und ich da rumsitze und alles schon kann.
mfG
snoggo
bofh-excuse of the moment:
ich schlage Deutsch vor!Welche Sprache fuer den Anfang?
deutschWichtig sind mir eigentlich folgende Aspekte:
- verbreitet
- viele & gute Ressourcen im Netz (eine gute Dokumentation der Sprache wuerde mir auch genuegen)
- aktuell
- praktisch
- universell einsetzbar
Zuletzt geändert von comes am 23.10.2006 20:19:37, insgesamt 1-mal geändert.
- deadeye
- Beiträge: 561
- Registriert: 14.04.2004 15:32:18
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Ukio, rechts hinterm Feld
-
Kontaktdaten:
Ich werde jetzt keine neue Sprache erwähnen, wobei ja Python noch gar nicht gefallen ist...kommt sicher noch.
Ich hacke zu 80% auch in C rum(Rest C++), macht relativ viel Spaß, wenn man es verstanden hat und Spaß an zeigern findet(->Übungssache). Es gibt da allerdings ein Aber, weil Du ja auch von Aktualität gesprochen hast:
Mache mal 1-2 Monate intensiv C, sodass Du die Sprache erstmal verstanden hast, und schwenke dann um zu C++.
Grund?
C ist funktional, nicht ibject-orientiert. Heutzutage ist Objekt-Orientierung das A und O(siehe Java, Python, Java ist mehrheitlich OO, Python sogar komplett). C++ ist IMO ganz gut, weit verbreitet und fast alle können es. Meiner Meinung nach sollte man nur vor C++ mal ein bißchen C geschrieben haben, weil einige Sachen doch ähnlich sind. Es gibt aber auch ne Menge Leute sagen, dass wäre totaler Quatsch und man solle direkt mit C++ anfangen. Im Endeffekt musst Du das für Dich selber rausfinden. Mein Rat, erst ein wenig C, dann direkt zu C++. Nur nicht zu viel C, sonst fällt der Umstieg zu schwer.
Und nochmal, das ist meine persönliche Meinung, basierend auf Erfahrung.
HTH,
deadeye
Ich hacke zu 80% auch in C rum(Rest C++), macht relativ viel Spaß, wenn man es verstanden hat und Spaß an zeigern findet(->Übungssache). Es gibt da allerdings ein Aber, weil Du ja auch von Aktualität gesprochen hast:
Mache mal 1-2 Monate intensiv C, sodass Du die Sprache erstmal verstanden hast, und schwenke dann um zu C++.
Grund?
C ist funktional, nicht ibject-orientiert. Heutzutage ist Objekt-Orientierung das A und O(siehe Java, Python, Java ist mehrheitlich OO, Python sogar komplett). C++ ist IMO ganz gut, weit verbreitet und fast alle können es. Meiner Meinung nach sollte man nur vor C++ mal ein bißchen C geschrieben haben, weil einige Sachen doch ähnlich sind. Es gibt aber auch ne Menge Leute sagen, dass wäre totaler Quatsch und man solle direkt mit C++ anfangen. Im Endeffekt musst Du das für Dich selber rausfinden. Mein Rat, erst ein wenig C, dann direkt zu C++. Nur nicht zu viel C, sonst fällt der Umstieg zu schwer.
Und nochmal, das ist meine persönliche Meinung, basierend auf Erfahrung.
HTH,
deadeye
Re: Welche Sprache fuer den Anfang?
Du hast gerade C++ beschrieben.snoggo hat geschrieben: Wichtig sind mir eigentlich folgende Aspekte:
- verbreitet
- viele & gute Ressourcen im Netz (eine gute Dokumentation der Sprache wuerde mir auch genuegen)
- aktuell
- praktisch
- universell einsetzbar
Außerdem kann man mit C++-Kenntnissen leichter C und Java lernen.
Das kann ich so einfach nicht stehen lassen. Perl macht es zu einfach, absolut unsauberen Code zu schreiben, während das bei Java schon recht wirkungsvoll unterbunden wird. Dazu kommt, dass ein Großteil der Funktionalität in Perl durch die Module des CPAN realisiert wird, und die sind nicht sonderlich konsistent, was schon alleine die Schnittstellen angeht. In Java wird ein Großteil der Funktionalität vom Hersteller mitgeliefert, das Ganze ist zentral dokumentiert und auf hohem Niveau in die Sprache integriert. Und was Webprogrammierung angeht: Nachdem einige Zeit in Perl, und danach mehrere Jahre in PHP entwickelt habe, versuche ich jetzt wo es nur geht, Java einzusetzen.Nur zum Lernen als Einstieg wohl ein wenig kompliziert und schwer, denke ich.
Zum Lernen und als Einstieg ist glaube ich perl ganz gut geeignet. Zudem ist perl auch sehr vielseitig einsetzbar (z.B. für die web-programmierung).
Das ist eine seltsame Einstellung. Einerseits arbeite ich schon länger und sehr gerne mit Java und "kann" immer noch nicht alles, andererseits ist das Lernen eher der unproduktive Teil. Erst wenn man einigermaßen sicher ist, macht es so richtig Spaß und man schafft was. Wenn die anderen dann mit AWT kämpfen, könntest du dann in der Zeit schön in Ruhe an deinen Programmen arbeiten. Zumindest mir hat es damals immer 15 Punkte und mehr Zeit am Abend gebracht, weil ich meine Arbeiten an meinen Programmen schon in der Schule erledigt habe.Java werde ich naechstes Halbjahr in der Schule lernen. Ich stells mir doof vor, wenn meine Klasse da Java lernt und ich da rumsitze und alles schon kann.
Jedenfalls entspricht C nicht einmal zur Hälfte den von dir genannten Anforderungen (meine Meinung)
cu
Ich würde dir C++ empfehlen. Zur Begründung: Syntaxmäßig ist es wirklich sehr sehr ähnlich zu C, sprich viele Konzepte aus C kannst du eigentlich, wenn du C++ kannst. C++ hat einige sehr knifflige Dinge eingebaut, was in Java nicht geht, als Beispiel nenne ich hier einfach mal die Mehrfachvererbung, von daher fällt es dir sicher leichter Java zu lernen, wenn du C++ kannst.
C++ ist auch weit verbreitet.
Aber es gibt noch mehr Gründe die für C++ sprechen, aber na ja, frag was bestimmtes.
Henk
C++ ist auch weit verbreitet.
Aber es gibt noch mehr Gründe die für C++ sprechen, aber na ja, frag was bestimmtes.
Henk
- finupsen
- Beiträge: 1327
- Registriert: 21.04.2004 20:07:05
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
... stimmt , mehrfachvererbung sorgt für eine bessere übersicht, vor allem wenn alle objekteHenk84 hat geschrieben: ..... C++ hat einige sehr knifflige Dinge eingebaut, was in Java nicht geht,
als Beispiel nenne ich hier einfach mal die Mehrfachvererbung, .....
von allen erben. Da sind interfaces, was die übersicht betrifft, eher hinderlich
Hi,snoggo hat geschrieben:Das erste Buch hab ich (glaube ich jedenfalls) gefunden:
dollywood.itp.tuwien.ac.at/~edv2/Manuals/schmaranz.pdf
Nach dem zweiten habe ich noch nicht gesucht.
.............
mfG
snoggo
hatte den Verfasser dieses Buches als Vortragenden an meiner UNI......kann die Bücher nur empfehlen.
Ansonsten würde ich mit C einsteigen, dann recht schnell auf C++ umsatteln und dann java, perl, python (was dir halt gefällt)
lg
PS: Habe sie noch irgendwo zuhause. Wenn du mir eine PN postest mit deiner email Adresse köönte ich sie dir zuschicken.
"It's better to be free", said the penguin after he left the aquarium!
Ich habe sowohl das C- als auch das C++-Buch von ihm ausgedruckt und lese momentan das C++-Buch, ich muss sagen, dass es sehr klar geschrieben ist und ich relativ gut vorankomme.
Ich werde heute zum zweiten mal den Low-Level-Teil lesen, um Unklarheiten zu beseitigen und mir eine Art Tabellen fuer Sachen wie die Reihenfolge der Operatoren oder die spezifischen Eigenschaften der Datentypen machen, um alles uebersichtlich zu haben. Stell ich mir durchaus praktisch vor .
Momentan versteh ich die (scheinbar sehr beliebten ) Pointer noch nicht so recht. Ich verstehe zwar, was sie sind, wofuer sie gut sind und was sie koennen, allerdings harperts bei Feinheiten wie dem *, also dessen genaue interne Funktion.
Sollte aber kein grosses Problem darstellen.
Nebenbei: Ich habe mich fuer C++ (anstatt C) entschieden, weil ich der Meinung bin, dass OO-Programmierung heutzutage eine extrem wichtige Rolle spielt und ich im Prinzip spaeter (wenn ich C++ halbwegs koennen sollte) immernoch relativ leicht C lernen kann.
Danke fuer die Tips und Empfehlungen!
(Mir war von Anfang an klar, dass einige von euch von solchen Fragen genervt sind, tut mir leid, dass ich nicht drum rum kam, sie trotzdem zu stellen.)
mfG
snoggo
Ich werde heute zum zweiten mal den Low-Level-Teil lesen, um Unklarheiten zu beseitigen und mir eine Art Tabellen fuer Sachen wie die Reihenfolge der Operatoren oder die spezifischen Eigenschaften der Datentypen machen, um alles uebersichtlich zu haben. Stell ich mir durchaus praktisch vor .
Momentan versteh ich die (scheinbar sehr beliebten ) Pointer noch nicht so recht. Ich verstehe zwar, was sie sind, wofuer sie gut sind und was sie koennen, allerdings harperts bei Feinheiten wie dem *, also dessen genaue interne Funktion.
Sollte aber kein grosses Problem darstellen.
Nebenbei: Ich habe mich fuer C++ (anstatt C) entschieden, weil ich der Meinung bin, dass OO-Programmierung heutzutage eine extrem wichtige Rolle spielt und ich im Prinzip spaeter (wenn ich C++ halbwegs koennen sollte) immernoch relativ leicht C lernen kann.
Danke fuer die Tips und Empfehlungen!
(Mir war von Anfang an klar, dass einige von euch von solchen Fragen genervt sind, tut mir leid, dass ich nicht drum rum kam, sie trotzdem zu stellen.)
mfG
snoggo
bofh-excuse of the moment:
Ich persönlich finde den Einstieg über C (nur um mal grundlegende Funktionen, Arrays(siehe Pointer/Arithmetik,...)) leichter, da mit C++ eigentlich nur mehr ein OOP-Stöpsel über den C-Code (Funktionen,etc.) gestülpt wird. Soll heissen wenn du wirklich tief reingraben willst (Driver, LowLevel) kommst du um Std. C nicht rum. Wennst es Hardcore haben willst kannst dich DANNACH auch noch mit ASM beschäftigen (würde zuerst mit µC ASM z.b. 8051 anfangen und dann dich erst mit NASM/MASM/TASM beschäftigen).snoggo hat geschrieben:.......Momentan versteh ich die (scheinbar sehr beliebten ) Pointer noch nicht so recht. Ich verstehe zwar, was sie sind, wofuer sie gut sind und was sie koennen, allerdings harperts bei Feinheiten wie dem *, also dessen genaue interne Funktion.
Sollte aber kein grosses Problem darstellen.
Nebenbei: Ich habe mich fuer C++ (anstatt C) entschieden, weil ich der Meinung bin, dass OO-Programmierung heutzutage eine extrem wichtige Rolle spielt und ich im Prinzip spaeter (wenn ich C++ halbwegs koennen sollte) immernoch relativ leicht C lernen kann.
lg
"It's better to be free", said the penguin after he left the aquarium!