Hallo, ich bin neu...



  • Man sollte sich daran von Anfang an gewöhnen. Aber mir doch auch egal, wie nennt man sowas in Deutschland? Bei uns in Österreich heißt das "I-Tüpferl-Reiter". Irgendwas mit kacken wars.



  • Ich will euch hier ja echt bei nix rein reden oder so aber eure Meinungsverschiedenheiten helfen mir ne wirklich weiter und machens echt verdammt schwer den Überblick über diesen Thread zu behalten und vor allen eure Antworten nach für mich wertvollen Infos zu filtern...

    Irgendwie müsste ich mich ja mal entscheiden für eine Sprache oder aber für soetwas wie phyton...das ist im Moment eigentlich das Hauptproblem welches mich beschäftigt...deswegen nochmal die Frage, wie fange ich am Besten an wenn ich bei Null stehe und keine Ahnung davon habe?



  • Letztendlich liegt die Entscheidung bei dir. Wenn du eine Sprache für den einfachen Einstieg haben möchtest, um dich danach der systemnahen Programmierung zu widmen, dann ist Python gut. Willst du direkt loslegen, dann kann ich dir C++ ans Herz legen.



  • Martin87 schrieb:

    Ich will euch hier ja echt bei nix rein reden oder so aber eure Meinungsverschiedenheiten helfen mir ne wirklich weiter und machens echt verdammt schwer den Überblick über diesen Thread zu behalten und vor allen eure Antworten nach für mich wertvollen Infos zu filtern...

    Irgendwie müsste ich mich ja mal entscheiden für eine Sprache oder aber für soetwas wie phyton...das ist im Moment eigentlich das Hauptproblem welches mich beschäftigt...deswegen nochmal die Frage, wie fange ich am Besten an wenn ich bei Null stehe und keine Ahnung davon habe?

    Ich fasse es mal kurz zusammen: Wenn du schnell und einfach ans Ziel kommen willst, dann nimm python oder ruby. Es ist von der Laufzeit her langsamer als C++, da aber 90% der Anwendung die meiste Zeit nur warten fällt es nicht auf. Es wird dir erst auffallen wenn du sehr viele Berechnungen durchführst.

    Wenn du aber performancekritisches Zeug programmieren willst, dann wirst du zu C++ greifen müssen ob du willst oder nicht. Aber sei dir bewusst: Wenn du C++ lernst, wirst du auch nach 2 Jahren programmieren angeschnauzt werden, dass du keine Ahnung hast und neu bist.

    Das Python tutorial kannst du locker in einer Woche durcharbeiten.

    Programmieren in C++ kann sehr umständlich sein. Das ist der Preis für die Performance.

    Wenn du in diesem Thread weiterliest, wirst du keine Tipps bekommen sondern, nur die Lieblingssprachen der Leute.

    Schnupper mal einfach sowohl in C++ als auch in python rein und bilde dir deine eigene Meinung.

    Meine Meinung ist: python.
    Grund: Einfachheit.
    bsp: python + soya3d (kostnelose 3D engine). Damit kannst du in 20 Zeilen code eine texturierte Landschaft erzeugen. Arbeit von 5 minuten.

    In C++ wirst du erstmal öfters auf die Nase fallen.



  • Es wurde ja nun schon viel gesagt, die Entscheidung liegt bei dir. Fang einfach an ;). Wenn du dich für C++ entscheidest, dann empfehle ich dir dieses Tutorial, bevor du dir ein dickes Buch kaufst. Das Tutorial ist relativ umfangreich und gut erklärt: http://www.cplusplus.com/doc/tutorial/



  • Martin87 schrieb:

    ...deswegen nochmal die Frage, wie fange ich am Besten an wenn ich bei Null stehe und keine Ahnung davon habe?

    Naja, das Zielgebiet ist ja in etwa beschrieben, leider nicht die Plattform, die einiges an Entscheidung erleichtert hätte. So gehe ich mal von einem Windows Pc mit 64 bit Windows 7 drauf aus.

    Also:
    - gutes tiefer gehendes Buch über Windows
    - Windowsprogrammierbuch von Charles Petzold http://www.charlespetzold.com/
    - Powershell "programmierung"
    - Win Api Doku
    - Windows SDK http://msdn.microsoft.com/de-de/windows/bb980924
    - sowas hier: http://www.microsoft.com/whdc/devtools/debugging/default.mspx
    - sowas auch: http://www.hex-rays.com/idapro/
    - auch ansehen: http://developer.nvidia.com/cuda-toolkit-40
    - auch ansehen: http://www.lowlevel.eu/wiki/Lowlevel:Portal
    - auch ansehe; http://www.acm.uiuc.edu/sigwin/old/workshops/winasmtut.pdf
    - Da der Editor im Visual-Studio ein wenige Kacke ist, ein alternativer Editor:
    (mir reichen notepad++ und der Open Watcom Vi, andere arbeiten lieber mit
    komplett anderen IDEs wie http://de.wikipedia.org/wiki/Code::Blocks oder http://de.wikipedia.org/wiki/Eclipse_(IDE) oder was immer.

    Vorschlag: Kenntnisse über Windows mit gutem Systembuch vertiefen, Powershell schrittweise lernen, und schrittweise den Einstieg in C++ mit diesem Tut erlernen:
    http://www.c-plusplus.net/tuts/cpp/vcppk.zip
    Leider ist die Synthax nicht die neueste, aber die kannst du dann gleich praktischerweise und übungsweise selbst anpassen. Falls es dabei Schwierigkeiten gibt, fragst du einfach nochmal im Forum.



  • Martin87 schrieb:

    Irgendwie müsste ich mich ja mal entscheiden für eine Sprache oder aber für soetwas wie phyton...das ist im Moment eigentlich das Hauptproblem welches mich beschäftigt...deswegen nochmal die Frage, wie fange ich am Besten an wenn ich bei Null stehe und keine Ahnung davon habe?

    Hi,

    die Entscheidung liegt ganz bei dir. Ich habe den Thread nur überflogen, aber du scheinst mehr darüber erfahren zu wollen, was so ein Programm intern macht. Natürlich wird dir da reflexmäßig C oder C++ empfohlen (was auch am Namen des Forums liegen kann). Aber da mit lernst du nur die Sprache, nichts über Prozessoren und Ram. Wenn du wirklich wissen willst, wie dein Prozessor tickt, musst du Assembler wählen, aber davon kann ich nur abraten. Ich vermute, dass du auch gar nicht so tief runter willst, sondern eher die Frage beantworten willst: Wie funktioniert ein Programm? Wie schreibt man das? Und das vermittelt dir jede Sprache.

    Python halte ich für eine gute Wahl, wenn du konkrete kleine Programmwünsche hast um deine tägliche Arbeit zu erleichtern. Dafür ist die Sprache einfach ideal, weil du direkt ausnutzen kannst, dass man in der Sprache vieles einfach elegant runter programmieren kann. Ein weiterer Vorteil ist, dass Python schon relativ abstrakte Sprachmittel enthält und damit ein Brückenstück zwischen den Standardsprachen wie C++ und Java und den Abstrakten Sprachen wie Haskell doer Lisp darstellt. Du kannst also mal in unterschiedliche Denkrichtungen der Programmierung rein schnuppern.

    Die Abstrakteren Sprachen haben den Vorteil, dass die Programme eine bestimmte Eleganz besitzen. Allerdings fällt es Leuten, die mit C/C++/ähnliche angefangen haben, schwer umzusteigen. umgekehrt fühlen sich die Leute, die von so einer Abstrakten Sprache kommen in C/C++ unwohl, weil das alles so unelegant und nervig ist(ich gehöre zu ersterer Fraktion, ein Kollege von mir in letztere und wenn wir zusammen arbeiten gibt das immer nur Zoff :D). Über kurz oder lang solltest du eh mal beides ausprobieren, denn die Denkweisen sind grundsätzlich unterschiedlich in ihrer Ansicht, was ein Programm ist und wie es programmiert wird.

    Wie gesagt, entscheiden musst du. Keine Sprache ist falsch. Und der Einstieg ist immer schwer. Wichtig ist meiner Ansicht nur, dass du gutes Lehrmaterial hast und motiviert bei der Sache ist. Ausserdem wäre ein Ziel ("ich möchte X programmieren") nicht schlecht. Die Wahrscheinlichkeit, dass du es nie umsetzen wirst ist zwar groß, aber es treibt dich an ;).

    Bei den Lehrmaterialien können wir dir sicherlich helfen, die Entscheidung der Sprache musst allerdings du treffen.

    tl;dr: Such dir eine x-beliebige Sprache aus die irgendwo im Produktiveinsatz ist. Du machst nichts falsch. Einen Blick Wert und für Anfänger (mehr oder weniger) geeignet sind:

    C++
    Java
    Haskell
    Python

    Schau dir einfach Tutorials für all diese Sprachen an, programmiere mal das ein oder andere nach und entscheide dann, wo du tiefer einsteigen willst. Das ist alles mehr eine Sache des Geschmacks und alle Sprachen haben irhe eigenen Vor- und Nachteile



  • otze schrieb:

    Die Abstrakteren Sprachen haben den Vorteil, dass die Programme eine bestimmte Eleganz besitzen.

    Was kann man denn in Python z.B. eleganter lösen, als in C++?
    (Das ist eine ernst gemeinte Frage, ich kann Python nur bruchstückhaft.)

    otze schrieb:

    C++
    Java
    Haskell
    Python

    Warum wird C hier immer weggelassen? Ich halte C für eine wirklich schöne Anfängersprache, man hat kaum neue Konzepte die man trocken lernen muss und kann sich gleich auf die Basis konzentrieren. (Compiler, Variablen, Arrays, Schleifen, Funktionen. (Viel mehr kann C halt auch nicht. :D))
    Ich bin noch jung und auch kein Lehrer oder etwas in der Art, aber bei allen Technik interessierten Bekannten, also solchen, die freiwillig eine Programmiersprache lernen, habe ich mit C nur gute Erfahrungen gemacht.

    otze schrieb:

    Aber da mit lernst du nur die Sprache, nichts über Prozessoren und Ram.

    Das sehe ich anders, man lernt viel über den generellen Aufbau von Maschinencode, wenn auch nur indirekt. Stack, Heap, Pointer, Programmablauf, Ganzzahl/Gleitkommazahl-Arithmetik, Funktionen/Parameter/Rückgabewerte, ... - und das alles sozusagen im Vorbeigehen! Natürlich kann man danach nicht gleich Assembler, aber das sind alles so Dinge, für die man ein gutes Gefühl bekommt.



  • cooky451 schrieb:

    Warum wird C hier immer weggelassen? Ich halte C für eine wirklich schöne Anfängersprache, man hat kaum neue Konzepte die man trocken lernen muss und kann sich gleich auf die Basis konzentrieren. (Compiler, Variablen, Arrays, Schleifen, Funktionen.

    In C muss man sich um alles selbst kümmern. Wenn man an Low-Level-Programmierung interessiert ist oder sogar vorhat, was in der Richtung zu tun, ist C eine gute Idee.

    Ansonsten würde ich persönlich C nicht für grössere Projekte verwenden, weil einem etliche Abstraktionsmechanismen fehlen. Generell werden Paradigmen wie OOP weniger gut unterstützt als z.B. in Java oder C++. Die Frage ist, will man eine Sprache nur zu Lernzwecken anschauen? Ich hätte jedenfalls mehr Motivation mit dem Wissen, dass ich nach dem Gelernten auch was Sinnvolles damit programmieren kann. Und falls man z.B. ohnehin vorhat, sich anschliessend C++ anzuschauen, ist der direkte Weg normalerweise sinnvoller, da man sich keine Dinge beibringt, die man in C++ am besten gleich wieder vergessen sollte.



  • Nexus schrieb:

    Ansonsten würde ich persönlich C nicht für grössere Projekte verwenden, weil einem etliche Abstraktionsmechanismen fehlen.

    Da stimme ich dir zu, in der produktiven Anwendungsentwicklung sind abstraktere Sprachen vorzuziehen.

    Nexus schrieb:

    Die Frage ist, will man eine Sprache nur zu Lernzwecken anschauen? Ich hätte jedenfalls mehr Motivation mit dem Wissen, dass ich nach dem Gelernten auch was Sinnvolles damit programmieren kann.

    Na ja, es ist ja nicht so, dass man mit C nichts sinnvolles machen könnte, ich glaube da unterschätzt du die Sprache. Als Anfänger kommt man jedenfalls schneller an's Ziel, als mit C++. (Mal vorausgesetzt, dass man nicht gleich ein 25k Zeilen Spiel programmieren möchte.)

    Nexus schrieb:

    Und falls man z.B. ohnehin vorhat, sich anschliessend C++ anzuschauen, ist der direkte Weg normalerweise sinnvoller, da man sich keine Dinge beibringt, die man in C++ am besten gleich wieder vergessen sollte.

    Ja, das ist so eine Sache, da kann man ewig streiten. Ich finde es spannender, erst mal zu erfahren, wie das "unten" so funktioniert und erst danach zu abstrahieren, aber das muss halt jeder für sich selbst wissen. Dass man allerdings sonderlich viel vergessen muss denke ich nicht, man muss nur die neu gelernten Konzepte (OOP, Templates, ..) wirklich verinnerlichen und verstehen, wann diese einzusetzen sind und nicht anfangen aus Gewohnheit einfach alles in C zu schreiben.



  • Ich würde Ruby (oder Python) als erste Sprache empfehlen, oder wenn es funktional sein darf, Haskell. Für letzteres gibt es das hervorragende Buch Programming in Haskell, welches keinerlei Programmiererfahrung vorraussetzt und sehr präzise den Kern der Sprache beschreibt.
    Für den Rest gibt es dann Real World Haskell (gibt's auch kostenlos online - aber die Seite lädt gerade nicht).

    und nicht anfangen aus Gewohnheit einfach alles in C zu schreiben.

    Die Erfahrung zeigt, dass das vielen sehr schwer fällt.



  • Hat er sich jetzt eigentlich schon für eine Sprache (oder zwei) entschieden oder haben wir ihn mit unseren Antworten vergrault?



  • Bin noch dabei mir alles was ihr mir gesagt und empfohlen habt anzusehen und das ein oder andere auzuprobieren...dauert noch etwas weil ihr ja nicht gerade wenig empfohlen habt 🙂



  • Aller Anfang ist schwer.

    😮


Anmelden zum Antworten