Welches C zum Einstieg?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Welches C zum Einstieg?

    Hallo GMD,
    ich wollte mal einen einstieg in C/C++/C# Wagen und mochte gerne wissen was eurer Meinung nach am besten zum Einstieg ist, und was mir später auch mal eher nützlich ist. Außerdem Suche ich derzeit noch nach Tutorials(videotutorials wärn gut).
    Wenn ihr also schon Erfahrungen habt wurde ich gerne daran teilgaben.
    MfG gamer_08

    PS: das forum stimmt doch oder? :huh:
  • Ich hab mit C angefangen (eigentlich mit Pascal, aber das ist eine andere Sache), und zwar hab ichs ausschließlich mit dieser Seite gelernt: tutorials.at. Sehr gute Seite um mit C anzufangen.
    Zum Programmieren verwende ich die IDE Code::Blocks.
    Spoiler anzeigen

    tutorials.at schrieb:

    Womit beginnen? C oder C++?

    Grundsätzlich: Beides ist möglich. Mit C++ zu beginnen, ist mit Sicherheit aufwendiger und langwieriger (Zeit- und Geduldsproblem) - alleine schon wegen der größeren Anzahl an Sprachelementen. Da es auf Tutorials.at nur ein C-Tutorial (und keines für C++) gibt, hier die Gründe, mit C zu beginnen: :)

    Wie bereits erwähnt, ist C++ als "größerer Bruder" von C, zu diesem rückwärtskompatibel (von kleineren Ausnahmefällen abgesehen). Es stehen also alle C-Sprachelemente auch unter C++ zur Verfügung. Sie lernen beim Umstieg auf C++ im Wesentlichen, was neu hinzugekommen ist, und wofür C++ bessere Lösungen anbietet (Objektorientierte Programmierung). Umgekehrt, wenn Sie zuerst C++ lernen, und dann später doch ein reines C-Programm (das auf einem "reinrassigen" C-Compiler laufen muss) schreiben müssen, müssen Sie erst lernen, was es in C noch nicht gab.

    Wenn Sie vor allem beabsichtigen, hardwarenah oder Mikrocontroller zu programmieren, spricht auch mehr für reines C. C-Compiler gibt es für mehr Plattformen als C++-Compiler. Für jeden noch so exotischen Prozessor gibt es meistens einen C-Compiler. Und wenn nicht, dann bleibt oft eh nur mehr Assembler.

    Wenn Sie komplett neu in die Programmierung einsteigen (Anfänger), spricht auch viel für eine Sprache mit weniger Sprachelementen, um den Lernenden motiviert zu halten. Sonst geht oft irgendwann der Überblick über das Ganze verloren. Noch ein Punkt für C.
    Du solltest dir aber im Klaren sein, dass du mit C alleine (meines Wissens) nicht viel mehr zusammenbringst als unansehnliche Konsolenprogramme. Also nix mit Grafik oder Maus-Unterstützung. Dazu brauchst du dann zwingend C++/C#. Da diese beiden Programmiersprachen auf C aufbauen, würde ich dir empfehlen, mit C anzufangen. Da du ja bereits die GML beherrscht, wird dir der Einstieg auch eher leicht fallen, da es sehr viele Paralellen zwischen diesen Sprachen gibt.
    Was dir später am meisten nützlich sein wird, ist C++. Danach kommt C#. "Nur" C Kenntnisse bringen aber kaum etwas.
  • Hey Toshiro,
    Du solltest dir aber im Klaren sein, dass du mit C alleine (meines Wissens) nicht viel mehr zusammenbringst als unansehnliche Konsolenprogramme.
    Das ist Quatsch...
    Man kann genauso Windows-Anwendungen schreiben wie mit C++ auch. Das Programm hier ist auch in C geschrieben
    Da du ja bereits die GML beherrscht, wird dir der Einstieg auch eher leicht fallen, da es sehr viele Paralellen zwischen diesen Sprachen gibt.
    Bis auf die Syntax sind die Sprachen komplett verschieden...
    Da diese beiden Programmiersprachen auf C aufbauen
    C++ ist eine Erweiterung zu C und C# ist eine .NET-Sprache und baut nicht auf C oder C++ auf. Nur die Syntax ist ähnlich.

    MfG,
    -haiyyu
    fabse64 -> haiyyu
  • haiyyu schrieb:

    Das ist Quatsch...
    Man kann genauso Windows-Anwendungen schreiben wie mit C++ auch. Das Programm hier ist auch in C geschrieben
    Sorry, da hab ich mich vertan. :pinch: Darum auch das 'meines Wissens'.

    haiyyu schrieb:

    Bis auf die Syntax sind die Sprachen komplett verschieden...
    So sachen wie instance_create(); gibts natürlich nicht, aber das if-Statement, die Schleifen, Zuweisungen, Vergleiche etc. sind sich ziemlich ähnlich. Und dass die Syntax beinahe gleich ist ist auch eine nicht zu unterschätzende Hilfe beim Lernprozess.

    [hide='Vergleiche zwischen C und GML']

    GML-Quellcode

    1. //GML:
    2. if (zahl==5)
    3. {
    4. zahl-=1;
    5. }
    6. //C:
    7. if (zahl==5)
    8. {
    9. zahl-=1;
    10. }
    Alles anzeigen


    GML-Quellcode

    1. //GML:
    2. switch (zahl)
    3. {
    4. case 1: zahl-=1; break;
    5. case 2: zahl-=2; break;
    6. }
    7. //C:
    8. switch (zahl)
    9. {
    10. case 1: zahl-=1; break;
    11. case 2: zahl-=2; break;
    12. }
    Alles anzeigen


    GML-Quellcode

    1. //GML:
    2. for (i=0;i<=10;i+=1)
    3. {
    4. zahl=i;
    5. }
    6. //C:
    7. for (i=0;i<=10;i+=1)
    8. {
    9. zahl=1;
    10. }
    Alles anzeigen
    [/hide]
  • Naja, bei den meisten Programmiersprachen gibt es if und bei den höheren for und switch :P
    Und was die Anzahl der Gleichheitszeichen etc. angeht: => Syntax

    Also ich finde es immer praktischer mit Bücher zu lernen (einfach mal in die StaBi gehen).


    BTW: Wenn man bei C++ etwas grafisch ausgeben will, dann brauch man doch eine exteren Bibliothek, oder?
    In welcher sind die dann so geschrieben und was würdet ihr da für welche empfehlen?
  • Wie so oft bei der Frage, kommt es darauf an was du machen willst.

    Ich würde dir C# raten, es ist eine relativ junge Sprache die durch die .NET Libary stätig weiter wächst,
    auch Sachen wie XNA werden immer besser und C# ist, persönlich gesehen, einfacher zu verstehen wie C und C++.
    Allerdings muss man sich dort auch intensivst mit OOP beschäftigen um das konzept richtig zu verstehen.

    Die C# Community, mit Beispielen etc ist dadurch aber leider noch nicht ganz so ausgereift wie die von C/++.

    Generell sollte man wirklich schaun wozu man die Sprache nutzen will, ich denke nicht, dass du
    hochperformante 3D Spiele alleine schreiben wirst wofür sich C++ eher eignet als C#.
    Systemnahe Programme sind mit C# auch nicht so einfach zu bewerkstelligen.

    Willst du jedoch eher Anwendungen und kleine Spiele schreiben dann C#
    Und auch kommerziele Spiele wurden schon mit C# gemacht glaub eins war 'Arenawars' oder so,
    aber das basierte noch auf einer alten XNA Version.

    Man sollte den Weg des geringsten Widerstandes gehen und bei den meisten Usern hier,
    wird C++ einfach overkill sein und die meisten werden die erweiterten Möglichkeiten
    gegenüber anderen Programmiersprachen nicht nutzen, also mach es dir so einfach wie möglich.
    Auch richtige Entwickler arbeiten nicht nur mit einer Sprache.
    Face in the wind, we're riding the storm
    We'll stay our course whatever will come
    ~~ Stay (Running) Wild ~~
  • Ich finde es nicht Praktischer mit Buchern zu lernen. Deswegen habe ich das auch so geschrieben. Am besten wär na turlich ein mix aus beidem aber ..(ich habe keine hohen ansprüche :D ) Ich war kurz davor PHP zu lernen aber dass geht in eine kompleet andere richtugn als ich vorhatte. Mein Problem: Ich Will nicht ziel(projekt)los eine Programmiersprache lernen weil ich das nicht gut hinbekomme. Gute Tuturials(gerne mit videoeinlagen) suche ich trozdem.
    danke für die antworten
    mfg gamer_08

    edit: C# reizt mich nach defmasters kommentar schon sher. haben noch andere erfahrungen damit gemacht?
  • C++ würde ich aufjedenfall gegenüber C bevorzugen, sofern du nicht iwie für Microchips oder dergleichen programmieren willst. Es lehrt dir einen schöneren Porgrammierstil.

    C# ist unteranderem die Zukunft, möchtest du später beruflich programmiermässig was machen, rate ich dir aufjedenfall zu C#.
    Performance-Unterschied ist so gut wie nicht spürbar, und die Maschinen werden sowieso immer schneller.
    C# bietet um ein vielfaches mehr Komfort als C++ und ist sicherlich leichter zu lernen.
    Dank .Net hast du unzählige Hilfefunktionen und die Möglichkeit, kinderleicht Windowsprogramme zu schreiben.
    Xna ist eine mächtige Bibliothek, die wunderbar einfach und wunderbar effektiv deine 3d-Models und Partikel auf den Bildschirm rendert.
    Zu der Community, es gibt vielleicht noch nicht zu allem ne vorhandene Libary, aber die Community wächst und ich denke das ganze boomt mächtig.
    Durch Mono kannnst du auch plattformunabhängig programmieren, falls du das wünschst.

    Also wenn du nicht ne 3d Engine schreiben möchtest oder sonstige spezielle Dinge machen möchtest, empfehle ich ganz klar C#(über Java sogar meiner Meinung nach, wenn man die Plattformunabhängigkeit weglässt).
    Allerdings ist es so: Wenn du C++ beherrschst, ist es ein Kinderspiel, auf C# umzusteigen und du verstehst den Unterschied ziwschen compilierten und intepretierten Sprachen(Du könntest die Dinge, die zu Low Level für C# sind, mit C++ erledigen).
    "das war meine letzte flamewar PM an dich ."
  • Mono ist halt nich leider nicht gleich .NET, weshalb die Unterstützung auf Linux nicht optimal ist.

    Ein Kleinis hinderniss stellt bei C# halt das jeweilige .NET Framework.
    Je nachdem welche Version man nutzt, muss es auch der Anwender haben, was aber trotz
    Windows updates nicht immer der Fall ist und man somit die User anweisen muss sich diese runterzuladen,
    oder ins Projekt einbinden muss was die Projektgröße ansteigen lässt.
    Gleiches gilt fürs XNA Framework.

    Du hast halt im Gegensatz zu C++ einen viel einfacheren Einstieg und die einarbeitungsphase ist auch deutlich
    kürzer da man durch das .NET Framework eine Riesenmasse an vorgefertigten Funktionen hat.
    (Man muss dadurch nicht ständig selber das Rad neu erfinden.)
    Man brauch sich auch nicht mit langwierigen Compiler einstellungen etc rumärgern, was oft
    zu Fehlern führt bei C++, vor allem wenn man als Anfänger externe Libs nutzen will.

    Auch wenn du dann C# gut beherrscht wirst du C++ auch besser verstehen, aber da gibts halt dann doch noch
    andere Dinge die C# nicht hat, aber diese lassen sich dann auch recht schnell erlernen.

    Wie immer auch hier der Openbbok Tipp: openbook.galileocomputing.de/visual_csharp/
    Da wird auch nochmal drauf eingegangen warum man .NET nimmt.
    C# ist auf jedenfall sehr Zukunftsorientiert wie blubberblub schrieb und auch jetzt wird C#
    schon fleißig genutzt.

    Tutorials findest du denke ich reichlich per Google, die Hilfe zu den .NET Biblos die mitgeliefert wird
    ist auch sehr hilfreich um die funktionen besser zu verstehen.
    Da muss man sich dann halt einfach rein arbeiten ;)
    Face in the wind, we're riding the storm
    We'll stay our course whatever will come
    ~~ Stay (Running) Wild ~~